No Products in the Cart
Being a CTO can be hard and frustrating, but also fun and satisfying. While staying in NFSporTech, I have collected some insights that helped me do my jobs and achieve my company’s goals. For a long time, I have thought about sharing my ideas, and in this post, I will try my best to give away some of those insights based on my personal experiences. And thanks especially my partner and friend Shikhar for always understanding me. I have learnt many things from him. He is not only a great risk taker like me but also a person who always believe in doing something which can create a meaning and can benefit the society in direct or indirect way. And that’s the quality that makes him a good person, change maker. I have tried to jot it down in several points. The opinion is my personal and can differ in many situations.
Embrace Your Strengths
You are not getting paid to do paperwork. For me, being a CTO of a company was about leadership, vision, and creating technology that can give my organization a competitive advantage. Every company sees the CTO position in a different way, and each CTO might have a different set of skills or strengths. It is up to you to make sure your organization is getting the most out of your specific strengths.
If you don’t understand IT very well, make sure you have a strong IT manager. If your passion is not dealing with contracts and negotiations, get a good purchasing manager. At the bottom line, you should know where your impact will be most valuable — and where you should delegate your authorities.
Just because your predecessor was working all day with paperwork does not mean the same should apply to you. As a CTO, you have the power and authority to set your own agenda and your team’s agenda.
Don’t Be Absent
A busy calendar is not an excuse. Talk to your managers and employees regularly, set up weekly meetings, and make sure you have enough free time to spend in the team’s open space or offices. People don’t like managers or leaders that are never there, not listening or giving helpful advice.
If you want to lead people, you have to be there for them daily, or at least weekly, rather then always finding yourself in client meetings.
Know your team’s limits and constraints. Prepare for the unpredictable, so you can be predictable. A company needs to plan for strategic moves, and the technology should not be a constraint. Of course, this is not always possible, but it’s up to you to make it as possible as it can be.
Know how to balance delivery time and technical debt. Make sure your team has enough time for the maintenance of your products.
Don’t Stop Learning
Knowledge is power, and your knowledge is what got you to where you are now — don’t neglect it. In technology-oriented environments, all your knowledge is old news within 2 to 4 years, so make sure you are well aware of new trends and technologies. Sign up for a newsletter, read blogs, follow influencers, and attend online and physical conferences.
The above advice does not mean you need to change your company stack every two years, but it is definitely very important to be aware of how technology evolves and changes in your industry. This will surely help you better prepare for the future.
Preach for Simplicity
I have always told my CEO and my fellow colleagues that our job is not only to solve problems — that’s the easy part. Our main job is to simplify problems. Simplifying a complicated problem helps us understand it better, and more importantly, to maintain it more easily and for a longer period of time.
One of the worst things a CTO can do is stop all production work for unplanned maintenance and code refactoring. Not only this can be a huge time waste, its the number one indication that we have done something wrong in the process.
Simple solutions lead to a much more simple and organized code base and a better decision-making process, which leads to better execution times and much more stable software.
Trust People, Not Skill Sets
I must agree with the cliche that says everyone is replaceable. Anyone can learn how to code greatly in Python, Node.js, or master a Kubernetes cluster or AWS. Being a good person is harder to teach. Trust and embrace good people, and look for potential rather than skillsets. Create great training programs in your organization and make sure each employee has a solid career path opportunity.
Your employees are your organization’s most valuable asset. Train them and help them evolve, and you will surely benefit from the results. A common story about the issue is one where a CFO asks the CTO: “What will happen if we train an engineer and he will decide to leave us?” and the CTO answers him unequivocally: “imagine what will happen if we don’t train him and he decides to stay with us.”
Lastly, I would like to admit that startup is always a great place to work if you’re motivated enough and want to do something significant. But at the same time, it will be very painful when things do not go as planned. Most of the time, we come up with a great plan on paper but in reality it becomes a nightmare when you go on a real implementation. But there is great says that creativity and change comes with great painful struggle and those who bear that pain, can become successful. At last, would like to quote Samuel Beckett “Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.”
Credit to my friend Eldad Fux, creator of Appwrite - open-source end-to-end backend server for sharing his own opinion also.