by Indusree Mavuru
Most companies today focus on delivering quality and gaining customer satisfaction and in order to accomplish this, the challenge lies in choosing between traditional development methodologies and agile development methodologies.
Though both these approaches have positives and negatives, making the right choice plays a crucial role while starting a new project. The main points to consider while choosing your development methodology are as follows:
Traditional software development methodologies are based on pre-organized phases/stages of the software development lifecycle. Here the flow of development is unidirectional, from requirements to design and then to development, then to testing and maintenance. In classical approaches like the Waterfall model, each phase has specific deliverables and detailed documentation that have undergone a thorough review process.
Traditional approaches are suited when requirements are well understood for example, in industries like construction, where everyone clearly understands the final product. On the other hand, in rapidly changing industries like IT, traditional development procedures might fail to achieve project goals. Below are the major disadvantages of traditional SDLC methods.
For example, the user might have given initial requirements to analyze their products in terms of sales. After the project has begun, if the user wants to change the requirement and analyze the data on the region-wise movement of products, the user can either wait till the completion of initial requirements or start another project.
These disadvantages hinder project delivery in terms of cost, effort, time and end up having a major impact on customer relationships.
Traditional development methodologies are suitable only when the requirements are precise i.e., when the customer knows exactly what they want and can confidently say that there wont be any major changes in scope throughout the project development. It is not suitable for large projects such as maintenance projects where requirements are moderate and there is a great scope for continuous modification.
Unlike the traditional approaches of SDLC, Agile approaches are precise and customer friendly. Users/Customers have the opportunity to make modifications throughout project development phases. The advantages of Agile over traditional development methodologies include:
Agile proposes an incremental and iterative approach to development. Consider Agile Scrum Methodology to get good understanding of how Agile processes work. Scrum Master plays an important role in Agile Scrum Methodology. A Scrum Master interacts daily with the development team as well as the product owner to make sure that the product development is in sync with the customer's expectations. The following diagram illustrates the lifecycle process in Agile methodologies.
During project inception, the customer splits the initial set of requirements into User Stories. The Scrum Master or Product owner organizes these User Stories and segregates them into different Sprints. In general, Sprint contains 3-4 User Stories to be delivered in 4 to 5 weeks, these are approximate figures and they will be decided based the complexity of user stories. Once the Sprint planning is done, the selected User Stories are once again split into Tasks so that the developer can have a clear roadmap to deliver quality output. At the end of each Sprint, the customer gets a chance to review and predict the final outcome and can propose changes if any.
The main difference between traditional and agile approaches is the sequence of project phases requirements gathering, planning, design, development, testing and UAT. In traditional development methodologies, the sequence of the phases in which the project is developed is linear where as in Agile, it is iterative. Below picture illustrate this difference.
The main project variables like cost, time, quality etc., can be compared as shown in the following picture.
Things like project scope and requirements change during the project which make IT projects different from construction or engineering projects. Agile methodology like Scrum is preferable in projects involving large teams where we can expect frequent changes in requirements. As development phases like requirement gathering, design, development and testing can start in parallel, the entire team can be engaged in respective areas which increases productivity and speeds up the development process.
Key points while making the transition from Traditional to Agile methodologies:
Therefore, Agile development methodologies are more suitable to withstand the rapidly changing business needs of IT projects.
Indusree is a Senior Consultant at KPI Partners with deep expertise in OBIEE. She has previously worked on projects involving OPLA and has functional knowledge in Oracle Agile PLM.