This is a mobile version, full one is here.
10 July 2019
If you are a manager in a software team, your job is to make your people get things done. This is obvious. The question though is how exactly you make it happen. How do you make them do what you want, according to your plans, achieving your objectives, to your quality standards, and within the borders of your requirements and expectations? Some of you may say that these are our objectives, our mutual plans, our quality standards, and our requirements. This may be true, but initially they are still only yours. How do you make them theirs? There are two ways: a traditional one and an inversive one.
Here is how it works, over and over again. First you hire them, and all of them are experts.
Well, most of them. At least this is what their resumes say. Then you sit together and define a plan.
It looks doable and you trust them.
They start working and soon enough you realize that some of them
are lagging behind the promises made in the plan. You start
begging asking them
to correct, to improve, to be more effective, to be more responsive,
to commit, and to say focused. You may even hire an Agile coach to train them.
They improve, but not for long.
You have “to stay on top of things” and never miss anything, if you want the project to succeed. You have to care. You have to be in the office all the time. You know, from your experience, that without your permanent attention people don’t do what they are supposed to do. Eventually you start believing, together with Peter Drucker, that “management is art” since you never know exactly how you have to support each of them, because every person is a Universe and must be taken care of, individually.
This is traditional management and it’s all about you. You have to care, you have to worry, you have to be there to make things happen, and you have to chase them. You need their results and they may provide them… if they feel like it. If you don’t collect the results, you most probably won’t get anything, or very little.
There is, however, a better alternative, which looks like inversive management to me. Here is a practical example. I hired a researcher a few days ago. She was supposed to find and build me a list of the most influential Twitter accounts of tech journalists. Here is how she suggested I structure our contract: “You pay me $5 per hour.” This would be traditional management. She works and I chase her, asking how is it going, is it a good quality list, is it big enough, are there any problems with finding the right people, and so on. I would have to worry about this small project.
Here is what I suggested instead: “I pay you $40 when the list is complete.” Now she has to chase me, to deliver the list to me and to collect the payment. She has to convince me that the list is good, long enough, and of good quality. She has to worry about the deadline, about the requirements, and about all the other problems related to the work. They’re all her troubles.
I made her chase me.
This, I believe, is the cure for all management problems: make them chase you.
How do you do that? Just like I did—you turn yourself into a buyer making them be sellers of their results. You’ve got the resources (money), which you are ready to release if your people provide you what you need. Obviously, you don’t need them to work, you need their results, such as a list of emails, a new feature, a bug fix, a new document, or maybe a new UI mock-up.
You, as a pragmatic and smart project manager, define what the project needs from its participants, you put a price tag on each need, and let programmers worry about how they deliver, how they solve their own problems, and how to convince you that their results are good enough to be paid for.
Of course, it’s easy to put a price tag on a simple gig, like building a list of Twitter accounts. It’s much more difficult to do the same for a complex task, like writing source code or administering a database. However, if you don’t do it, you will be managed by your programmers, not the other way around. You will have to constantly chase them and literally beg for results. They will be relaxed, you will be worried. They will get paid, you will be punished for their mistakes.
I suggest you invert the situation and let them worry.