Now, I'm the CTO of a small web development shop and manage 4 developers. I'm struggling with being pulled in a million directions and have a hard time focusing enough to get work done. I'm happy setting up technical architecture, mentoring junior developers, etc. But, I'm also seen as the tech guru who can and should do anything needed quickly and I simply cannot because I need to focus to be productive.
I'm either in full on people mode or full on hyper focused tech mode and switching kills me. Do you have any tips/books/videos/anecdotes/advice for a newbie "C level" developer?
Thanks!
If you go the people management route, expect to be constantly supporting others and developing them--contexts will always be changing.
Our founders do all the client management, we have a product manager who deals with the WHAT, and I deal with the HOW, with 4 developers under me hopefully as means to implementation.
You need to do you “light management” in prescheduled meetings that are on the calendar, and you need to fill the space around those meetings with tasks, so that other people don’t interrupt you during those times.
Tell everyone that if they want your time, they need to book an available slot on your calendar first.
As CTO, you get to set the communications culture of your team.
You should announce that you will check your slack notifications once every two hours and no more. Anything more urgent - come to my desk. Anything less urgent - schedule a meeting for tomorrow.
If people start abusing the “come over to my desk” loophole, start explaining to people what urgent means.
There are literally way too many details to try and explain here. But IMO, it boils down to this, given the size of firm and team, your job is just complete and total expectation management. Expectations of the business on engineering, expectations of clients on what is doable within budget and time constraints and expectations between the engineers to keep a healthy team.
You can/should split your day and/or split your week into domains and tasks. e.g. do customer followups every morning, team meetings every Tuesday and Friday at 10am or whatever makes sense. This is just about time management and again, setting expectations. Once it has been in place for awhile it will become routine and people will know what to expect and when.
Lastly, you need to stay out of day to day coding at this point as much as possible. Given the size you are too small a firm for you probably not to have some code interaction, but your real role is not to be in code -- or get out of it as quickly as possible after helping a developer. CTO of a company with less than 10 developers is really just a normal team lead with a few extra tasks and a C level title which helps with external customers. I don't mean that as an insult, it just helps frame it some for people. However, what the title adds is client facing responsibilities and business execution responsibilities that wouldn't normally be on a team lead. My personal advice, stay out of product code/client code, but focus on pre-sales demos and mockups etc which can keep you fluent and let you set the tone and pace for the team. Again, if you split your week you should have at least a couple of days a week where you can focus on these tasks.
Sage advice and I understand and agree with what you wrote about the role. The founders do not see a CTO in this light. They see me as more of a Super Senior Developer, Dev Team Manager, and Lead Architect all in one.
For instance, when the client and the founders have meetings about upcoming feature dev, the tickets are by default assigned to me if they are too complex as the juniors won't be able to handle it.
And I'm only 3 months in so I don't want to push too many buttons and push back because this stuff needs to get done and there's no one who can do it at this time.
Thus, I don't see it changing much as we have 4 junior to mid-level developers and have a ton of big platform style projects...