How does having clients and customers being closely-involved with the software development process and the development team affect the overall workflow and the final product?
As counter-intuitive as it sounds, it truly can be a problem and that’s what this guide aims to explore and propose mediating solutions.
What’s the Problem of Client/Customer Involvement With the Software Development Team?
Customer involvement is very beneficial during a software development process and it’s even one of the main principles of the agile development method. The principle entails that customers or clients are closely involved in the development process or life cycle as they can elicit or come up with and prioritise additional system requirements as well as evaluate, test and validate iterations of the system.
However, the problem with the client being firmly committed to becoming involved or engaged with the development process, is they may adopt a “go-native” or “go-local” approach. This means, they obtain the viewpoint of the development team and is no longer able to think critically about the project. So, they dismiss requirements addressed by users, even from their own colleagues. Also, they lose sight of what a general user wants from the system.
Overall, the main problem of having the client closely involved with the software development team is they lose sight and awareness of their end-users, colleagues, and other stakeholders.
Therefore, now that we’ve identified the problem, the following are 2 methods to mediate or resolve this customer involvement issue as well as the pros and cons with each approach:
1. Legalize Consumer Proposals With the Further Consumers
In this step, the suggestions and recommendations proposed by one user must be verified and validated with the opinion of another user. Therefore, the benefit to this step is that by discussing and checking the suggestion of users with one another, we can check them thoroughly and independently before accepting and prioritising them.
However, the downside to this method is that as the suggestions are being verified independently and individually, this can slow down the overall development process as long times are required for these extensive checks. Therefore, each check can be seen to slacken down the development process. Consequently, this delayed project can then lead to an accumulated or additional cost to the overall project.
2. Collecting Suggestions From Multiple Users and Changing Members From the Team
In this step, we’re involving a greater number of users to obtain more viewpoints and suggestions. Additionally, if any of the involved users are found to create problems within the team or are unable to contribute suggestions and ideas for the system, they’ll be exchanged with another user.
Involving more users introduces multiple perspectives or viewpoints of the systems, thus the developer can obtain more suggestions. The corresponding downside to this is that like before as more suggestions are reviewed independently this can take up more time and result in more project cost due to the delayed project and timeline as well.
Another benefit to this method is that we can obtain better coverage or exposure of the user tasks and from there the user requirements. Thus, by having more involved users, we’re less likely to have a typical user that’s involved. Instead, we’ll have a variety of distinctive involved users and hence a variation of opinions, viewpoints and suggestions being proposed as well.
Nevertheless, the disadvantage is that some of these new users may be unaware of the system and its operations. Thus, it takes a longer time for them to grasp the system workflow and process. Till then, the opinions they propose may not be consistent with the system’s operations and business contributions. Also, this additional time will add to the project delay and corresponding additional cost as mentioned earlier.
On top of that, there may be conflicting or contradicting opinions and requirements raised by these different users as well. Plus, there’s a likelihood of correlation occurring between these different suggestions from different involved users. So, these correlations being raised can be an additional cost to the project. Aside from that, by involving more users, it becomes challenging for the developer to manage and obtain user engagement.
Conclusively, having clients work and being closely involved with the software development team typically seems favourable to the developers. However, it can lead to them having an outlook that’s too similar to that of the development team and leading to them losing sight of the needs and requirements of the end-users as well as the other stakeholders.
Therefore, 2 solutions and their pros and cons are explored to mediate the problem of close customer involvement in the software development process.
We hope that you found this guide helpful and feel free to share this post with your fellow software engineers!