Empowering teams are like career accelerators
I follow several technical people whose stances on tech I can identify with in a few platforms, and, by far, Gergely Orosz has been one of the most influential people I’ve decided to follow, and, I’m glad I did! As a former Uber manager his posts and insights are always extremely interesting to read. Some of the topics are geared towards senior ICs or people who are on track to become managers or who have more people responsibilities than a standard IC, but, at least recently, I’ve found for myself that you can always take away something valuable from such articles, even if you aren’t yet at that level. This is a bit in-line with the Stackoverflow article about growing by doing stretch assignments.
These are things that are just a little bit above your current skills or responsibilities, but, when you do them, you end up growing much faster because you are “stretching” your abilities further in ways that you wouldn’t be able to do in your current position alone.
Anyway, this was a slight deviation from the main point of this blog post, but, I think, still an important one: no matter at what level you are in your career, you can learn from people and resources that are at higher positions than you, if you know how to leverage it and what to extract from such resources and how to apply it to your current situation.
This blog post will be inspired by a comment on a LinkedIn post originally written by Gergely!
The main topic of today is how you can grow so much faster if you are surrounded by a great team! It’s something that I had sometimes thought about before, but, for some reason, I’ve always ended up associating this growth with things like: tenure in the company - the longer you stay in a place, the more you can grow (we’ll see later that this is rarely the case) - and always being willing to say yes to anything that lands on your plate - I’d wager this is also maybe more of a personality trait instead of a career decision, but, it’s definitely something that can affect your career, so, it’s important to bring it up. I have struggled a lot with this second point in the past and I still do, but, it’s worthy to learn when to say no.
Again, this really stems from my own notion of what it really meant to grow in a job in a sustainable way, and, I was still extremely junior at the time, fresh out of university and willing to prove myself, and, well, as Feynman said, “the easiest person to fool, is yourself”. Basically, I had never thought exactly about how to grow in a sustainable way because I had never had the right environment for it. But, since I do have that currently, it’s easier to see how much importance a good team really plays in accelerating your career. But how exactly can a great team help you supercharging your career? Let’s look at some points that I observed so far:
- People need to care about their products and their customers
I know that this sounds obvious, but, trust me, it really isn’t. It’s extremely common for our line of work, where the pay is good, benefits are good and work exists aplenty, to have people who treat the work as a simple process of converting some sort of effort into money. I mean, sure, that’s what we all do if we think in absolutes, but, I think there is a certain attitude that can make you feel better about yourself and your work, when you really dedicate yourself to it, that can make you a great developer instead of just being in it for the money. You need to learn your craft well, put in your own efforts to gain context about the work you’re doing, invest in code quality, and ensure that your customers are happy and getting their buck’s worth out of the products you work on.
I think your team plays a pivotal role in this. You need to be surrounded by greatness to achieve greatness yourself, right? When you see people around you worried about the customer who is now facing a bug, or trying to get the most clarity out of an unclear piece of work, you’ll be “pressed” in a good way to mimic these actions and will try to learn with your team how they are doing it and how you can do it yourself, and, if you let it happen, trust me, you’ll evolve and grow in your career much more than you could ever imagine. And it’s so simple: care about your products and care about your customers. Reflect that care in your actions by learning from your team. After all, if you’re just writing code but don’t really care about the larger picture, what’s the point?
- There has to be a driving force behind the teams’ actions
Usually, the software development team is working within the larger organization and this organization will provide a certain service to its customers, for which the development team will be usually in charge of, together with many other stakeholders like product owners, customers themselves providing feedback, team managers, etc, etc. Each of these stakeholders will demand different types of features and sometimes even contradictory directions for the product and its the responsibility of the developers to keep both the product and the stakeholders demands under control and to push back when something is not feasible or unreasonable. A prime example that affects many teams is the traditional “quality vs. speed” debate where both of these aspects are put to clash against each other in the sense that stakeholders want to be faster to the market and deliver as many new features as possible, while the development team just wants time to iterate on existing features, evaluate how new features are landing in the product and to be able to take pride in their work to ensure that the customers only receive the best possible experience while using the product.
In teams where there’s little customer focus or less care about code quality, it’s not uncommon for teams to move very fast in the beginning just to hit a wall later on, when previously made choices make the work moving forward much harder and sometimes a rewrite or a full refactoring of the architecture is the only way forward. In my experience, good teams understand that in software development, the best way to move fast is to slow down. Investing real time into creating a culture of quality, product ownership and attention to the details can apparently slow down work, but, once people see the dividends in front of their eyes, by having almost no outages, no serious bugs and generally good customer feedback, it’s easy to bring people on board with the idea that quality matters and that a team who cares about it,will be more motivated and focused than one that doesn’t.
Closing remarks
If you happen to land in a team where you can experience all of the above, you will be in for a true ride of very fast and focused professional growth, where you will be able to see and absorb food practices for product development from people who are more experienced than you who just want to do a great job and work on what matters for the business. Once you experience it and learn it, you’ll leave on the other side as a much more complete engineer and overall more “senior”. And that is the true value of great teams to empower careers: people enter in one side of the pipeline as developers with certain skills and mentality and leave on the other side with a much broader sense of what it means to be a senior engineer, by learning how to make a codebase and other team members to work towards a better product that customers will love to use.