The Agile approach to software development refers to the iterative and incremental strategy involving self-organizing teams and cross-functioning teams working collaboratively to create software and solutions.
The principles of Agile software development include:
- The development team provides early and continuous delivery of software frequently, usually in one to four week intervals.
- There is constant collaboration among business people and the software developers.
- Changes are welcomed, even at late stages of software development, since these modifications often serve to give the customer a competitive advantage in the marketplace.
- Projects are people driven as jobs are completed by teams of motivated individuals who have the environment, support, and trust they need to get work done.
- The preferred mode of communication is face-to-face interaction since it is the most efficient and effective mode of conveying ideas and solving problems.
- The primary means of measuring progress is working software.
- Technical excellence is the driving force of Agile development.
- Simplicity is essential to Agile software development.
Many approaches such as Extreme programming, SCRUM, Feature Driven Development, Test Driven Development and so on are considered Agile methodologies, as these methodologies share a lot of common characteristics with the Agile manifesto. Decision to adopt one methodology over the other depends on how well the team members know a particular methodology, how big the team is, and how the team is organized. Agile methodology can be particularly advantageous for developing mobile apps.
Following comic strip sums up the Extreme Programming for us:
The Agile Approach is a Good Fit for Mobile Application Development
One of the challenges that mobile app developers face is the hardware and infrastructure for mobile apps is constantly evolving, which results in the average lifespan for a mobile app to be approximately 12 months. In order for a mobile app development team to bring relevant and functional mobile apps to market, they need to be able to work quickly to develop a software solution. The principles of Agile software development establish a framework to a development team to use to develop and release mobile apps so they have the longest life span in the marketplace.
Since mobile apps are not expected to be perfect when they are first released, the expectation for the software product fits the iterative and incremental strategy that drives Agile software development. Most users of mobile apps have to come to expect a beta version followed by 1.0 and 2.0 versions of newly released applications. Additionally, since the Agile approach is driven by change, it is highly responsive to the feedback of business who contract for the development of the application, as well as the consumers that use the application.
Some of the Drawbacks of Agile for Mobile Application Development
Many times mobile application development teams are located in different parts of the globe, making in person face-to-face communication impossible. Most developers overcome this hurdle by using video conferencing tools.
It is often assumed that Agile methodologies do not focus on documentation at all. Thus, some developers using Agile methods often overlook documentation! and focus only on development. Whichever methodology is chosen, documentation should never be ignored.
Overall, the Agile approach to mobile application development has significant benefits for both the end users and the developers.