Don’t Ignore the Silence.
In the IT industry, there is the idea that not hearing anything (from “the business”) is a sign that things are going okay; only when there is a problem is IT normally contacted. Whether you are in the software development side or IT operations, and regardless of whether your customer is internal or external, do not be fooled by silence. So much could be being said without your awareness, creating missed opportunities where you could have capitalized on new business challenges, proactively solved issues, or simply made your customer feel appreciated. These missed opportunities could result in seriously negative business defining decisions.
This also applies to the “content customer”.
Do not be fooled by customers (or clients) that say everything is okay. Your customers should be more than OK. They should be happy, that should feel that they are getting value, they should be excited. This is why Agile ceremonies like Retrospectives are so useful. This is why in-person or face-to-face meetings (e.g., Teams, Zoom) yield greater success than phone conferences; you can see expressions and body language. This is your opportunity to get critical feedback from your client (verbal and non-verbal). Use this time to ask specific questions to make sure that they are truly satisfied with the service that you are providing. Avoid canned questions; be real and alternate your questions based on what you are focusing on. The same is true for Waterfall style projects and general support and operations services. Always have a pulse on your client’s sentiment; do not rely solely on the project triangle (%scope, schedule, budget) or SLAs & KPIs.
You also need to deliver.
Something that I have witnessed in my career are teams that work so incredibly hard for weeks or months and then are surprised when the client (or customer) is unhappy, or worse, a management escalation occurs. You need to put yourself in the shoes of the client. If you have ever had a house built, you know the feeling of seeing your home come together. From seeing the ground graded to seeing and the framing go up, to the finishing touches painting and installing the cabinet hardware, the process is exciting. This can be seen even with some of the auto manufacturers as well; you can watch your vehicle come to life, from placing the order all the way to the point that it comes off the line, with videos and pictures sent to you at various points along the way. The process of software development (or any product for that matter) is no different, you need to show progress; showing Jira or DevOps cards moving along the board is not enough. You need to show tangible iterations, even if what you are delivering are unit tests or scripted API calls via postman or curl, show the client that something has been done; better yet, if you can, give them the ability to run these tests or make certain calls themselves. People feel good when they have something in their hands, give your client something to hold (when possible). Something to be careful of, and to keep in mind, be sure that you are explaining what is happening. Remember, you may be the expert in your domain, but your client is the expert in theirs. Take the time to explain to them what is going on, just as they took the time to explain their needs to you. Get to know your client’s technical understanding, do not assume that by showing them some web services in Swagger that they understand exactly what is going on. I am not stating that you need to break down how models and controllers work or how EF Core connects to the database (using .NET application for reference here), but you could. You may just need to show an empty database table then switch to Swagger, POST your content, and then have them see it in the table using a SQL query. Again, if you can give them an interface to try some of this, from time to time, that is often a great way to make them feel engaged and that they really are receiving something, especially during the early stages of development. The point is, always deliver something.
Don’t’ be complacent.
While ignoring the silence is dangerous, so is being complacent. If your client, or customer, is providing positive feedback and if you are delivering work and if they are engaged, then you have the makings of a well running project (assuming time, scope, budget is good); however, you also need to do a “gut check” every once and while. There is no formula for this, it is based on understanding of project health (i.e., time, scope, budget), your understanding of the client (personality, behavior, technical understanding), as well as your own experiences. Sometimes you need to do this after a few weeks, or maybe a few months, but at some point, despite what all the data says, you need to ask yourself questions such as: “are we making good progress” or “would I start to get impatient”? . I have seen projects where everything appeared to be good, but then the next day an escalation happens because “feature X” has not been delivered yet. This is where the “gut check” comes in because you need to be able to develop that level of intuition, thinking ahead and acting proactively instead of reactively. Again, this is not something that can be determined using a matrix or formula, it is only understood through experience or natural inclination, but I mention this because this skill and practice is something that sets good technical leads and project managers apart from average. You need to create a mindset for this and start trying to identify ways to enhance this behavior.
Ultimately it all comes down to this, pay attention to your clients and customers; treat them the same way that you would expect to be treated, if not better. At the end of the day, people are not ONLY buying your product, but they are buying the entire experience…it should be a good one.