Great teams build great software
Better the teamwork, better the culture -> codebase -> product and happier are the customers!
Intro
The recent emergence of AI has made it easier to build software, but if one person builds an application with the help of AI → would it really be great?
Well, it might be, but can we easily make improvements or adjustments based on the needs of the users? And can we scale it to the number of users we would want?
When the software becomes an actual business, the only way we can have long-term success and growth is if we have a great group of people all working together to achieve the one goal → delight the customers!
And all of this is not possible without great teamwork. Teamwork is the essence of building great software long-term. Let’s get more into this next.
Great teamwork is the essence of great software
If you anytime played any of the team sports, you will find this very relatable.
Being successful in basketball, football or volleyball is not possible without great teamwork and the same is true with building software.
Every person who is a part of the organization has a certain role that is contributing to the overall success.
We have different roles inside engineering, like QA, backend, frontend, devOps, architects, managers, etc. And then we have different roles across the whole organization, which are customer success, sales, product management, marketing, etc.
The only way to have successful software is that everyone work together and focus on the same goal. The better we do that, the better we have the culture, the codebase, the product and ultimately, the happier are the customers!
The worst thing that can happen inside the organization is that different departments are not working together but they are individually working only for their own success. I’ve been there and it’s not a great experience.
Sales blame the product department for not delivering expected results, product blames engineering for not delivering what is needed and engineering blames product for creating unrealistic expectations.
After this bad experience, my personal mission became to inspire great teamwork not only inside my team but across the whole organization everywhere I go.
Inspiring great teamwork is my personal mission
If you are a regular reader of this newsletter or your read my daily posts on LinkedIn or Twitter/X you may notice some quite common themes.
I write a lot about how important teamwork is and how important are traits like helping others, being a great person to work with and being able to communicate well in our great industry.
Hence, I also created two shirts, which I proudly wear when doing exercise! One shirt has the quote “Software Development is a team sport” and the other has “Great teams build great software”, which is also the title of this article.
Similarly to what I do via newsletter and on social media, I also do within my role as a CTO. I put in my best effort to inspire good teamwork within my team and the overall organization. I’ll share with you some of the things that I do next!
How I inspire teamwork inside my team
There are a lot of different things that you can do to inspire great teamwork. Here are the ones that I believe have the biggest impact.
Setting correct expectations
What I do is, I already set the right expectations when I’m hiring for a new role and then once again when a new person joins my team. I find this extremely important because:
We inspire the actions of individuals by the way we measure their success.
It’s important to define exactly what success looks like and people will automatically focus on showcasing the actions that are in line with the success.
Here are the example questions that help me to measure the success and productivity of engineers:
Are they focusing on building the RIGHT things and challenging requirements.
How much are they helping others.
How are they contributing to the success of the whole team/organization.
What improvements have they implemented and ensure they get adopted by other engineers.
You can read more about what I measure and what not here: How I measure developer productivity (paid article).
Give frequent feedback
I believe that frequent feedback is one of the best things you can do for your team. It ensures that your people know how they are doing in their roles and are not second-guessing themselves.
And they also receive actionable insights for their growth. I believe giving feedback plays a big part in coaching and mentoring and therefore I do it on every 1:1 meeting I have with my direct reports. I do 1:1 meetings every 2 weeks.
You can read more about how I do 1:1 meetings here: How to have great 1:1 meetings (paid article) - you will also find 🎁 Notion template for great 1:1 meetings at the bottom! It’s the same template that I use for all 1:1 meetings.
Be a great role model for your team
Do exactly what you expect your people to do. Uplift and empower your people, help and support them and overall just be there for your people.
You can be surprised how big of a difference it makes when you actively show the right behaviors. It’s much clearer for everyone to embrace them!
How I inspire teamwork across the organization
Here are the top 3 things that I believe inspire great teamwork across the organization.
Build great relationships with people across different departments
This is really important because when you create great relationships, it’s much easier to collaborate and work together. It’s much easier to provide feedback and find ways to help each other.
I focus on building this relationships through mutual meetings, 1:1s and async communication. And one of the most important ways to build great relationships is to give first. Let’s get into this next.
Find out the problems and motivations from people across other departments and find ways to resolve them
When you give first and resolve other people’s problems, you automatically build a great reputation in their minds. The more you help, the better the reputation is going to be and much easier is going to be to work and collaborate together.
Great teamwork is when both sides are open to help and support each other. You want to start this trend first and other people will do the same.
Mutual planning
I’ve found out that when everyone is included early and we are mutually moving and signing off towards the same goal, everyone is a lot more “invested” into it. That automatically provides a platform for everyone to collaborate much better together.
Sprint pre-planning meeting where leaders from other departments attend as well, do wonders to inspire great teamwork across the organization.
BONUS: How to become a better team player?
For me, being a team player has really become very natural. I’ve played a lot of team sports growing up, especially basketball.
Later in my teenage years, I also became quite an avid gamer, playing online competitively. I mostly played FPS (first-person shooter) games. Call of Duty is the one I spent playing the most.
We used to compete in 5 on 5 matches, where there was a lot of teamwork needed and especially everyone had their specific role.
I believe those 2 things have made me become a very team-oriented person.
Based on this my top 3 tips would be:
Find a group activity
Find something outside of your day-to-day work, where you collaborate or work together to achieve a certain goal with a group of people. This can be: playing sports, video games, board games, side project, freelance work, etc.
Focus on empathy, helping others and team goals
Become the person who can put yourself in other people’s shoes. Focus on anticipating issues, problems and offer your help to resolve them. Try to make the overall day-to-day work easier for your colleagues and overall team.
Look for ways that provide the whole team closer to the goals, and don’t just focus on your own specific goals.
Solve problems that nobody wants to
A lot of times you might hear recurring issues inside the team. They may be:
some parts of the codebase are really hard to understand,
lack of documentation on certain parts,
lack of tests and overall confidence in certain parts.
When you hear such recurring issues, the best thing you can do is to try to solve them. Your colleagues, manager and the whole organization will appreciate you for doing this.
Others will automatically view you as a team player because you solved everyone’s problems.
Last words
As the title of the article states → great teams build great software. Investing your time in becoming a better team player is a really great investment. I truly believe that it will just become more and more important in Software Development.
Make sure to become the person that you would LOVE to work with!
Liked this article? Make sure to 💙 click the like button.
Feedback or addition? Make sure to 💬 comment.
Know someone that would find this helpful? Make sure to 🔁 share this post.
Whenever you are ready, here is how I can help you further
Book a Coaching and Mentoring or Consulting and Advising call with me here.
Interested in sponsoring this newsletter? Check the sponsorship options here.
Get in touch
You can find me on LinkedIn or Twitter.
If you wish to make a request on particular topic you would like to read, you can send me an email to info@gregorojstersek.com.
This newsletter is funded by paid subscriptions from readers like yourself.
If you aren’t already, consider becoming a paid subscriber to receive the full experience!
You are more than welcome to find whatever interests you here and try it out in your particular case. Let me know how it went! Topics are normally about all things engineering related, leadership, management, developing scalable products, building teams etc.
Teamwork and leadership take daily practice. Great advice and inspiration for me as a sales/tech leader. Thanks!
This is an excellent write up. What the speaker has said, if I understand this right is to have a clear goal and set expectations during hiring process itself so no confusion arises later but in reality, and most of the time in my experience, unfortunately this dosen’t happen. Meaning, majority of the interviewers focus on things that are opposite and the grilling process of frying the candidate so much that expectations are stated but in reality they are different (just unrealistic and dysfunctional)!