In software systems development there is usually two approaches considered. These approaches include the traditional methodology (waterfall) and agile methodology. Both the methodologies have advantages and disadvantages.
Traditional/Waterfall Methodology
“It is a method that has been in use since the 1970s and is still in practice. It’s is often considered as a classic approach to the life cycle of systems development.”. It is of a rigid kind and the development is linear where each process/phase of development leads to the next. This method of system construction is similar to;
- Requirements Analysis
- Design
- Implementation
- Testing
- Installation
- Maintenance
The processes cascade down in resemblance to a waterfall hence its name. This method of development is considered safer. “It is a method that works well with commercial engagements where contracts are signed and cash is paid. Here, a schedule is set with deadlines for each stage of development and a product can move to the next development process.”.
Advantages of Traditional Methodology
- It has a detailed documentation illustrating every step and process to be completed
- It commences once agreed upon and requirements in the contract signed off
- It can be developed by individuals with a lower skill set
- There is reduced number of defects through thorough design planning
- It allows for managerial control and departmentalization
- The processes can easily be measured since there is a definite starting and ending points.
Disadvantages of Traditional Methodology
- The process is usually of a slow start
- The fixed requirements set are usually difficult to change when in the process of development.
- Customer visibility is not accommodated during the process until the software development is completed.
- It is highly inflexible making it difficult to alter the direction of the system development
- Customers’ requirement on the initial stage is usually unclear or undefined in entirety.
Agile Method
“This method refers to an iterative approach to the implementation of projects, where the requirements and possible solutions circulate through collaboration among the development members and the customer.”. This is a method that encourages customer participation through the process of development. “It is a conceptual framework for undertaking engineering projects and includes various methodologies such as; dynamic Systems development method, Crystal methods, and Scrum. These type of method attempts to reduce risks by developing software in short time boxes which usually has a time frame of about one to four weeks. Each short time boxes is a miniature project of its own, and consists of all the tasks necessary to produce the mini-increment of new functionality such as: planning, analysis of requirements, design, coding, testing, and documentation of the software project.”
This method intends to have the capability of releasing new software at the end of every short time boxes or iteration and the project’s priorities are re-evaluated. It emphasizes real time communication over written documents. Most teams are located in a bullpen and include everyone necessary to complete the project. The bullpen may include programmers, business analysts, product managers, actual customers, interface writers, and technical writers.
It also emphasizes on working software as the primary measure of progress. This method incorporated with face-to-face communication, it produces very minimal documentation relative to other methods.
Advantages of Agile Methodology
- It involves a quick start, regular customer response, and incremental releases.
- There is room for evolution or change of requirements over time
- It is less rigid hence responds quickly to change
- There is less re-work since the customer is involved through the process and also continual testing.
- It facilitates real-time communication among the project team and the customer
Disadvantages of Agile Methodology
- There is chance of misinterpretation of it being unplanned or undisciplined
- It requires a high-quality and efficient team
- It is demanding on the customer side on his involvement through the project
- It lacks a long-term detail or schedule of plans
- The level of documentation is at a minimal
In the event of a system development the choice between the traditional and agile methodologies depend on several factors that include;
Type of work
It depends on the type of outcome of the project. In the case of website development which is creative in nature it would require the agile method in its development whereas the transactional system which has a clearly defined outcome would require or is best suited to the traditional or the waterfall method.
Type of customer
If the customer is ready and willing to work in an iterative way and they have enough time to review and comment regularly on iterations then the agile method is most suited unlike when the customer lacks adequate time to review regular iterations hence the traditional method is employed.
Manager’s Interest
This alters the type of methodology used to suit the preference of the manager to that method he requires the development team to carry out.
Organization’s view of IT
Waterfall or traditional method is used when it in an organization is considered a necessary evil rather than as a valued partner.
External or Internal customer
The type of method used depends on whether the customer is either internal or external. Traditional method suits external customers since contracts can be signed off unlike internal customers who would insist on changes by having the backing of top management.
Works Cited
El, S. A. (2012). Business intelligence and agile methodologies for knowledge-based organizations: Cross-disciplinary applications. Hershey: IGI Global.
Erquicia, S., & University of Minnesota, Duluth. (2005). roject management under uncertainty: An analysis of traditional and agile methodologies.
Laskowski, J. (2011). Agile IT Security Implementation Methodology. Birmingham: Packt Publishing, Limited.