New mobile and software applications are coming up in the marketplace almost on a daily basis. But how many of them are a success? All application developers think they have come up with a novel idea which will cater to the needs of customers they did not even know existed. But somehow, their app is unable to hit the bull’s eye resulting in a waste of time, money and effort. The reasons can be manifold but one of the paramount reasons is the methodology used for the development of the app.
What is the need for Agile Methodology?
Traditionally, applications were developed using the Waterfall methodology. This is a sequential method where app development is done in phases. The next phase is started only when the previous phase is complete. There is little emphasis of communication between the app developers and the customers. At the end of app development, a test for the app feasibility and marketability is done to analyze whether the app is of any value or not. Sometimes, the app development may take such a long time that by the end of the process the market dynamics have changed and the app is rendered irrelevant. As customer-development interaction in waterfall methodology is limited, developers are unable to gauge the mood of customers. By the time this is assessed it may be too late to make any changes in the app to make it more saleable. The waterfall method allows little flexibility in app development. It is a risky model not suitable for long and ongoing projects and projects where requirements are at a high risk of changing.
There was a need for a model which ensures that the app we are developing caters to the need of the customers. This gave rise to the Agile Methodology in the 1990s. Agile methodology is an incremental model of app development. The project is developed and released in incremental stages or ‘iterations’. It gives ample opportunities to the developers to assess whether their app is moving in the right direction throughout the development cycle. If the developers feel their app needs some modifications due to a change in customer needs, there is scope for the project to be pivoted around at any stage of app development. The result of this “inspect-and-adapt approach” is to greatly reduce the effort and time of the developers and come up with an app with a high probability of success.
How does the Agile Methodology work?
In the Agile methodology each project is broken up into short-duration ‘iterations’ or ‘sprints’. Each iteration would be of the same duration lasting a week or so. At the end of each iteration, a simple working model of the project would be launched in the market to check its feasibility. Regular team meetings would be held at the end of each iteration for assessing the possible roadblocks. Each iteration offers freedom to the developers to make changes to the project depending upon the market response to the launched version. Any features which are not delivered in the first iteration would be incorporated on a priority level in successive iterations. The Agile model offers freedom and flexibility to developers. It gives ample opportunities for interactions between developers and customers and also between the development teams handling the different aspects of the project like finance, designing, coding and marketing.
Agile method is most suitable for small projects which cater to customers whose needs might be moderately or highly variable. An example to consider is of Instagram app which is very popular these days. When Instagram was conceived, it was found to be very similar in its features to Foursquare. So the developers realized that the project could fail. They pivoted the project and introduced the photography element in their app which has made Instagram so widely used and appreciated. Had this app been developed on the Waterfall methodology, the app would have been launched at the end of a long and tedious development process only to find that a similar app already existed in the market. What a waste it would have been to the developers and investors!
Some pros and cons of the Agile Methodology
The Agile methodology has many advantages:
• Working software is delivered to the market frequently at the end of an iteration.
• There is more room for making changes and adding features to the app at any stage of its development.
• More stress is laid upon people and interactions rather than on tools and results.
• Continuous developer-customer interaction and interteam interactions lead to good collaborations and better results.
However the Agile methodology has some disadvantages too:
• There is less stress on designing and documentation during app development process.
• App developers may lose focus and go off track if the customers feedback is not desirable or the customer is not clear what they want from an app.
• There is no room for fresher programmers in Agile Methodology team as they require experienced developers to assess market feedback and make decisions about changes that need to be made in the app.
Despite its disadvantages Agile methodology has become very popular in app development circle. According to a recent survey, about 52% IT developers use this model in some form or the other. It has been and will continue to be a milestone in app development methodologies.