I was on the phone to a client yesterday talking about the way the mobile application development industry is changing. Traditionally the applications are cobbled together in a horizontal way by “gluing” the various code stakes together with custom middle ware. This approach avoids having to build the entire vertical stack but creates downstream issues when code from different sources conflicts with each other. Some cutting edge designers and developers are taking a vertical development approach, which essentially builds the entire stack from top to bottom avoiding any middleware and potential problems. As we discussed this approach I realized that it’s the same approach we use in designing web apps. At its core this is a prototyping approach with iterative changes. This is how Apple designs its platforms and apps and now other mobile and tech companies are racing to catch up.
Here are the reasons we think a hybrid of Agile and prototyping succeeds where traditional horizontal development practices fail.
- During the prototyping process, frequent and deep communication is required. This gives the entire team more control over priorities and outcomes. This increases transparency and speed.
- Agile methodologies avoid scope creep but allow for continuous improvement of the product or application being built. Sounds to good to be true? Well, in a way it is. You can’t really have your cake and eat it too, but you can get the best pieces of the cake at the best possible price.
- Requirements are constantly being evaluated, and thus potential problems are avoided.
- Making lots of small adjustments along the way is better than trying to solve one big problem at the end.
- Continuous feedback from the team means improved communication. We don’t need to tell you why that’s a big hit with software and web design teams.
- Clients would much rather interact directly with a visual program mockup than with a piece of paper or a static web image.
- There is little room for functional error when it comes time to code, because the model is clear and understandable.
- CSS classes and HTML design are all defined and accounted for before development, removing any guesswork by the development team.
- As opposed to a long technical spec, much of the actual Prototype files are used in development, so very little time and effort is wasted.