Managing clients

The Players

It’s not a secret that software engineers prefer a clean and completed specification than meeting with clients.

We tend to think that meetings are a waste of time and many of our colleagues are not very fond of what is called soft skills.

On the other side, we have some clients that have no idea about software and want the changes in their platform now.

What is all of that? Let me tell you, a recipe for the disaster.

The Setting

In a startup, we are very close to our clients, so we engineers manage directly the relationship with them.

Let’s add some extra complexity. The project you have assigned to has no documentation and has a high technical debt.

The client is not cooperating and is impatient…

What do you do?

The Solution

Technical solution

The technical debt problem needs to be resolved, how? Analyzing the current system: what does (software requirements) and how does it (software design).

Client management

The client feels lied by its older outsourcing company, he/she needs a special treatment. How can we give him/her that?

How can we make our client feel safe with working with us?

We have to guide our clients

One of the most successful aspects of Agile development is the change of developers-client relationship.

We must be the calendar, reminder and notifier of the client. We define when we are going to end our sprints and deliver the software modules to be validated by our client.

Clients are limited

Don’t suppose any knowledge.

The client can be wise in his/her field (many times it is not) but doesn’t know anything about software.

We should talk in a simple vocabulary, explaining the concepts, making metaphors and real like comparisons to achieve his/her complete understanding.

Clients have needs but ask for changes

Clients have background needs because of business or personal requirements but they express them in form of “changes” in the software, even telling us how to do the changes.

We should know these base needs instead of the particular changes, because most of the time, things can be done easily or better.

Don’t lose control

Clients can be disrespectful, condescending or can be tyrannical.

We are engineers, we must be assertive, defend our integrity as humans but we must not attack the client.

Technology makes people feel vulnerable, specially illiterate people, so they tend to show this feeling as anger or other unpleasant emotions.

Conclusion

We don’t work for a client, we work with a client.

Many times a conversation can avoid developing new features that won’t be used or the cancellation of the project.

Soft skills are important, yes, even for an engineer. You will have meetings with clients, so practice your “human” abilities.