No software product is developed in a vacuum. No one develops a piece of software just to develop a piece of software. Developing software always involves a customer, even when that customer are the developers themselves. In those situations, the engagement of the customer is guaranteed.
In cases when there is an external customer, engaging them can make the difference between an adequate software product and a great one.
And even if you are not that concerned with karma or even being a good person, delivering great products should be your priority from a strictly business point of view.
In other words, you want your customers to be engaged. Ideally, you want them to be engaged all along the way.
Starting from the Top
Even before the project is agreed upon and the product development lifecycle commences, there is the matter of the initial quote that the software development company will provide to the customer.
The initial quotes are always approximations, but for both parties involved, it is better if they are as close to the actual estimation of the costs that comes later.
For the customer, a precise quote helps them get a feeling for how much it will cost and figure out if their budget will allow for it. For the software development company, a precise quote ensures that the customer knows what they can expect and helps avoid cases where the the final estimation dramatically exceeds the initial quote, souring the relationship with the customer.
For a precise quote to be possible, it is always better to have an engaged customer who will provide as many details about the product they are looking to have developed.
A software development company should assist the customer here, posing the right questions and guiding the customer towards forming a clearer picture of the expected product.
Requirements. Requirements. Requirements.
When we are discussing the importance of customer engagement, nowhere is this more important than in the next step of the customer-developer journey — the requirements gathering phase.
Every software product will come with a number of requirements that the customer wants the finished product to meet. These will start with the big picture stuff such as what this product is supposed to do for the end user and where the brunt of the business value will come from. This is then supplemented with additional customer’s needs, wants and preferences, further defining the product.
This step will affect everything that happens later and it is therefore important to handle this as well as possible.
As can be expected, not all customers know enough to expertly provide the requirements. The good news is that by engaging them, a software development company can still get enough information to move things along.
Through great communication and openness to ideas and suggestions, it is always possible to obtain enough requirements to do the initial product draft, a precise estimation and proceed with the product development lifecycle. The people from the development company can play a proactive role with customers who do not have a particularly clear image of their product in mind or who have little idea of what their product should behave like to fulfill its purpose.
It may take a bit of time and patience to get all the requirements to move forward, but it can be done regardless of the customer.
This is especially true for agile software development companies which are usually able to kick off the development process without needing to iron out every single tiny detail about the product.
Of course, it is always possible that the experience will be diametrically opposite one, with a customer that comes with clearly-defined requirements that they see as set in stone. In such a situation, the software development company should still try to start the dialogue, asking questions about requirements and making sure everyone is on the same page.
Product Draft Review and Estimation
Once the requirements are collected, the software development company will start the work on the product draft. Depending on the type of the product and the way the company handles this phase, the draft can involve an application map, wireframes, user personas and other details that will help give initial form to the product and come up with an estimate of time needed and costs involved to develop it.
User stories, the technology stack needed for the project and the team size and composition also have to be worked out in order to make the estimate and the proposal even more precise.
It goes without saying that customer engagement is once again the main ingredient when the time comes to review the product draft and the final estimate and proposal.
The customer should be encouraged to comment, suggest and ask questions about anything that might be unclear to them. If they feel that some other way to handle a certain requirement is the better choice, they should discuss it with the vendor. If they think the product draft should be modified for any reason, their software development company should hear them out and open a dialogue.
The customer should also never feel like they are being put in front of a list of expenses that they can either accept or decline.
It is like the Agile Manifesto states:
Customer collaboration over contract negotiation
It is the responsibility of the vendor to make this a collaborative effort.
Perhaps the most common issue when it comes to customer engagement happens once the product draft is accepted and the developers start working on the product. Namely, too many products proceed to be developed with only minimal involvement on the customer side.
There are innumerable reasons as to why this happens — a customer too used to the waterfall software development; lack of time or skilled personnel on the customer side; a belief that requirements and the product draft are guarantee enough for a successful product,; seeing the actual development process as too complex or insignificant to keep track of, etc.
Whatever the reason, the outcome is always the same — the product and the development process are never as good as they could have been if the customer had stayed involved.
The software development company should, once again, do everything in their power to encourage customer involvement and the good news is there are plenty of ways to do this.
Truly implementing agile software development is arguably the most efficient way to approach this — delivering working (and tested) software in short cycles (iterations), thus allowing the customer to track and review the progress of the product and see how it is being improved and built upon continuously.
By focusing on short iterations and through exercising 100% transparency into their work, agile developers also invite customer comments and suggestions and even changes of requirements. This way, customers can also pivot the future focus for the developers without disrupting the product development process. Finally, with this kind of a set-up, it is also much easier to respond to the changes in the marketplace and the customers and the vendors should always approach these collaboratively.
All of this is aimed at improving the product and making it more alike the product the customer originally envisioned.
Customer collaboration is a key ingredient in a successful software product and if the vendor feels like their customer should be more engaged, it is their responsibility to enable this. There may be bumps in the road and other difficulties, but it will be worth it.