POSTED 22.05.13 / BY HOTWASABI
DESIGN METHODS - MOBILE APPS
Since the introduction of the Apple iPhone in 2007 and the creation of the iTunes app store in 2008 over 1 million ‘apps’ have been launched covering a vast range of information, utilities, games, media, and entertainment. The average iPhone user has around 37 apps on their device whilst the average Android user has 32 apps on their device.
In understanding which methodology or process is most suitable for mobile applications, it is necessary to first summarize the most common methods used today for software development.
Waterfall Method; is a sequential design process, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Requirements capture and Analysis, Design, Implementation, Testing/verification and Maintenance. The method works best when each phase is fully completed before moving sequentially onto the next, and having a comprehensive and well-defined set of requirements. The central idea is having a Big Design Up Front (BDUF) approach: time spent early on making sure requirements and design are correct saves you much time and effort later.
Agile Development; Covers a range of methodologies, which have at their core frequent iterations of design planning, development, testing and deployment. Agile development offers the flexibility to define features and requirements over the course of the project, and to assess the implemented features on a regular basis. In Agile one chooses to do things in small increments with minimal planning, rather than work on a full plan at the inception. This helps to minimize the overall risk and allows the project to adapt to changes more quickly. A particular agile methodology created in 1986 by Hirotaka Takeuchi and Ikujiro Nonaka describes a holistic approach that would increase speed and flexibility in software development, they referred to this approach as SCRUM.
SCRUM; Refers to a lightweight process framework for agile development within which you can employ various processes and techniques to optimize predictability and control risk. A Scrum process is distinguished from other agile processes by specific concepts and practices, divided into the three categories of Roles, Artifacts, and Time Boxes. The process is more responsive to development requests where high-value features are developed and delivered more quickly with short cycles, than with the longer cycles favored by classic “waterfall” processes. Due to the cyclical nature of Scrum it is more able to deal with changes in requirements or unpredicted challenges.
Iterative and Incremental Development; Variations and extensions of established processes have been devised which generally starts with an initial planning phase and uses cyclic interactions between this and the deployment phase:
As with any design process once you have the idea it is important to fully research that idea, both in terms of how original it is and what potential users may think of it. It is clear that the most successful apps invest some considerable time in this phase of the design. Given the nature and diversity of developing for a smart phone, it is likely that a cross-functional team with different skill-sets is required; combining behavioral aspects of the touch screen interface, with visual designers to create the right look and feel, and content specialists to make sure what the user sees is both effective and efficient. To make a successful app requires a significant amount of initial up-front design, which seems to fit with the waterfall approach, however unlike large client-server software designs or large construction projects, where the waterfall method is most commonly used, a more agile approach is necessary once the initial research phase has been completed. The reason for this is due to several factors:
Business model and Resources are generally a balance between development cost and forecast revenue. As smart phone apps are a relatively new market, predicting downloads and revenue/advertising sales are difficult, so in order to minimize risk development costs would need to be kept initially low. As a result the initial development will have limited resources, the role of the design process should be to maximize the effectiveness of these resources. Agile development, with an iterative approach would enable resources to be completely engaged in tasks/activities through the initial development cycles and beyond, whereas in the waterfall model each phase resources will not be engaged until the previous phase has completed. Once a phase is complete these resources will then either move to a different project, or no longer be effective.
Time to market; As there are 100’s of new apps appearing on the market each week, it is import to make sure your idea is the one that captures the users interest. Such is the nature of the app stores and the viral marketing surrounding this channel, once an app starts to generate interest, downloads can often snow-ball in a short space of time, even though there may be better apps available. The development process should identify the main core features/components of the app that would stimulate interest and underpin its objective. The approach of maintaining a Product Backlog, Sprint Backlog, and Burndown, as in SCRUM, partly addresses this problem, however I believe these artifacts/requirements need to be prioritized against the original concept/purpose of the app.
Quantity vs Quality; It is easy to think that including more features in an app would make it better than a similar less feature rich app, however higher quality with better performance and user experience will be more appealing to users. Some of the best and most successful apps are those that perform a relatively simple task, but do this extremely effectively. In order to ensure the app has sufficient quality it is necessary to test thoroughly, and to fine tune or bug fix until the app is stable. This requires the process to have a more iterative development>test>evaluation>planning cycle as seen with agile processes. From the previous discussion it is clear that no ‘one size fits all’ approach exists to designing smart phone apps. I believe ‘cherry picking’ certain aspects of existing processes, and combining them in a SCRUM framework may work best.
Requirements planning phase; This would be similar to the planning stage of the waterfall process in creating the BUFD. However the focus would be more on strategy, research, prototyping and prioritized requirements rather than the complete design. Also would include key performance indicators (KPI’s) that will be a measure if the app is meeting the purpose and objectives.
Design, Build, test; This phase would follow a Lean UX agile process with an iterative and incremental approach to design, build and testing functional sets or backlog items as in the SCRUM sprint stage, the difference being that the backlog items should be prioritized against the app strategy. As the smart phone app features and code are generally smaller the sprint period could be shortened to a 14-day cycle.
The development team should be self-managed and cross-functional as with SCRUM, however I do not think a formal structure with SCUM master etc. is necessary unless the development is for a 3rd party, where involvement of the Product Owner is advantageous, and in which case adoption of the full SCUM method is more beneficial to this phase.
I am passionate about innovative design and creating user experiences at the intersection of art, science and technology.
Are Games Fun?
LEAVE A COMMENT