What is the role of the customer during a software development project? How, and how much, do you need to be involved to get the best return on your investment? In this article, we explore the necessity of ongoing customer involvement during the software development process.
It may be tempting to imagine that hiring a development team to create custom software for your business is a bit like ordering furniture online. Product images give you a good idea of how the furniture looks, so you add to cart, pay, and wait in eager anticipation for your order to arrive.
However, when it comes to developing software that will give your business a competitive edge, a process of continuous collaboration between customer and development team is the only way to ensure a worthwhile investment in software that automates critical business functions and increases efficiency.
As Nagar (2019) has stated:
❝ Suppose you go to a tailoring shop to purchase a 3-piece suit. The tailor will ask you to choose the fabric. Then he will take your measurements. You will be given options on the various specifics of what you would like on your suit. For e.g.: number of pockets, buttons, their shape, their, and other paraphernalia. After this rigorous process, he will provide you with a date for trial. He does this in order to make sure what he tailors fits perfectly on you. Then comes the delivery date where you get your finished product i.e. the suit.
Analyzing the aforementioned we derive that the role of the customer is obligatory in almost every step of the process. Similar is the requirement when a customer goes on to purchase custom developed software.❞
At SOLIDitech we form a long-term partnership with our clients in the Internet Service Provider (ISP) industry. This is to ensure that our SOLID platform, their business automation software, evolves as their business does. Our customers remain part of our daily planning conversations and see our progress in action on a biweekly basis.
The benefits of customer involvement during software development projects
In an ideal world, a representative of the customer would be co-located with the development team. Where this isn’t possible, modern technology provides ample (and usually free) ways to remain in contact with your development team. Whatever the medium of communication, here are some benefits of frequent customer involvement:
- Greater clarity of customer requirements and timeous prioritisation. Nobody knows your business better than you do. As such, it is in your best interests to allow the development team implementing core business processes to benefit from your consistent involvement. This need for you to safeguard the accuracy of how your business is translated into code does not only apply to the early stages of a project. The reality is that over the course of the project the needs of your business may change, or at least you may realise that the initial functional requirements were inadequate or unfeasible. Through constant communication, your changing needs can be accommodated quickly, and the development of outdated or unnecessary functionality can be avoided.
- Less financial and resource wastage. By ensuring that the development team is always receiving timeous feedback on requirements, you save money and time by enabling developers to focus only on what you need. Software projects frequently run far over-budget, and it has been said that after a poorly managed software project, only 40% of the functionality is actually used. By remaining a closely involved, communicative customer, you can avoid all of this waste. Software Development Life Cycles following the Agile approach, which are common in today’s industry, attempt to build frequent customer feedback into the process; however, the ultimate decision to be involved remains with the customer.
- More careful refinement of software through demos and testing. Even if you diligently communicate with your development team and ensure they are always updated regarding your evolving requirements, you cannot reap the full rewards of your involvement without frequent hands-on interaction with your software. A good development team will ensure that you can interact with new functionality as it is developed, rather than making you wait until everything is finished to have your first glance. This is essential because there are three sources of potential error when your requirements are verbally expressed:
1. An imperfection in your expression of the need;
2. An imperfection in the development team’s understanding of your need;
3. An imperfection in the development team’s implementation of the solution.
Frequent demos help you as the customer to recognise missing functionality resulting from misunderstanding or identify needs you hadn’t yet considered until you had a chance to use the software.
Common issues with customer involvement during a software project
Although we’ve considered the great benefits of close customer involvement in software projects, it is important to be aware of at least two common pitfalls:
- Be careful of addressing symptoms rather than root causes. With a development team on hand to solve all your problems, it may seem easiest to treat every newly discovered business inefficiency as a separate issue for the development team to solve. However, these problems may all be the result of a common underlying cause. Carefully thinking beyond the quick-fix may reveal the real problem, and tackling this upfront will result in a more cohesive software project and a lot of time and cost saved. Alternatively, a little bit of scrutiny can sometimes reveal that the huge, costly solution you had envisioned can be reduced to a simple, effective refinement.
- You’re the business expert, but implementation is the domain of the developers. Customers are logically the source of truth when articulating the business issues/needs that software can solve. However, as a customer, you should obsess over what and why, and avoid thinking too much about how. The developers are the experts at understanding the technical context of your software, and so it is in your best interest to heed their advice on the most feasible way to implement the solution to your needs.
If you want to ensure that you get the highest return on your investment in business software, make sure that you work with a development team that prioritises close customer involvement throughout the whole project. Be willing to consider yourself a vital participant in the process, and watch the magic happen!
Nagar, T. (2019). Role of A Customer in Software Development Project.