Learning From Agile
Agile development methods, which began to evolve more than a decade ago, are poised to impact the emerging field of mobile app development.
The tenants of Agile were first sketched out in the Agile Manifesto, which was signed by a group of 17 developers in 2001. The Agile approach emphasizes iterative development and fast reaction to customer-requested changes. Agile emerged against the backdrop of the traditional waterfall approach to software development -- a linear approach that often kept developers and customers at a distance.
In recent years, Agile methods such as Scrum have become increasingly popular in the enterprise. And now, some developers and architects view Agile as having ample applicability to the expanding field of mobile app development.
“We scrum religiously,” says Kaz Moghim, enterprise architect at iProgr.am.
Moghim’s company launched in March when LogiQuests -- a Los Angeles software company -- acquired InfluxApps, which focuses on social media app development. The combined firm aims to bring enterprise development to the mobile arena. Agile methods represent one aspect of this initiative.
In accordance with Scrum, iProgr.am conducts daily standups and biweekly sprints, depending on the size of the project, says Moghim. A standup, in the Scrum world, is a developer team meeting that keeps participants up-to-date on a given project. A sprint, meanwhile, designates a task -- developing a new capability, for example -- to be completed within a particular timeframe.
Tools also factor into iProgr.am’s use of Agile. The company, for example, employs software from Assembla, a company Needham, Mass., that provides tools and services for speeding up software development. “Assembla is a great project-management tool we use internally that has a lot of Agile and Scrum concepts built into it,” says Moghim.
Updates and Feedback
The Agile notion of developing multiple iterations of software, and obtaining user feedback along the way, may initially seem like an inhibitor in the mobile environment, notes Ben Snyder, chief executive officer at Systemation Inc., a company in Centennial, Colo., that offers project management, business analysis and Agile development training. A website can be updated in one location as opposed to accommodating a multitude of moving targets.
Snyder, however, points out that periodic software updates are a way of life in mobile technology -- not a hindrance. Mobile applications themselves aren’t enormous, complex pieces of software. And in any event, software providers don’t host the whole app on the mobile device. “When you’re talking about adding a little refinement, the Agile environment is perfect for that,” says Snyder.
As for obtaining customer input, online app sellers (Apple’s App Store and Google Play, formerly the Android Market, for instance) provide a mechanism to gauge user sentiment. “Just the way the stores are set up, you get a natural flow of feedback,” says Snyder.
Test-driven development, a process associated with Agile, also meshes with mobile app development. “Let’s take Android development as an example,” says Moghim. “There are over 20 different versions of Android OS out there. There are probably 100 different screen sizes, all with different GPS capabilities -- some with keyboard and some touch-only. What I am getting at is that there are too many environmental variables while coding -- in this case for Android -- which is why you need to have a very solid and almost real-time line of communication between developers and testers to deliver a solid app.”
In this case, an Agile approach is not only a nice fit, but also a critical element. “Test-oriented development is key to the castle in mobile development,” says Moghim.
While mobile app developers may benefit from the particulars of Agile, they can also gain from the general concept of flexible software development.
“Mobile app development is perfectly suited for an Agile approach,” says Todd Christy, chief technology officer at Verivo Software, which provides an enterprise mobility platform. “In the process of developing your app, developers will need to make regular changes to functionality and user access in order to satisfy regularly changing requirements.”
That’s an important consideration in the demanding mobile app space. “On the whole, mobile users tend to be more vocal with their desires to add or subtract functionality, so being able to accurately gauge feedback is very important,” says Christy.
And a more efficient development process helps contain costs as well as win over customers. “Mobile development is still in its infancy and it is expensive compared to traditional development,” says Moghim. “Therefore, optimizing that process has always been on top of our list.”