Registered: Apr, 2006
Re: Stages of Software Development
Posted: Feb 7, 2007 7:38 PM
> > Interesting topic. I'd like to tentatively add to that
> > list
> > * Complexity management
> > [snip]
> Complexity management is treated as Scoping in my opinion.
> Presenting the scope of the issue at any stage would bring
> out what can be done at what stage. This helps every step
> of the way.
I understand scoping as, simply put, "this is what we will implement, and this is what we will not implement". However, that's not the same thing as complexity management because it doesn't provide any feedback to the client about the complexity of requirements. Saying that you won't implement something is not the same thing as saying that something should never be implemented by any team, no matter how good, on principle, because it's a defective process in the first place.
I define processes defective when they are frustrating and painful by original intent. If the pain is intended, perhaps unconsciously and tacitly through consent, then I don't think we should always go along with it.
Yes, sometimes it means we may have to say "no" to some money or, heck, even our lives perhaps.
But if we always say "yes", "yes", "yes", "yes", "yes" to everything...what stops the client from becoming fundamentally insane?
I think programmers (and employees in general, and all people in service industries) are like women. We aim to please. But just like a woman, who always says "yes", "yes", "yes" no matter what, can end up in an abusive relationship, so can programmers. (I say this as a red-blooded man). It's one thing to say we won't do some chore (scope), but it's another thing to live with someone who cuts off a finger for dinner every day (fundamentally insane, complexity management).
Returning closer to the main topic, I agree with the topic originator. Basically the simplistic breakup of project phases is just that -- simplistic. In reality projects are fluid and are not strictly categorizable into phases.