Traditional methodologies have been around for a very long time. They impose a disciplined process upon software development with the aim of making software development more predictable and more efficient. Heavyweight methodologies are considered to be the traditional way of developing software. They have not been noted to be very successful and are even less noted for being popular. The heavyweight methodologies have these similar characteristics.
- Predictive approach – Heavyweight methodologies have a tendency to first plan out a large part of the software process in great detail for a long span of time. This approach follows an engineering discipline where the development is predictive and repeatable. A lot of emphasis is put on the drawings focusing on the need of the system and how to resolve those needs efficiently. The drawings are then handed over to another group who are responsible for building the system. It is predicted that the building process will follow the drawings. The drawings specify how they need to build the system; it acts asthe foundation to the construction process. As well, the plan predicts the task delegation for the construction team and reasonably predicts the schedule and budget for construction.
- Comprehensive Documentation – Traditional software development view the requirements document as the key piece of documentation. A main process in heavyweight methodologies is the big design upfront (BDUF) process, in which a belief that it is possible to gather all of a customer’s requirements, upfront, prior to writing any code. Again this approach is a success in engineering disciplines which makes it attractive to the software industry. To gather all the requirements, get a sign off from thecustomer and then order the procedures (more documentation) to limit and control all changes does give the project a limit of predictability. Predictability is very important in software projects that are life critical.
- Process Oriented – The goal of heavyweight methodologies is to define a process that will work well for whoever happens to be using it. The process would consist of certain tasks that must be performed by the managers, designers, coders, testers etc. For each of these tasks there is a well defined procedure.
- Tool Oriented – Project management tools, Code editors, compilers, etc. must be in use for completion and delivery of each task.
However, whether these processes can be updated to be as appealing as the Agile methods remains to be seen as they most modern and adaptable for a modern business.