Agile for Mobile Application Development
For mobile application development, teams are looking to introduce a lightweight development process like agile software development, which offers tremendous opportunities and value to build applications in short cycles.
Development organizations and teams that build mobile applications are challenged with their own unique set of complexities. Unlike traditional client-server and web-based software development, mobile developers are faced with very strict boundaries like memory, screen size, input devices, etc., short application lifecycles, and extreme usability requirements. That’s why mobile application developers should become quick in dealing with all of the variables in the development and deployment lifecycle.
Gartner analyst Van Baker said in his recent blog that traditional practices will not work for mobile application development and companies must instead adopt agile development.
Enterprise application development teams use traditional practices to define and develop desktop applications, but most don't work with mobile application development due to device diversity, network connectivity and other mobile-specific considerations. Instead, application development managers should use functional, performance, load and user experience testing, as well as agile development practices.
Some restrictions with mobile application development are:
- Mobile has restrictions with the size of the applications.
- Application should be downloadable very fast.
- Update applications quickly and smoothly.
- Error free and fast.
- Seamlessly interact with the backend server as needed.
This state can only be achieved with several changes and adjustments along the way. As agile is appropriate for frequent changes, so can be used for mobile application development. Baker said:
Mobile apps are different. They need to be frequently revised to meet end-user expectations, and this agile development process especially requires operations to be on top of infrastructure and systems to support frequent mobile app deployments and pushed updates.
Baker said that the development teams need to focus on designing the optimal UI as a starting point for mobile application development and developers need to combine this with a workflow that represents how users actually work.
Letting the users experience what the application will look like and building the screens on the fly with the appropriate tools will ensure that the initial build of the app looks familiar to the users and is close to what they'll need once the application has been piloted or deployed. This alone will result in a higher chance for a successful development effort.
Antony Savvas said that testing of the mobile application is also complex as application behaves differently on different OS and network speeds.
Mobile Application testing has some peculiarities that include connectivity, convenience, supported devices, touch screens, new programming languages, resources constraints and context awareness.Eliane Collins, Technical Manager of Product Validation at INdT, described some agile testing practices to overcome these challenges in her recent blog.
- Team Co-location: Testers, designers and developers allocated in the same room to join the team and encourage cooperation.
- Pair programming: Developers and testers together in pairs to implement unit testing to improve test coverage.
- Pair testing: Testers together to implement and execute exploratory tests and non-functional tests (performance and security).
- Prioritization of regression testing: The regression testing is executed following of the most critical features to be delivered (covering certification testing).
- Designers involved in interface tests to identify unconformities of screen flow and screen design.
Eddie Kenny, agile software development manager at Betfair, shared his views on agile adoption for mobile application development as:
All companies should be looking at adopting agile practices for mobile development, warning that those, which don't risk being outpaced by rivals, which are already employing such methodologies. If you start with a trimmed down version of your app and then iterate over it, you can be getting products to market quicker than your competitors.