Managing Developer Me
First I want to make abundantly clear that this isn’t a back-handed, passive-aggressive way to express my gripes about a specific incident or manager, about my former or present employeer. I would say it’s about the accumulation of facts and experiences in my career up to this point. It is by no means a comprehensive, exhaustive collection, though, only those that I know have had a definite impact in my career. Also, you might be wondering why I’m making this blog post about ‘Me’. I know, that seems a awfully douchy, but the reasons for that are deliberate and simple:
- I don’t want this blog post be perceived as “projecting”
- I do want to make clear that this is experience-based
- Other than eye-witnessing, I do not have hard data to make a sound generalization
How Not To Manage Developer ‘Me’
- Do not use cliches or flippant language to describe who I am and what I do. One of the worst offenders and commonly-used terms for developers is ‘code monkey’. Now, it’s not about having thick skin or being easily offended. The term neither offends me nor affects me at a personal level. However, what it does is tell me that you a) have no idea of what software development entails, b) that you don’t see the value I bring to the table, c) that I’m easily replaceable/disposable.
- Do not assume that I want to code or be in front of a computer 24/7 or assume that I will happily pull 60-hour weeks for an indeterminate amount of time. I love my work and I’m passionate about what I do, but that doesn’t mean you can abuse that passion and drive to make up for lack of project scheduling and scope management.
- I’m not a Lego® piece you can freely move from one project to the next, at will. That is, do not assume because I know X language/tool, that I’m equally proficient (or can rapidly acquire equivalent proficiecy) in Y. Could I learn Y? You bet. Can I learn it to the extent that you can count me as a net-positive for a project using Y? Maybe. It really depends, so unless you are willing to give me a fair amount of time to ramp up, don’t make such assumptions.
- Do not micro-manage me. Asking me for a ‘percent complete’ five times per days is not going to make me finish any faster. Neither is asking me why I took a coffee break when an item still not done or why I haven’t updated the estimate spreadsheet in the last twenty minutes. Further, when you ask for a percent complete so often, I will conclude that you have absolutely no idea how software development works (here’s a hint: it’s not a linear activity).
- Do not speak negatively about my co-workers. I naturally pressume you also speak negatively of me when I’m not present. Drama and intrigue belong to highschool cafeterias, not in professional workplaces.
How to effectively manage Developer ‘Me’
- Be cognizant that I highly value time with my kids, wife and family. When I’m ‘on the clock’, I’m all business. When we have to make an extra push, I will be part of it (and I expect you to be present too, btw). If I commit to something, I will see it done, regardless of time-of-day or day of the week. But be aware of the effort and time-tradeoff I’m putting in.
- Give ‘Me’ creative freedom. This shouldn’t be a reward, this should be part of business. For a few hours a week, let me mess with whatever suits my fancy. Whether it’s trying a new tool, service or helping a friend with his or her website, it doesn’t matter. What matters is to feel that I can take that time without feeling guilty or like it will somehow negatively affect my performance.
- Recognition. This requires you to be attuned to what I do (and the rest of the team does). It doesn’t have to be with big fanfare or anything, simply recognize and acknowledge my efforts.
- Be direct. Nothing bothers more than ‘read-between-the-lines’ type of dynamic. If you aren’t happy with something I said or did (or didn’t do), call me to the side and tell me. I’m a rational and reasonable adult. If you are forthcoming, I can be more effective and weird dynamics avoided.
- Stay out of my way. I know, that sounds weird, but it works wonders. If you stay out of my way, I will presume that you trust that I will get my job done and that you trust that I won’t be wasting company resources. By staying out of my way, you also delegate resposibility and encourage ownership.
One thing that I feel many managers completely fail to comprehend is that they are managing people, not ‘resources’. This might seem like a purely semantic argument, but it isn’t. You see, that small difference in word choice changes matters – a lot. It’s easier to make wide-affecting decisions when you think of your managees as ‘resources’. It becomes a game of numbers, charts and allocations. It’s easier to move, promote, demote, discipline me when you don’t think of me as a human being. So, don’t be that manager, and treat ‘Me’ like an adult person.
Finally, I’m not saying managing people or developers (or ‘Me’) is easy. I know it’s not. But if you are forthcoming, trusting, direct and purposeful you can very successfully and effectively manage developer ‘Me’.