There is, at least here in Australia, a default approach to software development processes and related work products that has emerged by osmosis over the last ten years. Lots of people have experience with software projects and consequently believe they have some useful knowledge. The result is that a default approach that resembles a inadequate facsimile of a waterfall project is now assumed to be normal:
- There will be some requirements. They will be in a document titled “Requirements version 0.1″. This document won’t be properly reviewed by the customer and probably won’t be read by anyone in the project team except for the “business analyst”.
- A document with the title “Design version 1.0″ with a few listless class diagrams and maybe a few related UML diagrams will be written. This document will be painstakingly produced by the lead nerd or architect and will cause enormous division amongst the nerds. This document won’t be read by anyone after the 56th line of code is written.
- Coding will start at a random time but will be well underway before the documents titled “Requirements version 0.1″ and “Design version 1.0″ are ‘finished’.
- Some testers will be brought into the project about a week before coding is scheduled to be completed.
- Some documentation will be produced by a contract technical writer that accurately reflects the document titled “Requirements version 0.1″. I don’t need to say that there is a fairly large gap between the emerging code and the documentation.
I could go on.
The problem appears to be that in the absence of useful (usable?) process models and experienced and competent people to drive the use of the models this default “waterfallish” model has filled the vacuum. Is it better than not having one? I don’t know.
I’d be interested in your thoughts on this subject. Do you see something similar in your neck of the woods? If something similar does exist do you think its better than nothing?
I know *exactly* what you mean. The requirements document is always below 1.0, nobody reads the documents except before the milestones where the document is “required”, etc.
I’ve even participated a project where me (the consultant) drafted the requirements for the software and, since nobody wanted to give any feedback, that particular document ended up being the final requirements specification. Verbatim. Of course, we constantly heard things like “we are very serious about this project”, “this is a top priority of the global organization”, and so on…
It’s not any greener this side of the globe