History

Software process has evolved over a period of time.

Waterfall model





Waterfall model is a perfect solution assuming everything is defined well in advance and no changes are required, but unfortunately world is not perfect and waterfall model failed in most of the projects executed. Its failure is not really 100% but customers lived with big compromises given the investments made during the software development.

Practically, we humans, while visualizing a system, tend to change our views over a period of time. What we feel is important may not be important after couple of months or a new learning about certain feature or new discovery might result in a complete change in direction of how we want to build a product.

Typically the waterfall model is built with the understanding that requirements are freezed upfront and then subsequent phases are done in sequence.  Usually projects were planned for an year or couple of years or so. Customer gets to see the solution only after a long wait, and customer gets disappointed.

Usually requirements elucidation is a doctor patient relationship. Assuming you are a doctor and if you provide treatment to patient based on what customer explains as the symptoms, most probably you will be giving him exactly wrong medicine. 

A good doctor always asks right questions and then based on patient answers, can go with a course of medicine and asks patient to come back after specific number of days. If patient sees improvement doctor might consider continuing the medicine, if not might change the course.

Similarly when it comes to software, waterfall model failed most of the cases because there was no mechanism for the customer to try and provide feedback.   The only feedback he could give was at the end and it is called as "Post mortem". Waterfall model result is like "Operation successful but patient has died". Technically project is successful but customer will be bleeding given the investment he made and the end result not being something that looks similar to what he would expect.

Iterative model

Then came in iterative model which was a repetitive waterfall model with shorter cycles. This enabled feedback mechanism



Rational Unified Process (RUP)


Rational Unified Process is an iterative process. The way it is designed is as a generic adaptive process that helps projects to be implemented. Rational Unified Process (RUP) is an implementation of Unified Process.

Basically there are 4 verticals/phases identified (Inception, Elaboration, Construction, Transition) and all the SDLC steps (business modeling, requirements, analysis, design and implementation, testing and deployment will have these 4 phases.  This results in with a pattern that seem iterative but not exactly.


Adapting to RUP for me looks complex.