Prototyping in Software Development

In Agile, Software Development by Prabhu Missier

When it comes to Software Development these days the buzzwords are Agile, Scrum, Kanban, Lean and the like. However in the course of learning the intricacies of these frameworks and their accompanying tools and techniques the very reason for their existence is forgotten. Although I’m not discounting the value of these frameworks and am a firm believer in the Agile Manifesto and the 12 principles of Agile on several occasions I’ve witnessed these principles being misinterpreted and taking on a different role than what was originally intended. The Agile principles have a customer’s interests as their primary driving force and working software is what a customer will value the most. At the end of the day the customer couldn’t care less about whether the team’s velocity increased or decreased and whether your story point estimation used guns or roses or whether you use 2 week sprints or 3 week sprints and whether your Scrum Master is a PSM or CSM.

At Samvit we always work with the essence of the Agile principles in mind and that is why we place a lot of value on quick prototyping. Over the years prototyping has helped our Software Development efforts in more ways than can be counted but here are a few things that pop into my mind.

Building Customer relationships
Prototyping has always helped Samvit get closer to the customer. When we take a prototype to a customer the discussions that ensue are acrimonious at times but we have always come out with the customer having a stronger belief that we were the right people to do the job. Getting a prototype out to a customer makes everyone sit down together and work towards a common goal.

Focusing efforts
Prototype building requires the Software Development team to focus on what is necessary and ironically engage in strategic thinking. So while it might be good to spend time setting up that test automation framework, your entire team’s highest priority is to satisfy the customer and if building a prototype now is a step in that direction then you might want to spend some more time planning your strategy for the rollout of that test automation framework while the team focuses on the getting that prototype out the door.

Motivating the team
Prototyping is a great motivator. One of the symptoms of an ailing team is the lack of purpose that can be perceived in its team members. Team members just going through the motions doesn’t augur well for the long term health of the team. The team needs to know what it is working towards and whatever it does or will do will be making a difference to the customer. Prototyping does just that and you end up having built a project around motivated individuals.

Measuring progress
Whether you go with Mike Cohn’s recommendations or Ken Schwaber’s latest rants as to why the PSM makes more sense than the CSM it all would come to nothing if your customer did not feel that they were getting what they paid for.
Showing a customer a prototype brings you closer to the customer’s requirements and also trains the thought process of the customer. You end up welcoming changing requirements and the customer realises that they are now gaining a competitive advantage.

There are several more advantages to using a prototype driven model of Software Development and I’m not advocating that you throw out time tested Project Management techniques but not using prototyping could very rarely have beneficial effects on the outcome of any project.