How to make a far-reaching impact?
The magnitude and reach of your impact is what gets you noticed and promoted.
But the catch is, you get recognized for demonstrated performance, not just willingness or potential.
This creates a conundrum: To get promoted to the next level, you need to repeatedly make an impact expected from the level above your current one, without yet having the official authority to do so.
On top of that, if you don't want to pursue the management track, you have to positively impact other people without being their official supervisor—and thus not having direct control over their performance.
How is it possible to achieve this?
How to impact the performance of the whole team or company?
It's hard to be completely exhaustive, as there are many ways you can positively impact other people's performance. But let's explore several of them so you can get a good gist and build the mindset that will let you come up with further ideas on your own.
1. Teach, mentor, and share your knowledge
Start small. Discuss stuff with your teammates. Spread your knowledge through code reviews, pair programming, and team meetings. Lead by example, through your work and behavior.
Spread your knowledge not only about coding but about anything that may impact your team's performance: processes, communication, time management.
Extend your impact to more people through brown bags, workshops, and blogging. Take opportunities to collaborate with other teams.
Finally, when you're widely recognized as an expert, take responsibility for managing company-wide learning programs or leading communities of practice.
2. Bring new knowledge into the company
Don't be a one-time sensation. Don't rely only on your previous experience.
Learn continuously. Talk to colleagues outside your company. Read. Go to conferences. Stay up to date with the industry's state-of-the-art. Research what other companies are doing. Experiment with new techniques and libraries.
Be the source of innovative knowledge that will help your team reach the next level.
3. Plan and coordinate projects
No matter what process you use, software development is, in the end, a stream of big and small projects. How well they are analyzed, broken down, planned, and executed has a tremendous impact on the performance of the teams running them.
Volunteering to prepare and lead projects is a great way to impact multiple people's performance.
Start by taking responsibility for one part of the process: requirements analysis, implementation plan, or task breakdown.
Dial it up by owning the process end-to-end, overseeing the whole project execution.
And for maximum impact, take responsibility for coordinating big, cross-team projects.
4. Take ownership of a part of the codebase or product
In complex software systems, there are many "moving parts" that need to be maintained over a long time: modules, libraries, subsystems, products, services, APIs, tools, documentation, pipelines, and so on. It's not easy to maintain them well without clear ownership. And how well they are maintained, has a huge impact on the performance of everyone using them - which, for some cornerstone modules, may even mean everyone in the whole company.
By taking ownership of a part of your company's codebase, product, or subsystem and keeping it in great shape, you can make an impact that will be hard to miss.
On a smaller scale, you can maintain something internal to your team, for example, a small code module or web service.
On a bigger scale, you can maintain something fundamental to the whole product and company, like a central design system or customer-facing API.
5. Improve tooling
Efficient tools make a tremendous difference in how fast a team can go. And there are so many things in our work that can be optimized, automated, or used in a more skillful way.
Solid CI/CD pipeline. Code formatting and linting. Fast test suite. Automated code and test data generation. More efficient code navigation. Utilizing the full power of your IDE. Better local, test, and staging environments. Well-configured project management system. Robust tooling for debugging, monitoring, and logging. Better discoverability of components and shared libraries. Automating and connecting your workflows (Github, Slack, Trello, etc.). The list could go on and on.
By improving the tooling, automating repetitive tasks, or even just spreading the knowledge of how to use existing tools better, you can greatly impact the performance of your team and the whole company.
6. Improve codebase and architecture
Put yourself in the shoes of colleagues who will visit the project after you. Easy-to-understand code and architecture can make or break the whole team's performance. Make them cleaner, simpler, easier to navigate and debug, and less error-prone.
Even relatively small improvements, to one component or module, can considerably boost the performance of your team. And the more global improvements - for example, to product-wide code conventions - can impact even the whole company.
7. Help your team go in the right direction
Rallying people together to push towards a single, right direction is one of the most powerful ways to multiply the whole team's performance. And you can influence it much more than you think.
First of all, understand the right direction yourself. Put effort into understanding your company's goals, business, and customers. This will allow you to understand what problems need to be solved, and come up with better solutions to these problems.
Second, help your team go in the right direction. Share and document what you learned. Help your team track relevant metrics, gather feedback, and work in a more iterative, agile way. Become a trusted consultant for your product manager.
Third, help coordinate with the other teams and stakeholders, so the whole company goes in a single direction.
8. Support non-developers
Software isn't built only by software developers. It's a concerted effort of developers, designers, testers, product managers, analysts, data scientists, user researchers, and various business stakeholders (customer support, marketing, sales, finance).
Support them. Work closely together. Put effort into making their lives easier, into helping them go fast, into coordinating your efforts so the whole cross-functional group works smoothly together. This will allow you to impact your organization at an even broader scope than the engineering team alone.
9. Improve methodologies and processes
How your team and organization works has a fundamental impact on performance. And it's not reserved only for managers and scrum masters. As a developer, you can, too, influence company processes a lot.
First, educate yourself. Understand the principles of empiricism, iterative development, product discovery, and Agile. Get to know modern technical approaches like CI/CD or feature flag-based development. Learn how modern cross-functional teams function.
Second, observe with a critical eye, proactively look for opportunities for improvement, and take the initiative in shaping the process. Be active inside and outside of your team. Participate in process-related discussions. Champion implementing new ideas.
You'll be able to multiply the performance of many people and teams.
10. Lead technical initiatives
Many technical improvements require a concerted effort of the whole team over a longer time: successively replacing the old framework with a newer one; migrating to a new set of coding conventions; gradually refactoring a critical part of the codebase.
If they aren't consistently managed and pushed forward, such initiatives usually quickly fizzle out. And their outcomes are mediocre at best.
Volunteer to lead such initiatives. If you plan and manage them well, if you make it easier for other people to contribute, if you coordinate the efforts around them and see them through to completion, you can make a substantial impact on the future performance of your team and organization.
11. Improve communication and transparency
Clear, transparent communication is essential for effective teamwork. It determines how well people coordinate, how much they trust each other, how good decisions they make, and how well they understand their objectives. And this applies at all levels: inside a team, between teams, between different roles and departments, between employees and management. The quality of communication can hinder or unlock the whole organization's performance.
And you can do a lot to improve it.
Share your status with the other teams. Maintain your team's and company's documentation, roadmaps, and wikis in a good state. Help your team stay informed by proactively pulling information from the other teams. Ask management to clarify your team's goals and update them on your progress. Propose improvements to company-wide communication standards and channels (Slack, etc.). Initiate cross-team coordination meetings whenever necessary.
12. Exemplify and promote the culture
There's no single right culture. Different companies conduct themselves differently with a similar level of success. But if different people, teams, and departments in the same company culturally clash, it kills productivity.
Understand your company's culture. Exemplify and promote it. Be conscious of your behavior and communication patterns.
It impacts your company's performance more than you think.
13. Motivate others
Sometimes, reaching higher performance is just a matter of motivation. The willingness to push harder. Feeling more hungry for success. Having the right attitude.
You don't have to be a manager to influence your team's morale. Lead by example. Spread good vibes. Show enthusiasm, optimism, and grit. Make the work fun. Stay calm and composed in a crisis. Rally your team to push a little bit more every day.
Such behaviors are viral and frequently work better than attempts to "empower" people from the top. And they easily spread outside of your team, which will let you make a broad impact.
14. Help with recruitment and onboarding
Another way to boost an organization's performance is through recruitment.
If you can, get involved in the recruitment process. Participate in the interviews. Help prepare recruitment challenges. Review CVs.
And even if you can't participate in the recruitment process itself, there's still a lot you can do to help bring new talent on board. Refer your colleagues. Promote your company through blogging, discussion forums, speaking at conferences, and networking. Leave a positive review on Glassdoor. Take responsibility for onboarding and mentoring new hires.
15. Solve complex problems (and then spread the knowledge)
If you can solve a problem no one else is able to solve, such that will give your company a competitive advantage, you can generate a ton of value.
This may sound like a task for a lone, 10x genius, but it is still about the team. If you won't spread the knowledge about your brilliant solution, if you won't design it so it's easy for others to reuse, you'll become a bottleneck and a potential single point of failure instead of a multiplier. You'll put your company at risk, not bring value.
But if you can solve complex problems in such a way that everyone understands your solution and is able to build on top of it, you can become a game changer.
16. Provide technical direction and advice
Your company often needs to cope with decisions with a huge, long-lasting impact. Choosing a technology stack. Choosing a cloud vendor. Making build vs buy decisions.
Even more often, smaller questions pop up: What would be the rough size of the project? Is it technically feasible? What are the possible solutions to this problem?
Become a go-to advisor for your team and the whole business. Learn the industry's landscape in-depth. Stay up-to-date with the newest developments and trends. Get good at research. It'll let you bring a lot of value to your company.
Whoa, that's a lot! Can I really do all of this?
No, you can't. You can do any of this—but definitely not all of this.
Luckily, you don't have to.
It's more of a list of examples to choose from than a checklist to cross off all the items.
Any of these areas has the potential to impact even the entire organization. Especially as you grow in seniority, your focus will become narrower, but your impact in this chosen area will potentially become so far-reaching that you won't need to focus on multiple areas to greatly impact the whole team or company.
And that's great because not every area suits everyone—but regardless of your personality or individual preferences, you can find something to make a far-reaching impact. There's no excuse for not making a significant impact because you don't like to manage people or don't feel comfortable in one particular area.
Can I do this as a developer? Don't I need official authority for many of these?
Can you really own subsystems, lead projects, or make build vs buy decisions? Isn't it the responsibility of architects, managers, and tech leads?
Yes, you can! In any well-run company, your manager or tech lead will be glad to delegate as much as possible to you. This is actually their job. It helps you grow and your team perform better, which are the most important responsibilities of a manager.
Also, a lot can be achieved without official authority—often with a much farther reach than you might think. For example, nobody shall have a problem with you organizing a company-wide brown bag presentation to share something you have learned that will impact multiple teams, or advising your product manager or business stakeholders in an informal conversation.
What if I'm not yet very experienced?
Some of the higher-impact stuff may indeed require more experience—nobody will let a junior straight out of a coding bootcamp own a mission-critical subsystem used by all the teams in the company. But all the examples we discussed have a gradual progression.
Start with smaller initiatives within your team and successively expand the scope of your impact. Work with your lead or manager to identify more growth opportunities. Be on the constant lookout for such opportunities yourself, both within your team and across the company. Get noticed and build a reputation.
This will set you on a fast track to making a bigger and bigger splash. And—if this is your ambition—to eventually become a tech lead or manager yourself.
However, making a positive impact may not be enough to advance. It also has to be noticed. This requires making your accomplishments visible and deliberately planning how to broaden their reach over time. Plus, understanding how to navigate performance reviews and negotiate your promotion when the right time comes, to open up possibilities for an even broader impact.