Sunday, April 3, 2011

Some thoughts on management

As I transition from one job to another, I would like to write down some of the things I have learned from my previous management position. In my two years of management, I have made a lot of mistakes, and occasionally managed to make some correct decisions. Here I try to summarize some of the things that I feel I did right.

  • Never ever, ever refer to people as "resources". Ever. Once you cross that line, you lose the right to call yourself human. I repeat, do not ever do this.

  • Understand what motivates your staff, and do your best to provide that.

    • Obviously, money can be a motivator, but look for other things.

    • Once you have identified non-financial motivators, assuming they are reasonable, kick and scream until they are provided. This may be a different position, a different technology, or even a sign from upper management that their project matters.

    • If you are offered the status quo as a motivator, then kick and scream some more.


  • If you need to reduce your staff to rows in a spreadsheet, you have already failed to understand them. Talk with your staff, review their code, and really understand how they work and why.

  • If you enforce Agile principles for your staff, and your management peers do the same, you should practise what you preach. Hold daily scrums among managers and have regularly-scheduled management retrospectives.

    • If managers are "too busy" for a daily ten minute meeting, they are either lazy or they don't believe that the meeting will be properly timeboxed. Enforce a one minute per person policy, and require prompt attendance.

    • If managers can't summarize their teams' daily work in a minute or less, they are not paying enough attention. Managers should have their finger on the pulse of the team at all times.


  • Wherever possible, lead by example. If you want to work with a team of developers who are passionate about programming (and don't just see it as something to do for a paycheque), you should be passionate about programming. This should also make it easier to build a relationship based on trust with your staff: they should respect you for your skills and experience, rather than your position.



I've really enjoyed my working experience thus far as a manager, and hope that I continue to learn from my mistakes and improve (and I imagine that my future staff feel the same).