Why do so many application development projects fail? In many cases, the reason for this are inaccurate or incomplete requirements. The move towards "Agile" was a way of combatting this. Those evangelizing this gospel will contend that changing requirements are a part of life and should be embraced with open arms. These enthusiasts propose you can flex product scope, while still meeting the business need and fitting within the time and resource constraints of a given project. Much of this is true. However, we can still do better!
But how? Ask yourself this. Would you ever buy a new home without seeing a model home? Would you ever buy a new car, without test driving it? Or buy a new shirt without trying it on? The answer to that is clearly “No”. We understand the reason intuitively, people want to test things and try them out before they make a buying decision. In the example of buying a new home, we know that most people would never buy one solely based upon Architectural drawings and sketches. It doesn’t matter how detailed these drawings are, it’s never going to happen. Then why on earth would you deliver an application without giving the Users the ability to test drive it, before it’s been developed?
Yes, stakeholders should know exactly what they are getting before it's produced. Or at the very least, something close to it. This is where prototyping comes into play. The key here is that we're translating their wants and needs into something that's both visual and tangible. We all know that most people are visual learners; your stakeholders are no different. Most stakeholders will have trouble digesting a 300-page specifications document; similarly, most will also have trouble conceptualizing a set of User Stories in an Epic. However, most if not all, can easily understand a working prototype. It’s so much easier for them to give feedback, and ultimately approve the work. In addition, prototyping can give the team a head start in terms of UX/UI, which is a huge bonus.
To be successful as a Business Analyst in today’s competitive environment, adding a skill like prototyping to your toolbelt is a huge advantage. It’s worth your time and effort to learn. So, let’s look at some more of the benefits of application prototyping:
1. Cost Savings
The biggest benefit of prototyping is obvious, it’s the ability to save on costs. Coding is very expensive and time consuming; while you can make very large-scale changes to a prototype on the fly.
2. Minimize Re-work
Even if we’re working in an Agile-based environment, we still want to minimize rework. There is a significant difference between making changes based upon a business need, as opposed to a misunderstanding. One is highly productive, responding to marketplace signals. The other is unnecessary and is very costly. Prototyping can largely solve this.
3. Increase Delivery Speed
A big morale boost derived from prototyping is the ability for the team to deliver more, in a shorter amount of time. Prototyping removes a lot of the ambiguity and guesswork out of the application development process; this time can be better spent on delivering the end solution.
Hopefully I have been able to convince you to start prototyping your solutions starting today. If not, it would be wise to at least think about adding this technique to your requirements gathering process. A less involved technique would be to start wireframing some of your end solutions; this can be very effective and is extremely simple for even a beginner. Any way you slice it, the more visuals you can add to your Requirements or User Stories, the better off you will be.