Defining the role of the CTO
When a company is searching for the ‘tech guy’ the needs and requirements that are listed in the job description are often quite different from real responsibilities. For example, it’s quite common for founders or recruiters to look for a CTO when in reality they are looking for a product manager to align the vision of the CEO with the outsourced development team. Other cases include searching for a lead developer to code the product and coach other developers or be the only developer on a project or performing all sorts of IT operations (infrastructure, networking, integration) in addition to managing a team of 40+ people.
Such confusion is quite common with other roles too. It’s not the title that is the issue. It’s all about the set of agreed responsibilities that in turn depend on company maturity level. Let’s walk through common responsibilities that CTO might have and correct titles for those responsibilities. If you’re looking for a CTO, it might be worth to read through and think about what you expect from a person you are looking for.
CTO as Chief Architect
That's a typical CTO you would want for a startup in its early stages. He is the best coder you can get but probably the worst manager possible. He is a producer of a solution, not a team leader. But he is a technical leader though, being the most senior developer on your team (if there are other developers). He’ll be your analyst, architect, researcher and tester. It's a natural career advancement for senior developers because they have their vision of how software should be designed and being CTO-as-lead-developer allows them to make decisions they feel are right. There's a drawback though — sometimes best technical choices are not that good from a business standpoint.
Risk of not meeting the business needs are quite high if the CTO has little experience in this role. The only way to get around this is to have a debate with the CEO on initiatives that take a lot of time to implement. It’s important to define what’s good enough from the business standpoint and not going any further.
CTO as VP of engineering
As the company grows the need for development resources increases and you hire a bigger engineering team. VP of Engineering is an excellent manager and team builder, who will help you recruit the team you need and manage the team day to day. He will make sure that goals that have been set are met and that all issues within the team are resolved before they are an issue. He’s a great communicator, so he always knows what each team member needs. He knows what kind of process you need so he’ll set it up and will make sure that everyone understands it and that the team is hitting the mark. VP of Engineering is usually focused on the internal day to day operations, so this role is not very visible outside of the company.
Building an engineering team is hard and takes time. Having a good foundation and smooth development process is essential and is much harder to achieve as the company grows. Most of the startups learn the hard way that just hiring a bunch of developers makes things worse — morale goes down, and deliverables suffer. Team management is similar to software development in a way because you need to invest in people the same way you invest in software architecture.
CTO as a technical strategist
In this case, CTO is a member of senior leadership in a company. He is more strategic in his thinking, and his primary goal is to make sure that right business decisions are made, and there’s an implementation roadmap for every decision made. He is looking for new opportunities leveraging available technology. A big part of the job of the CTO is being able to switch between business and technical perspective, being able to translate challenges and solutions between main stakeholders and the engineering team. There’s also a great responsibility within this role because CTO continually evaluates risks and rewards of every choice made and that’s not an easy job.
In most of the companies, CTO can’t focus just on the strategy, and it’s just a complementary responsibility, though a most important one. It’s tough to find someone who is very well versed both on the technical side and on the business side of things. Most of the times CTOs are more like senior developers who communicate between the engineering team and the management but are not high-level managers themselves and don’t participate in high-level decision-making process. If that’s the case in your company, then you have something wrong. CTO’s role is not only programming and everything about it. It is discussing the pros and cons of the next big pivot, planning long-term, deciding on product strategy, managing priorities and expectations, agreeing on the budget and communicating across the boundaries.
When do you need to start looking for a CTO?
It’s better to start looking for the right person after you begin seeing revenue and initial traction, or after you got an investment and needed to move faster. It might be hard to get someone onboard before that because people with the skills and experience you need are probably getting offers all the time and will need a sign that your company is worth working with. And you probably won’t need a CTO before that anyway because it’s unlikely that you will have a big development team without the revenue. Of course, every company is different and the right time varies. But it’s important to avoid hiring too early and at the same time hire before the team is falling apart and it’s too late.
Role of a CTO evolves with the company. If in the beginning, you need a developer that is good enough to develop the application to get the product out there, you need a more management and strategy-oriented person later on. If you already have few developers working on the product and one of them is more respected than the others then maybe you already have a CTO or a Chief Architect. If one of the developers excels at managing the development process then perhaps you already have an engineering manager who will possibly become your VP of Engineering later on.