Denys Isaichenko

Software Engineer

Level of responsibility

I recently watched a short talk by Nikolay Toverovskiy about taking responsibility.

Imagine a situation with three main people: a developer, a manager, and a client.

The client asks the manager to get some development work done. The manager then gives this task to the developer. Let’s keep things simple for now, even though in real life, things might be more complicated.

So, the developer gets the job from the manager. But sometimes, he doesn’t fully get what needs to be done because the manager’s instructions are not very clear. As a result, he works on only the parts that are clear to him, leaving out the confusing bits.

As the deadline gets closer, and he shows the work to the client, the client isn’t happy. The client wonders why some parts are missing. The manager then asks the developer why he didn’t do those parts. The developer says something like, «The instructions were unclear, so I only did what I understood.» At the same time, he also thinks the manager didn’t do a good job because the instructions were not clear enough.

Who is right in this case? Is it the manager who gave unclear instructions, or the developer who didn’t communicate the unclear parts to the manager/client? To answer this, let’s try a simple trick — imagine that the client is the manager and the manager is the developer, and there’s no developer. After the poor work is done, the manager says to the client something like, «You know what? The job isn’t done well because of your poor task description.» It’s hard to imagine something like this being said to the client by the manager. A good manager will always blame himself and will do everything to satisfy the client. However, with managers and developers, developers often think that it’s not their job to satisfy the manager and their job is only to do what has been told.

The main thought here is: You’re responsible for the task that you’ve been assigned. If something is unclear, it’s your job to clear it up.