Managing Developer Me

Preface

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:

  1. I don’t want this blog post be perceived as “projecting”
  2. I do want to make clear that this is experience-based
  3. Other than eye-witnessing, I do not have hard data to make a sound generalization
How Not To Manage Developer ‘Me’
  1. 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.
  2. 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.
  3. 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.
  4. 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).
  5. 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’
  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
Final thoughts

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’.