DEV Community

Cover image for Software Features Acceptance by Client
Mad Devs for Mad Devs

Posted on • Edited on

Software Features Acceptance by Client

What problems can arise and how to avoid them

Feature acceptance by the client is one of the important phases in the software development lifecycle, which ultimately determines the product’s functionality delivered to the end-users. The whole point of this step is to successfully sign off the feature with the client and make the release, but to achieve it you have to make sure that all the objectives are met. Sometimes not everything goes so smoothly. It often happens when just before the deadline you discover that some functions are acting up or stop working at all. As a result, you get stressed teams and unsatisfied clients. Let’s work out why these problems occur and the ways you can ensure stressful-free feature completion.

Feature requirements

One of the most frequent problems is when teams do not think through software development requirements.

post image

For example, you implemented a feature for the web page, however, you did not think it through and forgot to adjust it for the mobile version, which results in a jagged page layout or faulty feature. Or you developed a customer service feature for end-users but did not consider adding a control panel for admin staff. Such small things, which can easily slip your mind will have a big impact on the quality of the user experience.

Feature planning

The previous issue can be avoided by focusing on creating a high-quality and comprehensive plan in the early stages, which will help you and your team to avoid any last-minute hustles.

post image

The main objective of feature planning lies in determining the value it will deliver to a user; however, it also includes in itself everything from function capabilities and to the way it will look like. When you are working on big projects, it is essential for a team to carefully consider each feature from the perspectives of different users as it is greatly affecting the characteristics it should deliver. It is also important to organize enough testing before the project completion, to identify any defects in the early stages.

Feature misunderstanding

Another common problem is when clients' wishes are being misread and it is usually a product of poor communication. It happens that at the planning stage technical team misunderstands the client’s needs and as a result, the final product is not meeting their expectations.

Introduction to Technical Debt

Sometimes both parties are the ones to blame. For example, the client has given a vague presentation of their idea, while developers did not clarify confusing parts and proceeded to an execution stage. Nevertheless, I believe that we should encourage a customer to be more open and give us the bigger and more detailed picture, especially if he/she is not really tech-savvy and can have a difficult time trying to explain something out of their expertise. It is more sensible to ensure that all the time and effort you are about to put in this project is not going to be put to waste and met with disapproval in the end.

Afterward no matter if the idea was coming from the main stakeholder or product manager and despite how good it may sound; it has to go through a feature validation process. Essentially it will help to make sure it solves the right problems, fits the needs of your target audience, and has a potential for future business success. Only then you can proceed to the implementation stage. It is more sensible to ensure that all the time and effort the team is about to put in this project is not going to be put to waste for an idea that was bound to fail from the beginning.

Uninvolved client

Making sure that your client is actively engaged in the project should be the top priority for the whole team.

post image

It’s important to show the customer the progress of your work, making sure he/she sees what they are paying for and having a say in the process of development. Ensuring these aspects might save you from future troubles, such as when the client is not keeping track of the work and by the end is not satisfied with the outcome. These can be avoided by establishing a timetable for check-ups, it can be once in 1–2 months basically whatever will be fitting with your team’s pace. I find that it works better when such regular check-ups are more about visuals and testing the website or app itself, rather than looking at pure statistics and reports. It’s also great when a technical team doesn’t fully rely on the project manager but is ready to present the progress by themselves. It positively impacts both clients and teams involvement.

If you will be able to provide the client with regular review of the project, I can assure you that they will be more excited about the final product as the process will keep them more invested and curious.

Overdue tasks

Piling up the stack of work until the last minutes before the deadline. We all love it, don’t we? Yes, it might have worked with your school assignments and you were even getting A’s, but these habits should be better forgotten in the university days.

post image

You have to remember that in a business environment, your mistakes are not solely affecting you, but your inconsiderate actions will cost the whole company money and spoiled reputation. In such cases, when you start hurriedly finishing your tasks in consequence you end up with a raw and incomplete product.

Analyse tasks

Putting on your plate more than you can handle. It is common for a team to dive into the task solving without doing proper scheduling ahead. Whether it is feature planning or any other stage, before actually starting to work on something you have to take a step back and analyse your future steps. What you should do is break one big task in smaller subdivisions. Firstly, it helps with an accurate estimation of the time and setting realistic deadlines.

Secondly, if you look at the problem as one big and endless bundle of tasks you tend to overcomplicate the difficulty level. So, sub-tasking also brings you a better understanding of the problem you are trying to solve. Moreover, it will bring more clarity to the client of the work you are doing and deeper insight into the progress you make.

A good and professional project manager or a developer won’t put up with any uncertainties and missed deadlines. If you don’t want to cause unnecessary stress in the future implementation stage, then you better not overlook the sub-tasking point.

Conclusion

Finally, you will face different kinds of problems at each stage of the project. But your job is to minimize the number of such encounters to the best of your ability. As we saw in the listed above examples planning is key. Whether it is for something more specific like features planning or more generic concerning the organization of the whole project. Ensuring that you have a comprehensive plan which will come handy to every member of the group is very important, i.e. it will help your co-workers to stay on track and meet all the deadlines.

Apart from that, you should not forget to communicate with your client, the main stakeholder of the project. By listening to your customer’s enquiries and providing them with a regular overview of the work you will be able to address any arising misunderstandings on time. Without driving them to the last minute and providing your team will end up with unnecessary headache and stress.

Previously published at maddevs.io.

Top comments (0)