Very early on in your career when you start out as a software engineer the path ahead is fairly straightforward. Everything hinges on your technical ability. You must get a good technical understanding of the code and be able to solve problems. Your aim is to become an independent contributor where people can rely on you to get a specific task done.
This can only take you so far however. Eventually you will start being evaluated based on your impact to the business. While technical tasks do have an impact, it is what the job of a software engineer is all about, they don’t do much on their own.
So how do you increase your impact on the org. The best way is to take ownership of a project or feature. You become the leader and subject matter expert for this single thing. If anyone has a question, be it product looking for status updates or another engineer looking for technical guidance, they know to come to you. It will be up to you to lead it to completion and offer status updates to others.
It does not mean you must do it on your own. It is all about coordinating other engineers, product managers and whatever other business function
What is a good project to take ownership of? The best ones are medium sized ones. Too small and the impact is limited but too large and the project risks becoming bogged down or cancelled. I’ve been part of ones that span multiple quarters and, while the eventual impact was large, they limited my ability to contribute elsewhere. By the end of the year I had only one real thing to show for it. Another thing to watch for is too many moving parts. Ideally it is something that will be noticed by more than just your own team but having too many teams depending can cause unnecessary complexity and delays.
I’m not saying to don’t do broad complicated long projects, just don’t do them at first. Let your skills build up before you tackle those thornier big projects.
How to lead a project. The first step is to identify a possible opportunity. This could be something the team mentioned as “nice to do some day” or could be something you’ve noticed that should be done. The better option however is to identify something your team plans on doing the next quarter that is still in planning phase and get involved from the start.
It is all part of your development as a software engineer to expand your skills and impact. Like all skills the best way to improve them is to use them and taking ownership of something allows you to build a whole host of skills like communication, architecture and coordination. Wherever you plan on going with your career those are all always going to be useful