There are variety of well known and time tested software development methodology that exists today. Each one of has its pro and cons and particularly its more important is to understand what works for a given project and environment this needs to be get done in.
The Waterfall method is a sequential model in which activities are drawn
into specific steps. Although there are many different versions of the
Waterfall method, one of the most common versions has five steps:
It is not uncommon for the project to freeze after each step, as this allows you to assure quality and adherence to method.
The strengths of the Waterfall method are:
- Linear design, which allows the method to be easily tracked
The weaknesses of the Waterfall method are:
- It generates lot of documentation
- Its linear design impedes redesign late in the stages of development
- The timing of resources to match linear steps is a daunting task
- It has a long development cycle
- The client does not see the product until near completion, thus impeding feedback
- The project risk does not diminish until near the end of the project, by that time risks may cause the project to fail.
Rapid Application Development Methodology
The RAD method is a cyclical model in which requirements are quickly turned into a prototype that is then released to the client for critique. The client's comments are then folded back into the next set of requirements for the next prototype. This process is repeated until the client is satisfied with the product.
The strengths of the RAD method are:
- It works well with poorly defined requirements.
- The customer can see the work in progress.
The weaknesses of the RAD method are:
- The customer might get distracted by details.
- The project might drift from early expectations.
- It generates unpredictable timelines and costs.
- Usually, the designs are not well thought out, and may not scale or sustain evolution of the requirements in the long run.
The Object-Oriented method is based on the recurring patterns of classes and communicating objects in many object-oriented systems. Simply, an experienced designer can catalog a series of past solutions that have worked and reuse parts (objects) of that design for new uses. The ability to separate objects and match them with recurring design issues is the basic skill of object-oriented design.
The strengths of the Object-Oriented method are:
- Increased standardization.
- Increased delivery speed.
- Designers do not have to "reinvent the wheel" every time, as design time is not wasted on objects that have already been designed.
The weaknesses of the Object-Oriented method are:
- You might not assume that each design opportunity allows the "custom fit" mandated by object-oriented design.
- The object-oriented methodology is difficult to understand and requires a significant time investment in order to become proficient in its use.