inetbot web crawler
Main  |  Get access to the repository  |  API  |  The robot  |  Publications  |  Usenet Groups  |  Plainweb  | 
 inetbot - Groups (beta)

Current group: comp.software-eng

Agile development

Agile development  
JoJo
 Re: Agile development  
Alexei A. Polkhanov
 Re: Agile development  
Ron Jeffries
 Re: Agile development  
Phlip
From:JoJo
Subject:Agile development
Date:Thu, 20 Jan 2005 15:50:23 GMT
Hi, just been reading up on XP and the Agile methods. Can someone clarify a
few points for me?

The Agile way of working seems to stress that BUFRG and BUFD is bad bad
news, at that each stage of the project should be broken into subsets of
deliverables that can be tested agains reqs.

Is that right?

I'm a little confused as to how one decides how to split the whole project
into subsets if one hasn't done much upfront analysis - I mean how do you
know what youre doing so how can you split it up?

Also, if each subset is designed as and when it's coded, can this lead to a
mish mash of non-integrating modules, being as the big picture isn't being
considered? (or is it?)

Thanks for any input!
From:Alexei A. Polkhanov
Subject:Re: Agile development
Date:Thu, 20 Jan 2005 12:56:10 -0800
JoJo wrote:
>
> I'm a little confused as to how one decides how to split the whole project
> into subsets if one hasn't done much upfront analysis - I mean how do you
> know what youre doing so how can you split it up?
What do you mean by "split the whole project into subsets", if this is
Requirements Allocation then it should be performed during Architectural
Design phase. I don't think any "agile" method will allow you to skip
this step without losing integrity of the entire project.

You must have requirements prioritized and most important features
(those users won't accept product without) to be agreed upon. If you
cannot complete this step and user does not want to agree in principle
then prototype should be built or more research made.

Alexei.

>
> Also, if each subset is designed as and when it's coded, can this lead to a
> mish mash of non-integrating modules, being as the big picture isn't being
> considered? (or is it?)
>
> Thanks for any input!
From:Ron Jeffries
Subject:Re: Agile development
Date:Sat, 22 Jan 2005 17:50:29 -0500
On Thu, 20 Jan 2005 15:50:23 GMT, JoJo wrote:

>Hi, just been reading up on XP and the Agile methods. Can someone clarify a
>few points for me?
>
>The Agile way of working seems to stress that BUFRG and BUFD is bad bad
>news, at that each stage of the project should be broken into subsets of
>deliverables that can be tested agains reqs.

The focus is on doing requirements in business value order, which
means that as soon as you know what the most important ones, you can
start.

And the focus is on design as you go, not just design up front, which
means that we move to programming early, let the code participate in
our growing understanding of the design, and improve the design as we
learn.
>
>Is that right?
>
>I'm a little confused as to how one decides how to split the whole project
>into subsets if one hasn't done much upfront analysis - I mean how do you
>know what youre doing so how can you split it up?

One tends to split breadth-first rather than into silos. So if the
project is a blog, we get the ability to have articles up, all in a
row. Then more formatting; then the calendar, and so on.

If the project is a payroll, we pay simple checks first, then more
complicated ones, but always paying all the way from input to output.

In my experience, for most projects, someone who's interested in doing
a project knows "what it's about" very early on -- otherwise they
wouldn't be thinking of doing a project, they'd be wandering around
wondering what to do.

It's quite possible, using Agile approaches, to get a good enough view
of the requirements in a very short time. Not hours, but depending on
the project perhaps in days.

All this quite surprised me. I used to always be complaining about
customers who couldn't make up their minds, and wanting the
requirements nailed down before we started. Then I wanted time to
design.

Then I learned how to work one feature at a time, and how to grow a
design in concert with the code. Now I find that a better way to go
for a wide variety of reasons.
>
>Also, if each subset is designed as and when it's coded, can this lead to a
>mish mash of non-integrating modules, being as the big picture isn't being
>considered? (or is it?)

It is, because one is going breadth first in requirements, and because
one is ALWAYS looking at keeping the design in good shape.

It is, of course, possible to screw up either one of these. You could
have a really dumb set of ideas for what you want and that's not as
good as having really good ideas. Or you could pay too little
attention to the design, and let it get out of hand.

In practice, these things happen to a degree. But when you're shipping
real software every couple of weeks, the customer usually learns early
on that she has asked for the wrong stuff. And if you're not good
enough at design to realize when your design is going bad while you're
programming with it, my guess is that you're not good enough to think
up a design in your head either.

Let me turn that one around: if you're good enough to design on paper,
you're certainly good enough to design as you go.

It's also important to remember that these techniques work differently
depending on the size of the team, how closely sited they are, and a
host of other variables. The principles apply broadly, but like most
principles, the art is in the specific application, not just the broad
understanding.

Ask more questions ...

--
Ron Jeffries
www.XProgramming.com
I'm giving the best advice I have. You get to decide if it's true for you.
From:Phlip
Subject:Re: Agile development
Date:Thu, 20 Jan 2005 20:39:11 GMT
JoJo wrote:

> Hi, just been reading up on XP and the Agile methods. Can someone clarify
a
> few points for me?
>
> The Agile way of working seems to stress that BUFRG and BUFD is bad bad
> news, at that each stage of the project should be broken into subsets of
> deliverables that can be tested agains reqs.
>
> Is that right?

Up-front design, meaning design without feedback from coding, is harmless.

Treating that design as official, and slavishly implementing it, causes
trouble.

To prevent trouble, write the highest priority features first, and deliver
these to users.

> I'm a little confused as to how one decides how to split the whole project
> into subsets if one hasn't done much upfront analysis - I mean how do you
> know what youre doing so how can you split it up?

By proceding in order of business priority. Everyone probably has a good
idea what this feature is and what its requirements are. If you attempt to
find requirements for feature X, and nobody knows how to describe it, then X
might be lower priority.

So "upfront" analysis continues until the case for new code is compelling.
Then you write the new code. After you see it working, you'l learn what the
next set of features should be.

> Also, if each subset is designed as and when it's coded, can this lead to
a
> mish mash of non-integrating modules, being as the big picture isn't being
> considered? (or is it?)

There are two cycles at work. The outer cycle is specifying and delivering
features. The inner cycle is writing those features.

You test the outer cycle by delivering to users (or their proxies).

Test the inner cycle by writing tests and running them after every 1~10
edits.

Write new tests before writing the code abilities that they test. Then
refactor to improve the design, but only change the code in tiny, testable
increments.

When individual lines of code are robust and easy to change, the system's
high level design becomes easy to rework. Instead of making drastic changes
to build healthy modules (and instead of avoiding such changes), small
incremental changes to the classes and methods will add up to well-balanced
modules.

Frequent refactoring reduces the odds of a major refactor. This permits
teams to add features at a very steady pace - and with a vanishingly small
defect rate - while continuously morphing the architecture to make room for
all the features.

--
Phlip
http://industrialxp.org/community/bin/view/Main/TestFirstUserInterfaces
   

Copyright © 2006 inetbot   -   All rights reserved