Mitigating Risk with Prototypes

10 Sep 2013

Ben Parkison Photo
Mike Nash

Central to an Applied by Design application solution is our development methodology. We think it's important to draw attention to not just what we think, but how we think as a company.

As organizations begin to dip their toes into the realm of modern browser-based applications, we believe it's necessary to adopt a development methodology that embraces modern technology stacks while combating the common complexities and risks that manifest themselves in more traditional enterprise development projects. At the center of our methodology is prototyping.

Prototyping isn't a new concept in application development, but there's been a resurgence in attention to this approach being driven by recent thin client application development (browser-based applications). Browser-based applications are built prevalently around open-source technology frameworks, and the pace of innovation in this space is phenomenal. As these technologies mature, the pace of development itself has increased to a point where functional application prototypes are becoming less time consuming and are of higher fidelity, mitigating some of the immediate concerns with prototyping in the past.

Our development methodology at Applied by Design has evolved to resemble a hybrid form of rapid application development that lends concepts from extreme prototyping , evolutionary prototyping, and a healthy appreciation for Test Driven Development (TDD). We'll dive into the details of the methodology at a later date, but for now let's focus on the concept of prototypes and why we use them at the core of our development process.


In our experience, extreme and evolutionary prototype concepts help promote an appropriate degree of systematic thinking during multiple stages of the project lifecycle. It encourages both developers and business stakeholders to understand why decisions are being made, and it helps surface issues earlier in the application lifecycle. The results are more actionable developer requirements, better stakeholder alignment, reduced long-term project risk, earlier user involvement, and more efficient application development.

Most importantly, we've witnessed how high fidelity prototypes can facilitate the communication of detailed requirements more efficiently than the most robust set of traditional requirements artifacts. We fully embrace user stories, use case scenarios, and strategy diagrams in our process, but we recognize that these are merely communication tools meant to align understanding and trace business needs to actionable development tasks.

Achieving a single common mental model in the minds of all project team members is difficult, and an effective prototype can serve to break down the cognitive discrepancies that exist between stakeholders. Each person on a team may have a different image in their mind associated with a given set of written or verbal project requirements. The role of the application prototype is simply to align each team member's mental model on a single, common representation that all can see and agree on. Until arriving at this stage, a team can never be truly confident that everyone's speaking the same language.

The objective of every project we engage in at Applied by Design is to arrive at this shared project understanding as fast as possible. The prototype acts as the common ground where stakeholders can unite and spring off of into the next stage of development. We think this concept is critical to the success of any development project. We use prototyping at Applied by Design because it helps us build better applications, faster.

As we work through our next application project, we'll share more examples of prototyping in action. We're constantly evolving with changes in technology and with the industry itself, and as we mature we'll be sharing what we learn along the way. Stay tuned!


Mike Nash