Hello! What's your background and what do you do?
I'm a software developer from Buenos Aires, Argentina.
I'm currently working as an Erlang Developer @ AdRoll Group, but in the past, I've been a Software Architect, Tech Lead and CTO (all of them, managerial positions) twice in my career. I'm also a community manager, an active blogger, open-source enthusiast, conference organizer, and a trainer. I've done (and I still do) lots of things, all of them related to software in one way or another.
You can find much more about me at https://about.me/elbrujohalcon.
How was your transition from software development to management like?
I actually had two of these transitions.
The first time, I was 23 years old and I had no more than 5 years of experience working in the same company where I got that "promotion" to Leader for the project I was working on, then Software Architect for the whole company.
I was incredibly unprepared for that change and, even when it was a great experience and an impressive challenge, in the end, it ended up having a toll on my mental health. I found someone to replace me in that company and left that job to go back to being a developer.
And I did that for a few years, but then I got "promoted" again to Director of Engineering, then CTO/Tech Lead. This time I was older and I already had the scars from my first encounter with this managerial position, so… I approached the change from a different perspective. I decided to learn what I needed to work as a manager correctly and I also decided not to stop coding (I wasn't going to write code for client projects so often, but I surely never stopped writing open-source code).
It was challenging anyway, and the actual transition was much much longer (it took me about 1.5 years to actually settle in the CTO/Tech Lead role).
You can find many of the lessons I learned in that transition here: https://slides.com/elbrujohalcon/fdtmaba10p and here: https://eventil.com/talks/o8SpVx-brujo-benavides-from-developer-to-manager-and-back-again .
What does your day-to-day work look like, and what motivates you to do it every day?
I'm back to a developer role now, but I'll answer this question based on what my day-to-day looked like when I was a CTO at Inaka…
TL;DR: Meetings! Tons of meetings :P
Now, for a proper answer: My day to day used to involve a bunch of meetings (some project-related, some 1:1s, some planning meetings with the CEO - we did a lot of things together-, some with clients, some with prospect clients, etc…), most of them already scheduled before the day started. But I also used to not schedule consecutive meetings if I could avoid it. That way, in the time between meetings I did some code reviews, had some impromptu conversations with devs around the office or in slack/hipchat, played some ping-pong matches (we had ping-pong table at the office), read the news about software development and management in general (I'm a fan of RSS). In the odd times when I actually had nothing to do, I either tried to contribute to some of our open-source projects or write a blog post for the company.
What motivated me to do it every day? The most important factor was the pride I had in what our company was. Working at Inaka was amazing and the things we created were awesome, too. I was so proud of that… I still am. The team was another major factor of motivation: All the inakos (from the CEO to the devs, from the PMs to QA) were talented professionals and more importantly great people, a joy to work with.
What are the biggest challenges you've faced so far? What did you do to overcome them?
You can find all of them in https://slides.com/elbrujohalcon/fdtmaba10p and https://eventil.com/talks/o8SpVx-brujo-benavides-from-developer-to-manager-and-back-again …
But, to pick just one: The toughest part of the CTO role for me was the yearly feedback meetings. They had all the things I stressed about as a CTO:
- they were meetings. And we used to have ~5 per day of those, ~1h long each
- they were about feedback, but not the kind of feedback you get from software (i.e. # of bugs, time it took to implement a feature, etc.). These meetings were about some really hard to measure things related to the performance of the employee and the company across an entire year
- they were about money, we discussed salary adjustments and bonuses there
They usually happened in January or February and I stressed A LOT. To deal with that stress what I did was:
- Booked my vacations for after the feedback meetings month
- Start preparing them well in advance, like months before they actually happened.
- Make them as data-oriented as I could… in other words, besides talking about feelings (which is inevitable in those situations) I tried to gather all the hard data I could about the employee and the company before the meeting so I could say stuff like "you closed # bugs in # projects this year, that's great" instead of "looks like you've closed a lot of bugs lately"
What has been the biggest surprise so far? Something you didn't expect?
You can also find all of them in https://slides.com/elbrujohalcon/fdtmaba10p and https://eventil.com/talks/o8SpVx-brujo-benavides-from-developer-to-manager-and-back-again …
I think the biggest surprise for me was what I refer to in those slides as "empathy" for lack of a better word. While I worked as a programmer, there are things that are somewhat obvious (you don't submit pull requests without tests, you don't force push to master, etc.) and, as a tech lead, I was not expecting to have to explain those things to the devs. But what was obvious to me, shockingly ( :P ) was not obvious to other people. It took me a while to get adjusted to that and stop expecting people to naturally do stuff I didn't ask for before.
What's the best advice you've received about being a manager?
I think the best one is that moving from dev to manager is NOT A PROMOTION. It's a CAREER CHANGE. Being an amazing developer doesn't even get you closer to be a good manager, just like your talent as a soccer player says nothing about your quality as a soccer club manager.
And this has several implications:
- You should not expect your performance as a manager to be the same or better as your performance as a developer… hopefully, you'll get there. But you (and your colleagues) should not expect you to be super-productive as a manager from day 0.
- When you start your career as a manager, you're a junior at that role. Just like when you're a junior dev, you have to invest time to learn how to do it right.
- Switching back to development is not a step-down. Not at all. It's just another career change.
What do you tell developers who are considering making the switch or new to the role?
Check out Tom Bartel's website: https://www.tombartel.me
Check out my blog: https://medium.com/tech-lead-talks
Subscribe to #SWLW: http://softwareleadweekly.com
Get into Rands' Slack: http://randsinrepose.com/welcome-to-rands-leadership-slack/
Basically two things:
- Be curious! Learn stuff and stay up-to-date about management as you would do about your favorite programming language or tool
- Share what you learn! Management is a non-technical discipline, everybody has different experiences and what works for one may not work for the others. Sharing allows us all to learn from each other and get better at it.
Final call to action! Where can we go to learn more about you?
Just look for elbrujohalcon everywhere on the internet.
If you want a single place, I would say http://about.me/elbrujohalcon