This feature is small, that one is far away..

Vinny | almost 2 years ago | software development, management, communication skills

XKCD Minsky comic

Update In a strange and sad coincidence, I had already drafted this piece when I heard the news that Marvin Minksky had passed away. He was an AI pioneer who legendarily sent some underground students into the field for a summer project in 1966 to work on image processing and computer vision, a research field we are still getting to grips with today, 50 years later. This comic strip from XKCD was inspired by that story.

There’s a lot of truth in this comic strip but it made me think of how I deal with this in the real world. As a software developer, we’ve probably all had a conversation like this one at some time. The request usually comes from a manager or client with a non-technical background, it might be a new client you’ve brought in to your agency, your head of sales or CEO (I will refer to CEO only from here on) and it’s often preceded by an ominous head poking around the door or an email with the subject ‘one last minor addition’. Sound familiar?

To a non-technical person, ‘recent purchases’ and ‘recommended purchases’ look very similar.

So what’s the problem here ? Well you’ve been asked to add a feature and now you have to explain why this isn’t possible or is just very hard. Here’s the thing. Flippant answers are not your friend here. An off-hand comment about five years and a small research team makes for a funny comic strip but doesn’t do too much for the person making the request so you will need to back this up with more information.

So why is this request hard? Well, only you can answer this but there are recurring themes. Sometimes the software tools just aren’t there yet and you have to invest a lot of time up front developing those. Sometimes, the tools are there, but it’s a big integration job and there’s a lot of re-engineering involved. (You may need to look at how you develop your product roadmap if this is the case). You might not have the skillset. Software development is not data science but is your CEO so clear on the distinction? Sometimes, the knowledge just isn’t there yet, it’s still in the research phase. This should be scary, unless you’re in a big company with a long runway.

When handling a request like this, you have to cover aspects of time, complexity, cost and risks to your answer ideally. This is the minimum, but to go one step further, you have to bridge that gap between your technical understanding of the problem and their lack of same and that's the key to a good outcome here. Use analogies if you must, but be prepared for them to be misunderstood and require further clarification. If they understand the challenges, then they can make an informed decision, which is all you can ask for. Good CEO's are interested in your opinion, and when you say it’s hard, they believe you and they look for more options. Weak CEO's will ignore you or will come back with another request.

More than anything else, a situation like this is just a good test of your communication skills, and that comes down to practise and experience. All developers need to work on their communication skills.

One small thing is not to mistake persistence for stubbornness. It often just reflect the importance that the CEO places on the feature and it’s important that you understand and appreciate the non-technical aspects of their request when considering your response. Within these situations are opportunities for you to flex your creative muscles. If a feature will take a long time to develop, you can try to find positive ways to incrementally get there, but that’s a subject for a future blog post!