James Billson has seen it all in the tech world. He started his first pizza delivery business at a time when Wi-Fi didn’t exist and orders had to be delivered by fax.
This business transformed into a software development outfit, and with it, he witnessed the rise and fall of tech in the early 2000s.
He made his grand exit with a sale to international advertising behemoth BBDO. He now runs Primary, the result of his years of development service experience. In this article, he shares a simple agile technique for building better software.
Agile methodologies are here to stay. They have received widespread acceptance in the sphere of software development. An agile approach helps teams to work together as well as with their stakeholders.
Agile practices help development organizations focus on their individual end-users and the way they interact with products.
Actions speak louder than words, and in software that is part of the problem. In the Agile Manifesto, having ‘working software’ is prioritized over compiling comprehensive documentation that exhaustively defines the product before development. Coincidentally, this manifesto was written by coders, and the universal belief of a coder is, if there is a problem, code it. If we extend the definition of ‘working software’ to include an application model, opportunities to work faster and more efficiently arise.
Introducing Application Modelling
Much like in manufacturing, product modelling can be used as an alternative route to effective application design. Modelling is the process of creating a simulation that gives insight into how the real product will function at the end of the development process.
There are many merits to this approach. First, it re-creates the full size and expanse of the product, in a holistic full-dimensional way that allows due consideration of all its facets. This way, it helps the team to understand the features of the product better and translate it into a design that the users can also comprehend. Finally, it presents all the necessary information in a light and vivid format rather than the dull and impenetrable nature of typical requirements documentation…
With a well-developed application model, there is direct access to the full scope required for the development process. It removes the likelihood of overlooking future steps and pathways by revealing the features of the future product.
Involving the Whole Team with Modelling
Modelling creates a unique environment for synergy among the UX team, the developers, and the product owners. A product model is an agile system that allows real-time creation and modification. All parties can raise potential concerns and create a matching solution as work progresses. In comparison to a ‘straight-to-code’ process where decisions are usually made during development, application modelling greatly saves time and team resources.
Telling Stories with User Flows
James Billson founded Primary.app to give developers an easy way to conduct product modelling. However, beyond simply using a tool, there must also be a systematic approach.
Developing a product model should be very much like telling a story. A story has a single important ingredient that allows its teller to connect with audiences. This is the narrative. To find this narrative, the development team must create user flows. A user flow is a series of steps that outlines the journey of the product user through the life cycle of the application. The user is the hero, and over each step, we see what they do, how they do it, and why they do it.
The narrative of the flow is the backbone to which you attach the details and conditions that will inform the different aspects of the product work. Once you have that overreaching structure in place, you can manipulate and modify details, creating different user scenarios and comparing end results. All of this can be done without making any grave changes to the main body of the model.
User flow models have another advantage in helping product managers to avoid the pitfall of ‘happy pathways’.These happy paths are easy and fun when you are looking at an engaging prototype that has all the characteristics of your minimum desirable feature set. However, the building process will reveal all the other less exciting processes that are needed to support these main functions, leading to a development lag and a generally uncoordinated process. A user flow-based model will highlight these necessary support functions and help you stay on top of them from the very beginning.
Modelling is The New Documentation
Comprehensive documentation fell out of favour because it became seen as a blocker to creativity. Development teams want the freedom to identify opportunities that arise from seeing the product in operation. As decisions are made in development, the document becomes increasingly redundant. The long descriptive passages and confusing diagrams did not lend themselves to easy updating.
Application modelling completely redefines all of this. It is a light system that can be edited and modified in real-time. The entire team can make input based on the progress to date and see those ideas implemented in the following sprints. The result is a clean and compact model that mirrors the reality of the developed application.
At Primary.app, James and his team have created a system that allows users to build large application models that are easily modifiable and constantly under development. Models can be changed any time, in response to key drivers that affect the app functionality in real life. It is as easy as changing sheets or doing the dishes before heading out.
Application modelling is the future of software development. User flow-based models of your app can be created with minimal resources, and then used to engage product team members for maximum and meaningful output. What you get is a comprehensive system that can be modified and iterated to synchronize with your desired result perfectly.