Managing the lifecycle of a mobile application turns out to be a lot tougher than managing traditional Web applications. While mobile applications share a lot of similarities with traditional client/server applications, the process for developing mobile apps is still very different. Developing successful mobile applications requires a much more rapid and flexible approach to the development lifecycle. Independent software consultant Howard Deiner suggests adopting Agile development methodologies to get a handle on mobile ALM.
Deiner says the nature of mobile apps is changing the face of application development. The application cycles have gotten very fast. "With a mobile application," he told us, "there might only be 60 days from concept to cash," meaning mobile application developers may be expected to turn an application around completely in only two months. This rapid turnaround can certainly put more strain into managing mobile ALM -- especially if developers are trying to speed up traditional waterfall methods with lots of handovers.
It's not just the speed factor, either, Deiner said. "There's also greater competition to contend with, ever evolving technologies to stay on top of, increasingly high expectations to live up to and more media attention to worry about," he said. If developers try to hold onto rigid development practices, they make break under the pressure.
Taking a traditional approach to meeting the challenges of mobile ALM, Deiner suggested, may lead development teams to rush through the requirements phase. In all likelihood the requirements will be delivered with great speed, but without any substance. The requirements gathering will then set the tone for the rest of the project. "Treating a mobile app like [a fast version of] a traditional IT application has poor outcomes," said Deiner.
He also suggested taking a much more flexible approach to mobile ALM and adopting an Agile mindset as a prerequisite to developing mobile applications. It's important for the development team to get to the point where they can work on an iterative development model.
Make the mobile call early on
Building up the flexibility to keep up with mobile applications requires an application lifecycle management approach that focuses on smaller chunks and validates results as each piece is finished, according to Deiner. "Because you can't see a year ahead in the mobile space," he said, "you can't be successful with a year-long project." Mobile development teams need to find out quickly whether the application is going to serve the purpose or not. "If it's a loser, find out fast and change directions," said Deiner. "Find something that wins, instead of throwing more resources at a loser."
Many mobile developers have already taken up an Agile methodology that makes it easier to pick and choose pieces of functionality instead of large, complicated applications. However, it's readily apparent that many development shops exist with a tradition of long-term thinking about enterprise applications. That mindset has historically shown a great degree of success and can be very hard to change.
These two worlds frequently collide in enterprise mobile apps designed to let employees on the go work with business-critical server-side applications. With traditional integration projects, there can be a lot of back and forth between systems in order to sync up the messaging and APIs between System A and System B. That brings up red tape and severely hinders an Agile mobile application development team that is focusing on iterative improvements on a week to week basis.
Separate thoughts about mobile, traditional apps
The way Deiner sees mobile teams overcoming that challenge is by keeping the mobile application out from under the umbrella of traditional architecture. "For the most part, mobile apps don't use the stack." Deiner said. "They use Web services backends." The working enterprise mobile application is more of a terminal, in Deiner's view, than a complete application. He said they are usually very browser-based, even when the product is delivered as a native application.
Using Web services on legacy applications can help extend the applications' reach tremendously, according to Deiner. From the client end, the mobile application will just see a provider of Web services. "They make service requests and it doesn't matter how they're filled," he said. "So the mobile apps can tie back into legacy and mainframe resources relatively simply."
Does your organization have questions about the application lifecycle of mobile applications? Let us know what they are and we'll do our best to find you answers!