Lately, I’m hearing more and more that teams are stuck in the waterfall way of doing things when it comes to software development. Why, I say, why?
We Can Do Better
Today’s technology makes it possible to work closer with our customers so that we deliver exactly what they need instead of something that we think they are asking for. In the old model, we had to draw up a set of requirements that included every feature that could be conceived. With the technology available during that time waterfall Model made sense because we were mostly disconected from our customers with very slow Internet speeds when we were connected. The model of the Internet also was not yet one of collaboration, but more of a information display model. There were a number of computer limitations like the floppy disc with low storage capacity, database technology was in its infancy, and email was brand new. We can’t imagine the internet with such limitations today, but it had to start somewhere.
No More Limits
The most limiting factor was the fact that the network infrastructure was slow, sporadic, and costly. The fact that a business can acquire reliable high speed internet connectivity all the time is one of the biggest potential productivity boosters for business. It is especially important to the small business owner because it levels the playing field. I say that it is a potential productivity booster because a business has to recognize the power of what it has in its hand. If the methods aren’t updated to take advantage of the latest technology, then the business can no longer compete. Technology is changing at a rapid rate, but old mindsets are a little harder to change and so we make little progress compared to what we could accomplish. I work continuously with highly skilled engineers implementing the most technologically advanced systems in the world. We make the things that move the world forward by quantum leaps and yet try to hold on to large requirement docs in favor of smaller requirements with tight feedback loops. The large documents fits in a clunky disconnected computer world, but the smaller documents with frequent adjustments and constant feedback fits in todays world of thin light connected computers. We no longer need documentation that is 100 pages long upfront, but we need to start with say 10 pages and add to that over time as the project progresses. We can collaborate with customers real time using internet collaboration tools creating documentation on the fly for the next phase or feature of the project. The key to delivering exactly what the customer wants is feedback early and often.
I do think a project needs a high level view of each feature or phase from the point of conception through product delivery, but detailing every aspect is not necessary. Better to detail in windows of 2 to 3 quarters out and leaving anything past that at a high level.