Many developers are perfectly happy writing code until retirement, and maybe even beyond that. But what if an opportunity to take on a more managerial position comes your way? What is it like to distance yourself from the technical aspects of software development and focus on strategy and leadership instead? I’ve talked to Bartosz Pranczke, our Senior Tech Leader, to find out.
It’s a difficult job to explain in a sentence. I need to make sure that we meet market demand with our services. We want to grow our tech team and keep helping new clients, but both sides have to grow at the same speed, or else we’ll end up delivering low quality, or we’ll have developers twiddling their thumbs and the company will lose money. Even more important is making sure that the team functions smoothly - quality is extremely important in our business, after all. All this means that my work involves maintaining a status quo that we like, as well as helping grow sales and expand the team.
If that doesn’t sound like a headache, I don’t know what does. But it is a fulfilling job.
You don’t have to start early if you want to become a senior software developer or a team leader in a software company, but I definitely did. I knew since my teens that I wanted to work in IT, and I made sure to shape my education accordingly. If I weren’t a programmer today, I’d be doing something else related to engineering. It’s a lifelong passion.
I took my first steps as a programmer when I was 12. But don’t worry if you have a degree in something else - there are many cases of successful career changes. Here’s one of our own.
I started out as a junior developer at Netguru, which is a short-term, entry-level position. It’s short-term because most of our junior developers become regulars very quickly, usually after 3 months. During that time, they develop their skills under the watchful gazes of their leader and a mentor assigned specifically to them. Many people with great potential but little experience really benefit from this kind of approach - they can learn a lot in a short amount of time, and become more confident in their skill.
Netguru wasn’t always this friendly to junior programmers. During my early days, I spent a lot of time working on projects that weren’t interesting. I doubted the viability of my career choice. It’s always difficult when a hobby becomes a job. But I’m chronically bad at giving up, so I stuck with it, and I’m happy with where I ended up.
In a sense, my programming career ended after 6 years of working as a developer. Now, I’m a leader of an ever-growing team of programmers at all levels of skill and experience.
My new job is just as interesting as what I used to do. Particularly because I have less experience and skill in this new field: leadership and management. No matter how well-prepared or knowledgeable you are, you’re likely going to make bad decisions, for various reasons. As a programmer, I knew that there was always a good solution to a difficult problem. I just had to find it. My current work is different. Not only am I always outside my comfort zone, my decisions have a much bigger impact on the people around me. It’s stressful.
If you’re considering a management career in a software consulting company, remember that some of the choices you’ll make will be irreversible. Programmers can often fix their bad decisions - the worst thing that can usually happen is doing the same task twice. But if I don’t notice something important about a team member, and that team member feels unappreciated and ends up quitting, the damage can’t be undone.
Additionally, as someone who started out as a developer on the team, I now lead the people I used to be on equal terms with. It’s something that’s worth considering in any organisation: it’s better to be the boss when you work together with your team towards the same goal. That’s when synergy comes in, and everybody is moving in the same direction. But when your goal is to maximise your department’s profits, yours and your team’s goal are different. For example, the department’s growth can mean more boring projects - the team doesn’t necessarily want that.
I’m noticeably more busy. Every company is different, but you can expect most to be in a constant state of flux - Netguru certainly is growing quickly. There are many aspects of the job that are operational and low-level. I’m involved in recruitment efforts, for example, talking to potential candidates on Linkedin. It can be fun, but takes a lot of time. And it’s not always an opportunity to develop my skills.
If you’re interested in a similar career path, prepare yourself for a somewhat reactive approach to work. The more busy your company, the more workload any senior-level developer, leader or manager can expect. It’s important to try and make sure company processes are going as smoothly and painlessly as possible. That way, the people involved will be happier at work and less likely to burn out. Including you.
I wish I knew how to do this better. I believe that investing in automation is one of the ways to approach this problem. Worrying about robots taking our jobs is silly - if robots can do it, the work is probably boring and unchallenging. Scheduling team meetings is an example managers often struggle with - why not use a Slack bot to make the job simple? It would be easy to implement, and there are more similar examples: tasks that take up time but bring little value to the company.
HR problems are another thing I struggle with. The size of my department makes it challenging to assign people to projects. We work on about 40 projects at any given time, and I have almost 90 people who need to be divided into teams at the moment. It’s not just for new clients, but also when there are team rotations. And it’s not enough to just match people to projects by skill set - the project needs to suit the person, be an opportunity for them to grow. The client then has to accept my choice. And as we keep increasing the number of developers at Netguru to match the growing amount of work we have for them, I don’t always have people sitting on the bench and ready to jump in where I need them.
Luckily, I’m not alone. Our PMO department is a huge help - really, as a senior leader I’m more like a technical consultant in this process. My main involvement is with the high-level strategy. But the scary part that I have a huge influence on the satisfaction levels of both clients and developers.
I’ve had a number of missteps, most caused by badly defined requirements at the beginning of a project. There’s usually no time to carefully review the project strategy and build a team based on that. I need to make some educated guesses. Sometimes, a person with a lot of experience would end up bored, but a developer with less skill would end up overwhelmed. Rotating people out is difficult if it’s not the client’s idea, because we always need the client’s acceptance to do so. There’s a lot that can go wrong.
It’s one of our biggest and most important challenges. We need to be able to ensure high quality, and to constantly improve the quality of our work. And when the team gets big, you have a good number of less experienced people on your hands. These younger developers need to learn and crave knowledge, so they can grow quickly as professionals. There also need to be measures in place in case they make mistakes, because mistakes are important to the learning process. All of us need to be focused on learning and improving as a team.
A recent improvement I made was a workshop for senior management on this topic. We have some ideas on how to introduce continuous delivery, because we know that every little step that leads us closer to this approach is good for the company and the quality we deliver. We plan to push hard in this direction.
If a client has a concrete, tech-related problem, I’m the person expected to have a solution if no one else does. For example, should an app be rewritten from scratch when the old version is difficult to maintain? These challenges almost never have an easy answer.
Another thing we help clients with is education. I recently ran a workshop for a large Polish bank. They realised that their IT department is extremely vital to their core processes and wanted to use its full potential. They saw Netguru as a source of knowledge on managing IT processes and projects. My part of the workshop dealt with growing a tech team, structuring a tech department, and managing it efficiently. I really enjoyed being a consultant for them, and I’m glad we intend to be more active in this role as a company.
Understanding context is a big thing. And I mean the context of everything that has an influence on your work. I need to understand how our HR, marketing and project management work - and that’s 90% of the company’s operations. I’m not going to be an expert on all of it, but I do need to be aware of the environment I operate in. And at the same time, I need to have time to do my actual job. It’s a challenge, especially during a time of rapid change for Netguru. But I find it rewarding and I intend to give it the best I’ve got.