Hello! What's your background and what do you do?
My journey into the world of software development has been a long one. I got my first computer, a Commodore VIC-20, way back in the early 80s when I was around 10 or 11. You could either play games loaded from cassette tapes or learn BASIC to make your own. I did both and spent my teenage years loving video games and learning to code. I went on to study Computer Science at the University of Manchester here in the UK and then continued my love of video games by working in that industry afterwards.
I spent around 19 years learning low-level programming in C/C++ and mostly worked on gameplay, AI, and audio systems. It was great fun, but the games industry has always struggled to keep a good work-life balance. I spent many months working late nights and weekends to finish games, the infamous “crunch time”, and was made redundant a few times in the boom and bust that happened in the 1990s and early 2000s. By the early 2010s, I was married and had a young family, and I started working on server-side web technologies to support games rather than the games themselves. This enabled a career change and move over to the BBC to support and develop their gaming APIs as one of their Principal Software Engineers.
After a couple of years, the team changed and I started working on the pan-BBC authentication and authorisation applications. This was a great chance to learn a lot of web technologies I hadn’t been exposed to previously and I moved into the world of Node.js, JavaScript and front-end frameworks like React. I transitioned over to a leadership role in early-2017 and became a Software Engineering Team Lead for the BBC Account team. I manage a team of 9 amazing software engineers who help to enable personalisation at scale for the BBC.
How was your transition from software development to management like?
Around 2005, I started exploring a management role whilst I worked for Sony. As a Principal Software Engineer, I was tasked with graduate recruitment for one of the games we were developing. At the time there was no training and while I was keen to mentor and coach the junior developers, it felt more like a technical lead role with a sprinkling of management. I soon became responsible for the whole team management as well as technical leadership and I definitely wasn’t given guidance or training as to how to coach and lead people. I think I spent too much time thinking about the technical aspects of my role rather than concentrating on building a great team.
From my position as Principal Software Engineer at the BBC, I transitioned into my current leadership role in 2017 when our team lead resigned to take a new role. The company struggled to hire for the role, so I took on the day-to-day responsibilities while they were recruiting. This meant I was managing a team of 6 developers remotely and slowly moved away from writing code. After acting in the role for 5 months, I suggested to the engineering manager that I take it over and become the team lead. I was offered the job and moved into a technical management and leadership position from my engineering role. It wasn’t an immediate transition from being an individual contributor and was more of a gradual move where I became less involved in development tasks each month. It took another couple of months to transition fully from being a peer of the senior engineers to their line manager, but everyone was fantastically supportive of the move.
What does your day-to-day work look like, and what motivates you to do it every day?
My day-to-day work varies each week but it can be broken down into some key areas. Mentoring and coaching team members is one of my key responsibilities, so I have regular 1:1 catch-ups with each software engineer. These can be fortnightly or weekly, depending on the need of the individual and their experience level. These meetings vary in length and are chats about work, other projects, their training, or longer-term objectives. I also regularly meet with my own manager and have step level 1:1s with senior management to understand higher priorities that the department has. I try to block out some time each week to think about strategic priorities for the team for the next 3 to 6 months. These can sometimes involve discussions with external stakeholders from outside our team or department. As a manager, you realise that it’s often non-trivial to change the direction of travel, so building relationships across the wider engineering teams is incredibly helpful to start this process.
I care a lot about the idea of engineering excellence within software teams. We should always care about making our codebases cleaner and simpler, and I spend time thinking about how we can make our engineers more effective. This often means working closely with my principal or senior software engineers and our technical architect to understand any technical challenges or tech-debt we may have. I spend very little time with hands-on coding nowadays due to having a larger team to manage. I may make small bug fixes, but avoid working on any larger features. I do try and perform code reviews on a regular basis though. I have a lot of knowledge about prior decisions and patterns within our projects and I can often answer the “why” of previous technical decisions. However, as the code has changed over time, I know I’m not always the best person to fix things. I continue to try and improve my technical knowledge in the evenings when I work on my own projects and I love diving into new libraries or frameworks.
The thing I love about software engineering management is working to build a great team and developing a positive culture together with them. A team is most productive when they’re building software that they care about and with people who care about them. I’ve been a big advocate of remote working over the past 5 or 6 years and this has definitely helped us all to cope during the past few months of lockdown here in the UK. The BBC was very supportive of my remote journey after I became incredibly ill back in 2014. Building a productive team that can operate from anywhere is fantastic and I ensure we constantly iterate our processes to change anything that isn’t working. There’s a great quote from the CEO of Shopify, Tobi Lütke, which said: “If you want to have a great culture, the trick is to evolve it forward with your environment.” This is what I hope I help to drive within our team.
What are the biggest challenges you've faced so far? What did you do to overcome them?
The biggest change in moving from an individual contributor to management is that your skills will need to change. What you’re used to doing as a software engineer is often no longer the case for an engineering team lead. The value you add to the team is no longer measured in software features you deploy to your production environment. Instead, you have to realise that your value comes from building and shaping a high-performing team who work well together and have a clear direction.
There are many different challenges when building and leading a team. Hiring can be a thankless task where you constantly wonder if you’ve made the right choices. Any decisions have to be made with the best information you have at that time and sometimes these might not be right nor well received by the team. You have to learn to juggle priorities from both the team and your stakeholders. This sometimes involves difficult conversations with your team members or your own manager. We’ve recently had lots of team changes to a different way of working, in addition to managing the complexities of a global pandemic. Leading through change can be mentally challenging so you need to take care of yourself. These decisions are often made with multiple stakeholders so you have to learn to help to influence people in a positive direction that you feel is right. These adjustments often take much longer than you expect and require buy-in from the people on your team as well as the wider project management.
What has been the biggest surprise so far? Something you didn't expect?
I think the biggest surprise is that you end up defining and driving your own journey through management. It’s a bit like being a parent. You can read all the books you like on the matter but when you become a manager or have a child, you’re mostly making it up as you go along!
It’s quite a lonely role at times so you need to make sure you have a solid peer group. Talk to other managers in your company. Find out how they work and how they build great teams. Your best learning will come from trying new ideas and constantly correcting your course based on what’s working and what’s not. Ultimately, to be a good manager you have to be kind and appreciate that everyone is unique and has their own challenges. Once you start to understand everyone’s different ways of working, you’ll start to bring the best out in people and the team as a whole.
What's the best advice you've received about being a manager?
I’m not sure I received advice from many people when I first stepped into a leadership role, but I’ve certainly spent many months searching for advice online to help me. One of the best discoveries was about learning to manage your own behaviours. As the leader of a team, you’re the role model for anyone who joins. If you build a positive culture, then all new starters will continue to act in a positive way too. Communication and transparency are the keys to this. Learn what each of your team wants to get out of work and help them to achieve it by being honest.
One of the greatest things I did at the start of my leadership career was to get a coach. A lovely lady called Jenny helped me to understand my transition from individual contributor and technical expert to people manager and strategic leader. Talking to her really helped to guide my thinking and made me realise that I could do the job well.
What do you tell developers who are considering making the switch or new to the role?
Firstly, you have to care about people and your team. Don’t just take the managerial path if it’s the next step in your career, especially if you currently have a very hands-on technical position. If you don’t love mentoring and coaching, and stepping away from the technical implementation, then you’ll struggle to enjoy the manager’s role. When you first start as a team leader, you won’t know what you’re doing and you may feel out of your depth, but stick with it. You’ll quickly discover what works and what doesn’t, and you’ll start to understand how to manage each of your team members and what motivates them.
Being open and honest are the keys to being a great leader. Your day-to-day will be communicating with your team, with your internal and external stakeholders, with your own managers, and your peers. There may be information you can’t yet share with your team but being clear and truthful will help you to build trust and positive team culture.
Final call to action! Where can we go to learn more about you?
You’ll find my website here https://marclittlemore.com where I’m trying to share my thoughts more often. I’m active on Twitter, so follow me and say hello - https://twitter.com/marclittlemore. I’m also on Linked In, so feel free to connect with me there too - https://www.linkedin.com/in/marclittlemore/ . Thanks!