I receive a good chunk of emails and messages from people in my network asking for general technical advice (infrastructure, architecture, picking the right platform or vendor, etc.) And many of them openly disclose they have spoken with 5–10 people and brainstormed over the different answers they get.
Asking for a hundred different opinions may get confusing, though. I wouldn’t advise you to ask an open-ended question on Quora, Stack Overflow, social media, email blasts, personal networks, friends, and recommendations.
Prepare that into multiple phases – half a dozen generic, high-end answers, sift through them, narrow down your options, iterate with another group, expand upon, or niche down even further.
Best-case scenario, you source advice from a reliable technical leadership or people who would potentially work in your team if you scale enough. This means that they would be willing to participate in a venture started in a certain way, what they advocate for.
What is Technical Leadership
Technical leadership is the ability to manage and guide a team of engineers and developers to achieve technical goals while also fostering a positive and productive work environment. It’s a blend of technical expertise, leadership skills, and the ability to bridge the gap between technical and non-technical stakeholders.
Are You “Guesstimating” Your Tech Solutions?
The reasons why figuring out the best tech solutions can be so confusing are the variety of alternatives in the field, inadequate proper industry statistics or benchmarks, or lack of reliable technical leadership.
Almost every problem in tech can be solved in a dozen ways or more. Some are more efficient than others, but most will work anyway.
The question is usually far more sophisticated as you need to project your business into multiple dimensions. What may work most effectively within the first 6 months may not scale past the 6th year, and the enterprise-grade solution will be overkilling early on.
It also revolves around other aspects of the job — the type of community you want to engage with, the available workforce in your area, and future integrations with other tools or services.
The evolution of the business will start hitting different limits, but unless your business plan can reliably predict 10 years ahead, you’re guesstimating anyway.
How to Get Technical Insights
Are you a non-technical person working on an IT start-up idea, or other technical business ventures, with a bunch of software techies?
Best-case scenario, find a technical co-founder or any technical leadership your can rely on and you are good to go.
While some non-technical managers and founders are capable of working well with developers, there may be different problems that would jeopardize the growth of the business. I have outlined what some of those problems are when working with software engineers and how you can deal with them, in the video below:
You may have a hard time hiring the right technical talent. Developers program code that may be flawed, insecure, slow, or unstable. Inexperienced ones may take forever to build simple features. Failing to design the right architecture from the start will lead to technical debt—a foundation that’s hard to maintain and grow over time.
Lacking business or management know-how (common for software developers who weren’t in a leadership role or lacking freelance/business expertise) may lead to decisions that are not necessarily in line with the long-term roadmap.
Sure, you can find the right talent from day one. It’s just a gamble – you need to rely on their self-assessment which is rarely objective.
But a purely technical leader or founder may struggle with the business aspect of running a company. There’s a lot going on outside of IT – business and market research, sales, marketing, accounting, legal work, and customer service.
Most traditional developers are used to working on predefined assignments (specifications). Or coming up with ideas that seem lucrative from a technical standpoint—not necessarily related to the actual business needs.
This is why a non-technical founder may be instrumental given the right leadership on the technical end.
My advice would be to look for several trusted technical leadership, architects/team leads in your network with a decade of experience or more. Use other sources if you can, Quora being one option, and technical consultants too. Ask for referrals and recommendations. Attend technical events and meet people there.
Tech people may be fairly open to sharing their 2 cents if approached the right way. Just don’t get overwhelmed with a hundred different options as you may give up too soon.
My Experience As A Technical Co-Founder
Back in 2010–2011, I joined a former client of mine in a new startup. He tried three or four teams before partnering up with me.
I joined a project he won prior to that. His technical co-founder failed to align the time frames and we went past the deadline with 2–3 months of extra work to follow. The guy disappeared and stopped picking up his phone. He simply bailed as he had no experience working with customers in his previous roles.
I stepped in, met with the client a few times, dealt with frustrations and managed to negotiate another 3 months. The project was finally delivered and – surprisingly – everyone was happy in the end.
Plus, it was a wonderful project funded by UNICEF that I actually enjoyed.
So my client has offered me the CTO role in his new business. While I left a couple of years later, it’s still a successful business, and most of my hires are still involved with the project. Our lead developer took my seat and he was absolutely the right fit for growing the business even further.
We still meet every now and then at Starbucks. My former co-founder is running business operations. His business and market research is absolutely crucial for new product launches.
The company is quite profitable (about 70% margins), the team is efficient and happy and works remotely. I am super happy for them and always love receiving their newsletters showcasing success stories and new product launches.
Are There Other Ways Besides Co-Founding?
Most people are intimidated by the “co-founder” label and try to dodge a bullet when they try to get some help without giving too much.
While finding a technical co-founder may help out a lot, it’s not the only way.
You can hire a senior engineer and design a payment structure that doesn’t include equity. Best-case scenario, you’ll still give up some equity in order to keep your staff motivated.
A fixed paycheck wouldn’t motivate most people to respond to an important email after hours or over the weekend. Or try to bring some clients during a conference. Some form of “ownership” may help out.
Contracting an entire agency may also be a viable option – although it may be a bit more expensive (given the management overhead). But you can tap into different skills and resources provided by the agency.
I see three major problems when non-technical leadership or founders have to deal with source code:
- Inability to understand the business problem at hand
- Poor code quality
- Failure to hit certain KPIs
Explaining The Business Goals
You have to be completely transparent and spend a lot of time with your technical staff discussing business. It’s important to discuss the business problems and how your platform or software solution will solve them.
Share some business insights from your business plan. Discuss your competitors. Talk about your target audience and their demographics. Focus on the unique selling benefits and the most important features you want to incorporate.
Build use cases. Prepare flow charts. Design some scenarios resembling the usage of the product by your prospects.
The more your technical staff is acquainted with the customer needs, the easier would it be for them to build something that fits into your requirements.
Code Reviews and Analysis
High-quality code is a vague metric. Sure, there are code conventions. There are “best practice” documents. But it’s unlikely that you will dig into this one yourself without learning a ton about programming on the way.
There are certain tools and systems that could automate that. Code linters, convention scanning tools, and the like. You can discuss that with your technical team and browse for some tools yourself that would reduce some of the basic mistakes.
They won’t catch everything. But some automated testing tools will monitor for warnings and notices, intercept CPU spikes, or handle a subset of common problems that could be detected while parsing static code.
If you work with several different independent developers, you can assign them to perform code reviews across the entire code base. This could help identifying problems as well.
Signing a consulting agreement with an independent technical consultant or an agency will help you with objective assessments from a third party. There are plenty of senior engineers providing consulting on the side. They could review the latest commits every couple of weeks or run independent tests locally or on a staging environment.
Defining the Right KPIs
In addition to the functional requirements, you may set certain KPIs for the technical platform.
Identifying the right KPIs may still take some time (or require some help) and also depends on your business and the platform requirements. Solving more complex problems will also take more time and will cost more—but you don’t want your platform to crash once you start generating some traffic.
Some measurable ideas that don’t require programming understanding are:
- PageSpeed or YSlow scores that could be assessed with GTmetrix
- A certain number of concurrent users that the platform can handle (this also depends on your hosting)
- Seamless interactivity with a certain amount of volume (say, hundreds of thousands of records)
- 100% coverage and success rate when using some penetration test/security scanning tools and services
The more specific the list, the easier it would be to track success and ensure that the platform would solve the right problems without deviating too much or being unstable as it grows.
Overall, finding a co-founder will solve many of those problems. But creating a mix of experienced developers with a technical consultant spending 4–8 hours monthly on your project could also work out until you generate some revenue and scale your team.
One really viable option is to designate a Chief Technical Officer (CTO) for technical leadership.
Let’s debunk some myths as we review each part of the following questions separately.
1. Why Does a Company Need a Chief Technical Officer (CTO)?
It probably doesn’t. But probably not for the reasons you’re thinking.
Roles, as such, are a formality. The CEO of the company may label themselves as the “Bearer of Good News”. The head tech person may be the “Cable-wrangling Soldier”.
Those roles could be misleading as well. A contract could be worded in a way that gives full power to the CTO. Or an external owner of the company that’s not listed in the public records.
A contract is not necessary even in some instances where a couple of co-founders simply decide on the chain of command which may not be obvious from their titles.
Businesses use the designated titles for brevity when looking for investors when talking to the press or in order to give a rough idea of hierarchy to the public (including when onboarding new employees).
2. Who Needs a CTO?
There’s usually a very good reason you are hiring a chief software architect.
The organization is large enough to need one for a massively complex platform. That assumes that a CTO is around, a bunch of tech leads/consultants, and other software rockstars are employed.
Otherwise, it’s still a leading role but normally appointed through the CTO or a technical CEO.
Assessing tech skills or a technical leader isn’t easy for a senior role. It’s either an “emotional” decision or a purely data-driven one.
Emotional is a product of a veteran developer working on the team or hiring an old acquaintance that’s trustworthy (reliable, well-behaved, and hard-working). Tech skills are obviously an important aspect but, more importantly, making sure that the lead will stick around for at least 5 years, without causing major cultural shock, is very important.
The data-driven decision combines experience, CV, portfolio, source code, references from tech leaders, industry talks, courses led or PhDs in the field, and things like that. Some are more academic, others – more practical (experience in other large corporations or startups with a successful exit).
You rarely hire a chief architect out of nowhere. You either don’t need them or the CTO or some other devs are capable and trustworthy enough to assess the competency if that’s the path you want to take.
3. Who Can Work as a CTO?
Why hire a CTO if the VP of Engineering manages day-to-day operations?
There is no “legal” reason to do so. For instance, the VP of Engineering can act as a CTO.
As stated above, the reason for using designated titles is to establish a certain role in the company hierarchy.
Your head developer could act as a CTO. Often, the CTO is not the most “technical” person on the team (the best developer and all). It’s much more about:
- Strategic vision
- Understanding the broad spectrum of technical requirements
- Defining the appropriate product/infrastructure roadmap
- Ensuring that the hiring process is planned and executed properly (often through the VP of Eng when available)
This is also why a VP of Engineering may be more suitable for day-to-day operations than a CTO.
Technical leaderships appointed as CTOs often bring a VPl of Engineering in as soon as the overwhelming flow of questions and generic problems are too much to bear. Again, CTOs have a strategic role – research, architecture, platform design, picking the right technical layer for a new solution, etc. They don’t necessarily come with the “soft skills” package either.
The VP of Engineering is the technical manager on steroids. Understanding tech very well, but the focus is primarily on communication, building the right technical department (including hiring), and ensuring that teams are structured effectively and operating efficiently.
4. Can Technical CEOs Cover the CTO’s Role?
It can be very hard – and hardly reasonable.
If a technical founder is completely focused on the technical end, they usually bring a CEO in.
The role of a CEO entails overseeing each and every high-end aspect of the company, building the vision of the organization, creating strategic partnerships, engaging in media activities (interviews, PR), and much more.
It’s a leadership role. It’s not limited to the tech department as a growing organization branches into a creative team, marketing department, sales team, finances, operations, hiring, revenue…
Working closely with the tech team (on behalf of a CTO) would drastically limit the attention of every other team in the company.
The Limitations of Technical Leaders
As a technical founder myself, I had expertise in leading 10–15 people teams and teaching technical classes for up to 150 people in previous companies.
I couldn’t handle more than 6–7 tech people under me as a founder.
- I had regular meetings with clients.
- There was the marketing strategy whereas a CMO was (and still is) not available.
- I had to handle payroll and finances.
- There were interviews for all sorts of roles and I was heavily involved.
- Budget planning and investment decisions (staff vs. automation vs. increased ad spent).
The list is longer than I care to admit and I had dozens and dozens of varying activities to take care of on a weekly basis.
The larger the team, the more impractical it is for a CEO to cover for a CTO. Either everything will go south (all of the other departments), or you’ll try juggling between 5–7 teams weekly, paying limited attention to each.
This may lead to decreased employee satisfaction (and layoffs), delayed milestones, and chaos in the tech department.
A CTO is a CTO for a reason. A CEO should not step in as a CTO unless the startup has just been bootstrapped (< 5 people). VP of Engineering is a managerial role handling day-to-day operations while CTOs are in charge of research, architecture, design, and the technological vision of the company as a whole.
How Is a CTO Different From Project Managers and Lead Developers?
A project manager may deal with your offshore team and your client – or your management team if your products are internal. This may be handy in terms of keeping everything on track or reporting delays and possible problems early on.
Your project manager can also identify problems or help out with testing the separate iterations of the product, assist with documentation, and so on. If you implement an agile model and there are regular scope changes, someone should be in charge of communicating these to developers and updating the time frames accordingly.
The drawback would be the lack of programming know-how. Some delays may be caused by technical problems or architecture that hasn’t been planned for your use case.
Assessing delays would also be a problem as there would be no measurable way to identify the covered test/use cases, how long would it realistically take to finish the rest, and is the platform stable enough to get the project done without having to refactor most of it.
A lead developer would be technically experienced (ideally in the same programming stack) and could work closely with the other developers on requirements, estimates, and the proper implementation of features.
This may work out well from a technical standpoint – ensuring stability and reliability of the products and a local trusted member who can manage the code quality. Estimates should be more accurate, too.
The problem is that more agile projects (or rapidly evolving ones) would still require a lot of back-and-forth with non-technical team members (your management team or your client). Developers with no PM expertise can often postpone projects or implement features in a way that is not necessarily the best option for the specific business case (for instance, introducing additional layers for stability, performance, or something else for an MVP that wouldn’t need that over the next 3 years).
As some senior developers may disagree, I’d say that a technical project manager or a lead developer with outstanding soft skills and business experience would certainly be “the best of both words”. Definitely more expensive and harder to find, but both “edge” alternatives have some limitations that may eat up extra time each and every month.
Hiring CTOs Internally vs Externally
That depends on the size of the company, its long-term goals, and the different stakeholders involved in the process.
A fast-growing funded startup has different goals when compared to a small shop bootstrapped by a technical guy in charge of business activities now.
Unless you’re a large organization that grew incredibly fast, looking for talent internally may be a good option. Identify leadership roles within your technical team that have already received a promotion or two (team leaders, senior technical leaders or managers).
Those people have already shown commitment and potential. They are aware of the business processes, the technical environment, and the dev team. A promotion would be somewhat seamless for someone deeply involved in the technical process over the past years.
Rapidly growing companies may require someone who can take the business to the next level. There are different steps in building and growing a business. Not everyone is prepared for (or capable of) making the jump and setting the foundations for the next iteration.
In that case, you are probably looking for a former CTO, a VP of engineering, or a technical manager who is aligned with your process, vision, and goals.
CTOs have different roles in different organizations—some are extremely technical, involved with R&D and actual hands-on while others primarily manage the process and evaluate software alternatives and high-end approaches.
A CTO is a “partner in crime” in the business. This could be a long conversation with someone you’ve known for a while. It requires serious commitment and understanding of the business goals, determination to grow with you, and nurturing the technical team (and the product development) over time. It shouldn’t be underestimated in any case.