I am often approached by people who say they need a developer but they are often not clear on what kind of developer. In speaking more, we discover that it is actually not a developer they need but rather, a CTO. How do you know which you need? What are the differences? What are the dangers of having the wrong person in the role?
What is a developer?
A developer is someone who possesses the technical ability to transform specifications into software, the ability to take a screen example and develop it into a working, functioning application. This person may be skilled in one, or perhaps even several different languages. If you are clear on what you want to develop, and in which language, then it may be that you do in fact need a developer. But that is not generally the case.
In most cases, especially the earliest stages, the founder may know they want to develop something but until they know what to build, in what language, and for what market, it is just an idea and a developer is not the answer.
What is a CTO?
A CTO (Chief Technology Officer) may not be the best developer or technician, but they combine understanding and awareness of a broad range of technologies, plus experience in building a product and in managing a development team. A CTO, like a CEO, is not necessarily an expert in anything but rather, a generalist in all things.
The role of the CTO is to determine which, out of all the available languages and technologies, is best. They must then be able to analyze the time and resources needed to develop the software, offering feedback on the cost of the solution, including infrastructure and technology needs. They must be able to help the product owner define which feature to develop first, and then must drive the development team to achieve the goal.
The CTO must also identify the kind of developer needed, and then identify a capacity plan for the development team to help the founder understand how many days, weeks, or even months, the company can afford to invest in development.
As part of the budgeting and hiring functions, the CTO must also possess human resources skills including motivating, directing and assessing the team.
Ego has no place in either role
While a CTO may be experienced in many different aspects of the business, it is important to understand that they are not experts at any one area, and should not consider themselves as such. Their goal should be to continually grow in their knowledge and abilities, to learn about new technologies, to grow with the team, learning from them along the way. An ego when it comes to technology means someone thinks they already know the answer, when in reality, because it is always changing and growing and evolving, whatever you know now about technology amounts to almost nothing in the long-term plan.
Ego in a developer is just as damaging because it will block them from being able or willing to learn new technologies or to adapt new features. A good developer will be open-minded, willing to learn, and eager to grow into higher positions and responsibility. A developer who is stagnant in one language, who is happy to stay in a junior role, will not satisfy the needs of your growing company or ultimately, the needs they themselves will have to feel fulfilled and accomplished.
Balance in knowledge and skill and the desire for more
The ideal work background for a CTO, a developer, and in fact every member of your team, is one who is willing to learn, who wants more, and who has future aspirations. Finding people whose goals align with your projected future needs will ensure you have capable and experienced members of the team, and that those team members will be satisfied with the growth and success they can achieve. After all, if technical people are not growing, they are dead. If a startup is not growing, same thing.
To that end, it can be dangerous to have a big gap in age between the founding members of a team and other team members. This is not a matter of ageism or prejudice, but rather the reality of experience versus inexperience. It may be difficult for instance, in the face of older and more experienced team members, for someone younger to grow, progress or aspire to the positions they want.
The stages of a startup and what you need
A small startup of, say, three people, may be able to work primarily with junior or outsourced developers. They may also however need the experience of a CTO to accelerate the development and drive the team. This could be a lead developer with experience across many languages, even if they do not have a great deal of experience with management.
Once a company hits the range of 10 to 20 people, a more skilled CTO who is able to forecast, motivate the team, share in the development of a profile and help plan for the startup’s vision becomes more important.
What stage is your startup at? Which background do you think you need? Why do you think that? Share your thoughts below.