Registered: Sep, 2005
Re: Frequently Forgotten Fundamental Facts about Software Engineering
Posted: Nov 14, 2008 9:14 PM
> And they are the most cost-efficient industry I
> know about - what other industry lives off 5 to 7% profit?
I used to work for wholesaler. They had an overall 0.5% margin.
> I remember a very funny definition/comparison of
> efficiency/effectiveness. Say you need to climb on a wall,
> and you have a ladder. Climbing the ladder with the best
> possible speed is efficiency. Leaning the ladder against
> the right wall is effectiveness. It seems to me agile
> methods tend to maximize efficiency, but in a way that
> harms effectiveness. No matter how efficient you are, if
> you have to climb down and lean the ladder against a
> different wall several times, you aren't effective. Some
> lazy bum taking a moment to choose the right wall is
> surely going to get to the top of the right wall sooner
> than you. Even if you double your efficiency, it won't
> increase your effectiveness, unless you change your way of
> doing things.
> Why not try an agile process on spec and design
> documentation, before you start coding? Refactor it
> thoroughly, keep it minimalistic, provide many revisions
> of it to the customer for review, until the customer says
> it is OK. This is potentially a way of reducing the number
> of iterations - you are likely to have a usable and pretty
> stable spec after such a process, I think. With less
> effort than you would need to invest to actually
> implement all the revisions of the spec.
The point of getting something working early is to make sure you are climbing the right wall. Most of the effort put into 'big-upfront-design' is spent planning to climb the wrong wall. I think this where you are missing the point of Agile methods. Again, I'm not sold on everything that Agile proponents claim. But the idea of getting something up and running early makes perfect sense to me.