Five Years as Software Development Manager
It feels like only yesterday that I joined Leasing.com as Software Development Manager. In fact it's been 5 years. This is how quickly time can pass if you are engaged and busy.
When I started 5 years ago, the development team was 3 people. Just me, one contractor and one permanent reporting to a business with big growth plans. Without dedicated testers, BAs, PMs, Scrum Masters etc I found myself wearing many hats. Where some companies have dedicated QA Managers, Delivery Managers, DevOps Managers, SEO Managers, Project Managers, Product Managers, Scrum Masters, Business Analysts and Architects we did not, so I had to spin many of those plates at times myself.
With ambitious plans to deliver multiple IT projects, over the next few years we grew the development team with a combination of contractors and permanents to 13 developers at its peak. For a business of around 25 people, it was a significant % of the entire workforce and a lot of direct reports and projects to manage. Not to mention rolling up my sleeves and cutting code myself.
Below are a few (but not exhaustive list of) lessons I have learnt over the last five years about being a Software Development Manager that I thought would be useful to share in case people are considering moving into that role.
You're going to have to juggle
I see a lot of posts these days about recommending focusing on as few items as possible. Whilst I agree with the sentiment, please don't become a Dev Manager if you don't like multi tasking. You are going to have to switch focus at the drop of a hat multiple times a day, cognitive shifting like it's going out of fashion.
Be dedicated and responsible
Being a dev manager means responsibility. Don't become a Dev Manager if you aren't prepared to log in when there is a server or service outage out of hours and if one of your dev's makes a mistake, don't finger point. Realise that there is a good chance that it was something you have done/not done to allow that mistake to happen whether it be lack of documentation, standards, QA, process. Learn from mistakes and take overall responsibility for your team.
You're going to have to make some tough decisions
Whether it's not proceeding with a hopeful candidate after a 2nd or 3rd interview or having to part ways with a member of the team, believe me you will lose sleep over some of the decisions you have to make that effect peoples lives. Another reason why dev manager isn't for everybody. You may also be conducting a LOT of interviews, so the sooner you can be comfortable with your own interview style, sizing potential candidates and discerning what makes them tick the better.
Take risks
Don't get me wrong, I don't mean go to vegas and put it all on red. I mean don't be too risk averse. Some people think being completely risk averse is the best approach. Generally (it depends right) I'd disagree with that approach. In many situations where there are benefits, there are also risks. So long as you have done due diligence and calculated the risks you should feel free to take risks where there is sufficient reward to merit it.
Be empathetic
A business is the sum of its people. People have feelings. If you cannot understand people (not everyone can), what they are thinking, the reason they do things, then leadership and management is not for you. Whatever your role, I encourage you to develop your social and emotional intelligence by reading around the subject and practicing those learnings. Read about cognitive bias to understand other peoples subconscious motivations as well as your own. Take care of your own mental health and try to be aware of the mental health of your team.
Be pragmatic
A lot of people think of pragmatism as an excuse for cutting corners. Not me, and that's not the point. Pragmatism is as the way of getting things done and delivering value whilst balancing other factors. There will always be multiple factors to balance. While people around you think in terms as black and white, you will consider those infinite shades of grey between and come up with options others hadn't even considered. You'll be a lateral thinker.
Be organised
Oh my, how you will need to be organised. Right down to your time keeping and prioritisation of your own work, let alone the work of your team and projects. Invest some time in improving your skills and approaches in this area or you will quickly get overwhelmed. Did you know some people don't use email rules!? Increase your situational awareness, even if that means ensuring you have all the information you need to make informed decisions at your finger tips. People who know me will know about my bespoke dashboards where I can see everything that is going on at a glance.
Continually learn and develop
"Always be learning". Personal development must become your mantra. Read and learn. Read some more. Practice what you learn. Learning is no use without applying what you have learnt. Knowledge by itself is useless without the proper application of it. Hire people that are better than you and learn from them.
Get used to the politics and personalities
It's an unfortunate truth that the right thing doesn't always happen and politics will get in the way. Whatever you do, do not disengage from the politics, engage with it, talk the same language and try to make changes from within. When you propose a solid business case for change showing benefits while identifying the repercussions of not adopting your recommendations, it's hard (but not impossible) to be ignored.
Be strategic
Hopefully, most of the things you will be doing will be in some way moving the business towards its objectives to meet its strategy. With that in mind, it is worth making sure that you understand the business strategy and what you can do to help achieve it. Understanding the bigger picture will help you manage and lead your team in a way that is congruent with the goals of the business.
Be business/commercially aware
Many of your decisions and interactions will have a dollar amount associated with them, every meeting, every project, every direct report, every contractor, every cloud service, every license, every bug, every change. You need to be at least aware of this. You may also be involved in calculating the cost/benefit or ROI of projects before they commence.
Be a teacher
You will have got to where you are with the help, guidance and teachings of others. You will have accumulated A LOT of relevant, valuable and hard learnt knowledge and experience. You have an obligation to pass on what you have learnt to future generations whom will continue the cycle themselves. Help them learn from your mistakes and your successes, but still let them make their own mistakes. Lead by example.
Understand your users
If you are building products without understanding your users, you're going to fail. A lot of organisations have product owners with that responsibility, but I'd recommend you also endeavor to understand your costumers yourself. I've even created UX personas previously where they were lacking and started our use of A/B testing. You may have been developing customer experiences for 10-15 years. You know more than you think. Be curious and experiment.
Be innovative
You will already be in the envious position of having in your armory a whole host of innovations to help the business and its products/services. The trick is to help the business see the benefit of innovating in different areas and guide them carefully along the often precarious path of implementing innovations while keeping an eye on cost/benefit. You need to be a leading advocate/champion of innovation in the business.
Summary
Recently my title has been tweaked slightly from Software Development Manager to Product Development Manager to reflect the cross discipline nature of my team (not just developers) and my commitment to increase the businesses product development approach and mindset.. i.e. we're not just building software, we're building products. An important difference.
Depending on the size and type of your organization, if you are a Software Development Manager you are going to have to employ a wide range of skills and have to juggle a number of different things that you'll be responsible for. It's not easy, there are many facets to the role.
Whilst it is not for everyone, it can be a varied and rewarding role with something different every day. It's nice to watch the organisation and people around you grow and know you've had more than a minor hand in their development and success.
Note: This could have been so much longer, I don't even mention project management, product management, line management etc etc. But I think you get the idea. Perhaps I'll write a book about dev management one day. 😆