Tag: Waterfall model

Fact Snippet: Software Development Process

December 12, 2009 | By | 2 Replies More

Reading time: 2 – 3 minutes

Writing software reviews has been a rewarding experience but despite the fact that I’ve been doing it for quite sometime, I think it’s about time for me to dig a little deeper on how a software comes to life after the cunning hands of software developers then afterward gets used by end users and reviewed by enthusiasts like me.

Like any other product, before any software is launched into the market, it undergoes several processes similar to manufacturing of which is often represented by the Waterfall model.

The Waterfall model is a sequential software development process often attributed to a waterfall since its progress is steadily flowing in a downward direction (see figure below).

Waterfall model

Waterfall model

The Waterfall Model was taken from Royce’s article written in 1970 which later became the way to criticize a commonly used software practice.

The Waterfall model is comprised by the following phases:
1. Requirements specification
2. Design
3. Construction (implementation or coding)
4. Integration
5. Testing and debugging (also called Validation)
6. Installation
7. Maintenance

There are many cited arguments though about how the process should be done contrary to the above model and among those are inconsistencies in case clients change their requirements and design which means, one can’t easily move forward to the next step unless the previous ones are perfected which in return immobilize the whole process and thus increasing costs and eating more time.

On the other hand, the Sashimi model by Peter DeGrace allow feedback in between phases although quite similar in scope as the Waterfall model, this method however alleviates the need to modify and correct certain issues before moving forward which is good because this allows ample time to discover bugs and do some fixes whenever it comes between each phase.

Given these facts above, it open up the avenues for understanding how a software is developed before being released and to think that is requires a lot of effort and time to do so, I must say kudos to those guys for creating savvy pieces of tools for today’s computer driven world.