What does it mean to be a successful developer? Some people might define success as having a great salary. But for me, it’s all about the team. A successful developer is well recognized and trusted by peers, and management trusts them to get the required work done without micromanagement.
Whatever your definition of success, you won’t get to where you want to be through skill alone. Or by bringing donuts into the office each day (although this may help a little 🍩 ).
Success is built on the small things you and your team do each day and how you choose to spend your time. In other words, your habits.
I’ve noticed there are eight habits that set the successful developers and their teams apart from the rest of the pack.
1. Communicate continually
Regular communication is critical to building an effective team, which is essential to your success as a developer. There are a number of daily and weekly activities that facilitate good communication, but the main one is the daily standup.
Daily standups are essential to keep communication flowing, build trust with your team, and build team morale. During the meeting, you’ll soon find out if someone is struggling with a feature, or just in general (you can tell by their voice or tone), so you can be as helpful and supportive as possible.
2. Reflect and review
Taking the time to reflect and review is an important habit, as it helps the team be more effective. It’s important to keep your review process:
- Constructive - There’s no bad-mouthing or saying that the code is horrible
- Consistent - So your co-workers feel comfortable offering suggestions and feedback
- Flexible - Be available to provide feedback as often as it’s needed
3. Continual learning
To stay relevant as a software developer, you need to continually build on your skills and stay up-to-date with new technologies and platforms. If you’re like me, you might pick up new skills as you go along - do a bit of quick research, and then get stuck into it. But other developers I’ve worked with spend more time on reading and research before they implement a new concept. It all depends on your learning style.
4. Predictable work schedule
Structuring your workday can help you be more productive and effective. One daily habit that’s helped me and my team be more effective is when I spend the first hour of my work day (before standup) doing code reviews and replying to emails. It’s not enough time for deep work, but enough time for me to knock over a lot of smaller tasks and keep things flowing for my team so they’re not blocked by waiting for feedback or code reviews.
Another thing I’ve always done is to schedule time outside of core office hours, when I know I won’t get interrupted. This approach isn’t right for everyone, but what I’ve seen other people do is set “offline” times so they can focus and avoid disruptions for a couple of hours at a time. I’ve had mixed success with that. It can work, but it can also lead to your team getting blocked if they’re waiting to hear back on something and can’t move forward. So, experiment with different scheduling methods to see what works for you and your team.
5. Prioritize team bonding
Catch ups outside of work are important to help build stronger relationships within your team. Something that’s worked really well for our team is to play pool together every afternoon. We normally set aside half an hour to play pool, discuss what we’re doing, and anything that’s troubling us - both in and out of the workplace.
Another thing we usually do is have a games afternoon each Friday if people have time. We have a mixture of people in the office - some like to do board games, some like video games. We’ve played Mario Kart, Smash Bros, and we’ve also played around with a VR headset.
At the moment, we’re all working from home during COVID-19, which is making pool and games afternoons a little tricky. It’s not *quite* the same, but one thing we try to do is play video games together online and do video sync ups to stay social. And of course, we do our daily standups via video conferencing.
6. Compartmentalize
Compartmentalizing can be difficult, especially if you work from home where there’s very little separation between your work and personal life. But it’s important, because if you want to be successful, you need to take time for yourself and get a good sleep. One rule that I’ve found works for me (on days when I can’t seem to put down the tools) is to stop work at least an hour before bed. If I don’t follow this, it completely wrecks me and I end up thinking about work all night. Another great way to compartmentalize if you’re working from home is to set up your workspace in a separate room so you can close the door.
7. Pay attention to your surroundings
Successful developers are more attuned to their surroundings. For example, when I first started as a graduate developer, I was very focused on my individual tasks and didn’t get involved in much else. But now I try to step outside of my comfort zone a lot more, pay attention to the bigger picture, and even jump into projects across teams if I can.
One way I do this is by paying attention to what’s going on around me. In our company Slack, I pay attention to most of the channels to see what’s going on (beyond my own team). Sometimes I’ll see an opportunity where I can add value and help another team, and sometimes I’ll catch something that others might have missed that could impact on our team later on.
8. Try new things
Would you like me to give you a formula for success? It’s quite simple, really: Double your rate of failure. You are thinking of failure as the enemy of success. But it isn’t at all. You can be discouraged by failure or you can learn from it, so go ahead and make mistakes. Make all you can. Because remember that’s where you will find success.
Successful developers get involved in different things. Even if it’s outside of your comfort zone, job description, or responsibilities, jump in and try it. The worst you’ll do is get it wrong and someone will tell you it’s wrong and you’ll have to fix it. Trying new things is also a powerful way to learn (see habit #3!).
Over to you…
What habits do you find help you and your team stay on track with work? What are some new habits you’d like to introduce?
There are loads of technical habits we haven’t even touched on like version control, clean code, naming conventions and more. Let’s continue the conversation over on Twitter. See you there @joinTiny 🚀