By John Houghton on January 7, 2013
Updated on 8/19/14. When people think of mobile app development, they think of coding, but often don’t think (or know) about the other necessary skills involved in creating a successful app. When it comes to app development, the three skills that can make or break your project are designing, coding, and testing (source: Apple, Developing for the App Store, 7/17/12). These are also the three phases of a mobile development project. The amount of time you spend in each phase depends on how much functionality you want to implement per release. The process is iterative, so, as you polish and refine the app, it’s possible to cycle through these phases many times. In the graphic below, the resources are shown by bars. Long bars mean that resources are heavily involved during that particular phase.
Design is done by the product manager, coding is done by the engineer/programmer, and testing is done by the QA resource. Notice that each of them are involved at each phase of the project. Even the QA (testing) resource sits in on the design meetings so that they will know the functionality they will be testing for. This is important because an software is typically thrown over the wall and the QA person doesn’t know what it is supposed to do. At low-functioning companies it sometimes happens that nobody knows what portions of the software are supposed to do. The product manager is supposed to educate the teams. On the other hand the product manager is involved in the testing phase to clarify what the functionality is. Without clarity, it’s common for QA to log bugs for functionality that’s working as intended. Again, product management clarifies the vision, use cases, and functionality of the software so that everybody else can do their job.
If we were to break down the design, code, and test phases, each phase would involve all of those skills (design, code, and test). For example, in the design phase, most of the time is spent with the Product Manager designing the app, but engineers are also involved because they need to help figure out how to implement the design (there are tradeoffs) and how long it will take. Testing resources are involved if they have usability testing skills, as this is a good time to build a mockup of the app and see how users respond to it. The feedback goes back to the Product Manager, so they can refine the design. The design document is frequently called a Product Requirements Document (PRD).
In the coding phase, the engineers start by writing a technical requirements document that outlines how they will implement the design. If it’s a simple app, or if the team is small, this document can be skipped and the Developer can spend their time coding. The Developer usually will have many detailed questions for the Product Manager that go into the finer points of the design. QA (testing) resources start working on their test plans at this point, and the test plans have many test cases.
In the final testing phase, QA tests the product by looking for software defects and usability problems. They then log the issues as bugs that the engineers must fix. Some of those bugs necessitate design changes, and the Product Manager is the one who makes sure that everything is built and tested to specification. Usability testing is also performed on the final product to see how well users can use it. If issues are found, the team can go through the design-code-test cycle again.
That’s the development process in a nutshell. Strategy and distribution are the bookends on both ends of the development process, which will be discussed in a future article.