At madewithlove, we join teams when things aren’t so stable. Maybe a key non-replaceable employee has left or a new investment is fueling growth. I join these companies as a CTO ad interim, someone to captain the ship through troubled waters.
It’s hard at times since I’m expected to lead the team to a better way of working, something that can feel threatening to existing team members. Psychological safety is a key trait of high-performance teams so I need to do everything I can to seamlessly integrate and effect change. Here’s how I approach a new project and the first things I think about, things that a newly hired CTO or team lead should focus on.
A CTO’s core role is to lead the technical strategy of the company, but for small startups that also includes overseeing the day-to-day operations, installing best practices for the team, and people managing engineers.
Previously I’ve discussed the need to build trust via Commit and Disagree, be extra transparent, and add context via 1-1s. To recap, instead of disagreeing then committing, you can first commit to working together before disagreeing. By creating a priority list and validating it with the existing team, you can create transparency and ease concerns. And finally, by having small 1-1s with each team member, you can give context to your approach and learn about the other person.
Remember, although your company has built trust with the client, you still need to do the same. By taking the three actions above, you can ensure that you’ll be trusted by the individual people that you’ll be working with. — yours truly
But what should you focus on for those first days as a CTO in a SaaS startup?
Well obviously, you should listen to your (development) team first and learn about the current situation of your product and business. There are common things I keep an eye out for since many engineering teams have problems with them.
Problems engineering teams are facing when building your SaaS product
1. Ship now: deliver value several times a day
Frequently, I’ve found a major problem with the ability to ship changes to production. One of the very first actions to take within your new role as CTO is to evaluate the CI/CD pipeline and determine what improvements can be made. Ideally, the team is able to deliver value several times per day. The only way this can be achieved is if they trust the code. This post, by the way, is great advice on how to hire a CTO for your startup.
If your team has been deploying by hand, GitHub actions is a proven way to get things started. When pull requests are created, an action can be configured to perform static analysis, reformat code, and run automated tests.
Read more about deploying frequency and how to do it.
Start with simple things (e.g. one passing test, php-cs-fixer, Prettier formatting) and build up from there. When code is merged to the main branch, the action can run your existing script. Over time, the code can be containerized and the automated quality control checks can improve. We’ve written a handy guide on managing your releases that might be helpful as well.
This also means that the local development environment will become highly aligned with the production environment. The chance of bugs being introduced is further reduced if the local system matches production; so engineers will continue to build trust with the code they are writing.
Shipping value to customers is the core role of an engineering team. This is the number one priority to focus on.
2. Feedback loops drive improvements in SaaS teams
Getting the proper feedback going is essential to the people management of a team. Start with regular 1-1 meetings to create direct communication, but also ensure that code reviews are occurring properly. Many teams “code review” but don’t have meaningful conversations about the changes they are making.
Code reviews should check for bugs and simple mistakes but also what tradeoffs are being made in the proposed solution. Having a discussion around these tradeoffs is important so that the entire team (read: the reviewers) can understand aspects of the code. You can take it one step farther and use pair programming to eliminate the wait time on feedback.
Check out our content platform to discover more about code reviews.
By the way, we’ve opened up our internal guide on code review for SaaS teams.
Performing retrospectives is another way to have steady feedback and improvement. What are the things the team considers important to continue doing? What processes are burdensome? When starting on a new project, it’s important to timebox the retrospective so that years of anguish aren’t the focus. I usually scope the first retrospective to topics about the prior two weeks. Afterwards, hold them monthly.
3. Knowledge first organization: the value of proper documentation
Most dysfunctional teams have a poor track record when it comes to documentation. Eventually missing technical and non-technical documentation needs to be added but this is a mountain of work. By including documentation as a part of the definition of done, over time it will be created.
It’s important that every team member feel empowered to write documentation so using a tool like Notion is essential where anyone can make changes. If someone asks a question, first write the documentation then reply with the article. This is how teams can become knowledge-first organizations.
4. Only use the best tooling for startups
Many teams struggle with their tools, ones that hinder more than help. Discard tools that are preventing you from moving quickly. I mentioned GitHub earlier because of their actions feature. They are best in breed (although GitLab is a close second) but if you are using a tool like BitBucket, get rid of it. The feature set is far behind what’s available by competitors. Only use the best tools. You must be careful, of course, when changing tools since too many changes at once are problematic. What tools are missing from the current approach?
You might say that the best tools are too costly. How much time does your team waste with inferior tools? Time is money and good tooling is essential to remaining efficient.
Related read: What is a Fractional CTO
5. Deliver value: get rid of everything else…
What other processes are there? What is preventing you from delivering value to customers quickly? What meetings are people wasting time in? How close are your customers? Keep them closer.
Processes like quality assurance are essential but over time many companies have built up unnecessary reasons for doing things. Retrospectives are a point in time to take inventory of such burdens. Find out what you can cut.
Moving forward in this way creates a focus on delivering value to customers, one that will persist over time. Make it easy to ship value early and often to customers. Create feedback loops so that things can continue to simplify and improve over time. Use the best tools for the job and soon you’ll be headed in the right direction.
This seems easy on paper but it’s truly hard. I’ve helped many companies right the ship and go on to build great things. If you need help, reach out to me and together we’ll see how madewithlove can help.