Demand for the creation of new mobile applications is increasing rapidly, but will you be ready to meet these new challenges? If you think that satisfying business demands for mobile apps simply means hiring a few developers and bolting a new front end on existing systems of record, you couldn’t be more wrong.
Mobile development presents a completely different set of challenges than any past enterprise development project. And these challenges aren’t limited to development teams: They will permeate all aspects of the software development life cycle (SDLC), enterprise architecture, and the methodologies used to develop and deliver mobile applications.
Mobile revamps your design
Most development organizations already have a dedicated design team or a design center, but mobile makes this an absolute requirement. Good functionality is important, but bad design can neuter even the best functionality. Shops with a great design ethos and an understanding of how to convey these designs through to implementation have a major competitive advantage. Look no further than Infor, a vendor in the enterprise resource-planning space. Infor created and staffed a complete, standalone internal creative agency, focusing on the user experience with its software suite.
Additionally, mobile embraces new development paradigms. Developers have amassed certain languages, tools, skills, processes and work habits. Mobile will force you to focus developers on the transition from back-end development to user-experience development, and from back-end adaptations to the scale and performance of the platform. Mobile developers must master event-driven architectures and asynchronous programming models, and be competent with JavaScript frameworks.
As for testing, when it comes to mobile, everything happens sooner and is now everyone’s responsibility. Since the cadence of mobile development is drastically shorter, quality assurance teams don’t have time to wait for development to finish before starting a test, and developers must understand the organizational test infrastructure. Mobile development employs automated test scripts and continuous integration frameworks. The net effect of these measures is that large portions of tests are performed every time code is checked into the source-code repository.
#!
Visualize your requirements process
Mobile’s need for increased cadence fits hand in glove with lean and agile methodologies. This is especially true for its use of common tools and common documentation formats between teams. Agile focuses on developing a minimum viable product (MVP), delivering usable parts of the MVP more frequently in smaller chunks, and using feedback loops to adapt quickly to change as needed throughout the project.
Traditional approaches to authoring requirements have teams of business analysts writing tomes of documentation and distributing them all at once to development team members who do their best to interpret them, a practice that has become a recipe for disaster. A more agile approach uses visual mockup tools to create visual requirements that become the focal point for driving all design and development decisions. Design tools are beginning to import visual mockups and generate rapid prototypes, stubbing out the service layer for later implementation by the development team. A common visual documentation format reduces delays from misinterpretation, and becomes the binary workload that can flow through an application life-cycle management (ALM) framework. Native integration with your ALM tool will increase SDLC efficiency.
You build to scale or you plan to fail
Remember the early days of e-business: All you had to do was expose legacy applications via a Web interface and you were in business—or so you thought. Then 10 million customers hit your site all at once; you built your own unintended denial of service attack. Ignoring the impact of mobile on enterprise architecture may be the single most glaring oversight.
Service-oriented architectures, largely implemented using simple object access protocol and XML-RPC protocols, have served the desktop browser perfectly. While mobile presents new challenges, Web protocols are verbose and often session- and state-based. Mobile clients, on the other hand, don’t have a consistent connection supporting long-running sessions. Parsing verbose data packets filled with content decoration (XML tags, for instance) places a heavy burden on the device battery. You must address these issues (and others like them) for a successful mobile engagement.
The mobile application development journey is unlike any enterprise development project you’ve worked on in the past, and if you’re not careful, there are plenty of unforeseen dangers along the way, ready to send your project crashing into failure. By anticipating these dangers and adapting your IT organization accordingly (hiring/developing more internal design expertise, embracing agile methodology, reorganizing testing and development processes, etc.), you can ensure a smooth mobile development process with great results.
Michael Facemire is a senior analyst at Forrester Research serving application delivery and development professionals.