3 Habits of Successful Software Engineers
Whether you’re a seasoned software engineer or new to the craft, there are a number of things—beyond simply delivering great code—which can impact your success in a role. While it may be tempting to put your head down and focus on the code at hand, here are three habits of successful software engineers worth building.
They make it a priority to understand the wider business context of their work
The reality of operating in any business—no matter how engineering-driven—is that there will always be competing priorities. As an engineer, it can be easy to get lost in your work, but it’s important to understand what those priorities are, and how they tie into broader company objectives.
Having an understanding of how your work fits into the business means you’ll be better able to advocate for your opinions and projects. By understanding what drives your non-engineering colleagues, you’ll be better able to speak their language—and therefore better-equipped to create a case that resonates with them.
If you’re struggling to get through, a good first step is to start with what’s best for your users. No employee, regardless of their role, can deny the importance of doing good by the user, so this common ground is a safe place to begin the conversation.
They approach code with discipline
Being really good at writing code is no doubt important. But perhaps equally as crucial is setting yourself up for success by creating an environment and processes which ensure your talent is reproducible.
Good engineering discipline can mean a number of different things. To begin with, it’s important for engineers to be engaged with processes—or if they don’t exist (as may be the case in very early-stage companies), to create processes which help the team to create high-quality work. Code reviews, for example, might seem banal after what might feel like the millionth one—but this practice (and many others) are common across organizations for a reason. Rather than seeing these activities as burdens which take away from your time spent writing code, embrace them as a critical step in creating your best possible output.
Disciplined software engineers are also acutely aware of technical debt that gets created, and keep a close eye on paying it back. While this isn’t typically the most exciting or interesting part of the job, it’s just as important as focusing on new projects—and can win you respect in the long term.
Lastly, being disciplined in your work requires a bit of self-observation to identify the most conducive environment for you to focus. For some people, that simply means zoning out with headphones. Others may need to block off calendar time or utilise a technique or app to help them break their tasks down into manageable bits. It really doesn’t matter which strategy you use, as long as you know it works for you—which may require some testing and iterating to find the best fit.
They develop confidence in their abilities—but also know the limits of their expertise
Great engineers strike a healthy balance between confidence and humility, which enables them to work independently to create high-quality output, but also to ask for help when they know their abilities don’t stretch that far.
On the one hand, confidence in your abilities is important because it means you won’t put an undue burden on your team by asking for help when you don’t need it. On the flip side, however, overconfidence can easily lead you to commit errors which would be easily avoidable by asking someone on your team or simply poking around online.
The answer to this is simple: Know what you’re good at and where your weaknesses lie. Getting there, however, again requires self-observation and willingness to acknowledge where you have room to grow. This can be tough, but the good news is that being honest about your limits can give you a more clear path forward—and help you to fill those gaps sooner than later.