Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Anecdotally: The best projects I've ever worked on (happy clients, met budgets for time/cost) had the most up-front planning and thought on the requirements.

The worst projects, with runaway costs, unhappy stakeholders and a real brutal grind for developers had the least requirements planning.

I've seen code design up-front go wrong often enough, but I've yet to see up-front specification and requirements gathering be anything but much more successful than the alternative.

As a matter of fact, knowing you have to deliver C, but then focusing development on A, with an idea that there might be a B, and not putting any real thought into any of them is so so painful IME. Nobody ends up happy. When I hear "iterative development" these days from a developer, I don't hear "pragmatically responding to a change in requirements". I hear "I don't feel like thinking this through, so I'm going to do something I know doesn't meet the requirements first, and we'll rework it at some point".

I've rarely seen core project requirements change much over the course of a project. I've seen developers cargo-culting and generating rework a number of times though.

As an early "Agile" fan, who was a developer when the Manifesto debuted, it's real frustrating that today's development landscape seems to promote the idea that planning is bad and you should just start diving into writing PostIt notes and setting up your first week's sprint without a thought to an overall schedule.

That's not Agile, that's just cowboy coding with the appearance of rigor (IMO). The whole point is to make a plan, research, investigate, get a solid idea of what you need to do, then do it. And while you're doing it, if circumstances change, be prepared to change with them.

> "Responding to change over following a plan".

> "while there is value in the items on the right, we value the items on the left more"

Which totally makes sense. Yes, don't stubbornly insist on delivering a feature the stakeholders don't want just because it's in the plan. And if you have a fixed time budget, yes, focus on the scope that's most important and pick your battles. None of that says "don't plan". "there is value in planning". That is what the Manifesto says! So stop using "agility" as an excuse to do a bad job, generating tons of rework, burning people out, and spending other people's money. There's nothing "agile" about that.

"Iterative Development" is just code for exactly that IME. Kaizen is about improving your process. Not throwing it away.

Sorry if that's a bit too ranty. ;-)



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: