In an interview with Project Manager, Chandan Kumar, he talks about how the agile development methodology has led to a better way of working and delivering software compared to the traditional methodologies. Chandan has over 11 years of experience and is a certified Scrum master from Scrum Alliance. He has managed fairly large teams and projects, and is a pro in .NET, PHP and C# technologies.
What is the transition in the development methodologies over the years?
We used to, in the past, follow what is known as the traditional methodologies. We have come a long way since. Waterfall was one of the most popular methodologies wherein we first defined and documented the client requirements, then the architecture of the software is conceptualized and coding is done on the basis of that. Then following different types of testing and deployment that marked the end of the project. One had to, beforehand, visualize the finished project and how it will work.
In the recent times, we follow the agile development methodology. It is, as the name suggests, a more rigorous way of developing software. It focuses on incremental development and the phases are repeated over and over. Client feedback is incorporated at every phase and this methodology stresses on the importance of communication. Software is not built as a single entity but built as a part of an ongoing procedure with compatibility testing being a part of the developmental increment.
Agile development methodology is known for a high level of collaboration between all the stakeholders involved.
Do you think agile methodology leads to better quality?
We experienced the benefits of agile in many of our projects. It ensures that the client is involved and their feedback is incorporated regularly at every stage. There are no surprises at the end (for either of us). It is a better way of collaborating and ensuring client satisfaction. Since the client reviews are so regular, it is easier and faster to make small changes and the quality of the software is drastically better.
Do you think this way of developing the software has any impact on the cost?
As I just mentioned, reworking is dramatically reduced since testing is not done towards the end of the development cycle. It is constantly a part of the incremental project. Since client feedback is being incorporated so frequently, major changes are not required, which means lesser effort and hence cost. Active communication allows better prioritization of work and the team can ensure that the deliverables are evolving as needed.
What are the other benefits and drawbacks of using agile?
I will talk about the biggest drawback of using agile methodology first. There was a lot of emphasis on documentation in the traditional methodologies. The requirements were captured in quite a meticulous way and that left no room for any kind of ambiguity. This is the biggest thing missing in agile methodology.
The disadvantage of that, of course (and the advantage of agile), is that if there is an issue in capturing the requirements in the initial stages, the deliverables will be impacted. Since everything is sequential, bugs are discovered very late in the development cycle and the cost of fixing them keeps getting higher. In the earlier methodology, there was no provision to capture the evolving needs of clients in an ongoing project.
Can agile fail?
Yes definitely. It fails if
a) Organization has a traditional structure
b) Agile framework is not followed
Agile fails if there is no change in the mind-set. It is not as simple as transitioning from waterfall to agile. Adopting Agile means being brilliant at communication, regular feedback sessions, collaboration and incremental delivery. It takes a cultural change in an organization to make agile successful. Traditional organizations usually fail to use agile development methodology due to complicated hierarchical structures.
Some of our clients have even shared their unpleasant experiences of how miserably agile failed for their project while working with other software development companies. This usually happens if Agile is not followed in the true sense. There is no proper Sprint planning, which means there is no sprint backlog from where the team can pick up priority task wish list. There are no daily Scrum meetings that means the Scrum master has no control on the deliverables.
How do you ensure that it does not fail at ISHIR?
ISHIR is primarily a flat organization with an extremely transparent and open work culture. We encourage people, at all levels, to contribute, share their project learning and best practices (within the team and within different functions). Our work culture is the key reason for collaboration and successful agile project deliveries.
We have project managers who are not only Scrum certified but very thorough with the Agile framework and the success parameters for timely and high-quality deliverables using the Agile development methodology.
Is a hybrid development methodology successful?
What a hybrid development methodology does is to eliminate the disadvantages of both the waterfall and agile development methodologies. So you follow a waterfall method at the beginning of the project, which means the overall architecture is closely monitored only at the beginning of the project. What follows is rapid feedback on the deliverables and short cycle releases. With traditional organizations, the tendency is to adopt more of the traditional practices and have less flexibility that agile can offer.
Organizations ignore the disadvantages of traditional methodologies but in the process also ignore what it can offer. For example, documentation and end-to-end testing has benefits of the traditional methodology that should be adopted. At ISHIR, we follow the best practices of traditional methodologies and follow agile to work for our projects.
Will you still use the traditional development methodology for any of your projects?
There is no doubt that agile methodology works better than the traditional way of working. The number of growing agile practitioners is a proof of that. In more and more projects that we are getting involved in, agile is not a choice anymore, it has become a necessity.
What would you like to conclude?
The agile way of working focuses on getting the best from teams, processes and the final deliverable. It rigorously focuses on continual improvement and questioning everything.