There are many ways you can improve your developers' productivity. This article discusses nine tips to improve developer productivity. We'll cover all sorts of tips from meetings, to learning time, and even company events.
One of the most important tips is to avoid too many meetings. It can break a developer's state of flow and have a negative impact on productivity. Still, you can apply many strategies to meetings to make them more productive and efficient.
1. Design Meetings Blocks
When you read literature about deep focus, it refers to a state called flow. Mark Birch from StackOverflow describes this state very accurately: "Your mind is clear and you feel like you’re in a natural rhythm where your knowledge, motivation, and concentration magically align. It’s the heart of optimum performance and creativity often referred as 'being in the zone'."
Developers hate it when they are interrupted during this optimal state of productivity. Personally, I got very frustrated when my day became a series of unconnected meetings.
Therefore, it's best to plan out the whole week and schedule the most important meetings for Monday mornings. If any other meetings need to happen, make sure to plan them as blocks of meetings so developers have a whole morning or afternoon free to get into their state of flow.
2. Keep Meetings Short and Focused
We all know that meetings should be efficient. But how do you make them efficient? There are a couple of things you can do to optimize them:
- Pull in only people who can give input specific to the meeting's focus. There's no need to pull in the entire development team to discuss an issue that only relates to a few people.
- Prepare an agenda, preferably with time limits. Make sure that you add the desired output to agenda items. Many teams forget to describe what outcomes they want to get out of a meeting’s agenda.
- Appoint a moderator or meeting leader who ensures the meeting stays focused, manages time, and ensures the meeting meets the desired outcomes.
Most importantly, avoid having too many meetings!
3. Encourage Developers to Read Books and Improve Skills
The software engineering space moves rapidly. Developers have to continually learn new things to stay up to date with the tools and technologies they use. Many developers like to read books to learn new tools, techniques, and especially paradigms. Yet, they often don't have the time.
You won't have happy or motivated developers on your team if they feel stuck and don't have the opportunity to learn something new. Learning something new sparks curiosity and increases job satisfaction. Therefore, it's very important, also from a retention point of view, to provide the right stimuli to encourage developers to continuously learn new things.
For instance, give your developers some time to read books. Provide them two to four hours per week to read books related to their current skillset. Make sure to cover the cost of those books. You'll get more skilled developers, which is beneficial for your company.
Some book recommendations:
- Clean Code: A Handbook of Agile Software Craftsmanship - by Robert Martin C.
- Design Patterns: Elements of Reusable Object-Oriented Software - by Gamma Erich, Helm Richard, and Johnson Ralph
- Introduction to Algorithms - by Thomas H. Cormen
On top of that, provide a learning budget they can not only use on books, but also to buy video courses, attend workshops, go to conferences, or pay certification exam fees.
4. Provide the Right Tools
You can heavily influence developer productivity by providing the right tools. One of my favorite tools, also from a security viewpoint, is a password manager. It allows your team to find important passwords in shared vaults so they can access services and tools they commonly use. There's nothing more frustrating than wanting to access a tool and being unable to find the password. Even worse is when the only developer who knows the password is out of the office or sick that day. It can truly kill your developers' productivity.
Many other tools can boost productivity:
- Use Slack for communication, and also for its ability to integrate almost any tool into Slack.
- Use Trello or JIRA for project management. You can derive a lot of metrics from these tools, such as cycle time, developer throughput, or the average time tasks spend in the in progress phase.
- Use Postman to share API endpoints and API configurations within your team.
5. Developer Check-In: One-On-One Meetings
One-on-one meetings are a great way to regularly check in with your developers. Some companies prefer to hold them only once every month. Personally, I believe that's not enough to understand what's going on with your developers. Holding a 15-min one-on-one meeting on a weekly basis can help you to better understand what concerns your developers have or what problems they would like to see resolved. It's a great time to talk about career goals, learning objectives, company and development processes, how developers are feeling, and life in general. During the next round of one-on-one meetings, you should discuss and follow up on any issues developers mentioned at the previous meeting.
6. Company Events
Company events serve two essential purposes:
- They help your team to build a stronger relationship with other developers.
- They help new team members learn about people on other teams in your company and feel more at ease.
I really enjoyed my company's monthly events. We used to discuss what happened during the last month, people could show their achievements, and the team leads would discuss plans for the upcoming month. All of this happened in a relaxed atmosphere with food and drinks. Of course, these events happened on Friday evenings, so there was plenty of time to chat and have a beer.
Sometimes, company events involve something more active like a team-building activity or hosting a sports competition. Events are a great way to strengthen the relationships within and between teams.
7. Provide Developers With a Focused Workspace
Think about giving your developers a nice desk setup, involving an ergonomic desk chair, a desktop screen, or a standing desk. Even a pair of noise-canceling headphones can be worth the investment.
Furthermore, think about investing in so-called call booths. It's very annoying when people in your office are frequently on the phone, and their conversations interrupt other people's flow of thoughts. By providing them with call booths, they can isolate themselves and won't disturb other people who want to focus.
8. Encourage a Healthy Lifestyle
Living an active lifestyle is important! For example, a Standford study found that, "...walking boosts creative inspiration. They examined creativity levels of people while they walked versus while they sat. A person's creative output increased by an average of 60 percent when walking."
Exercising regularly not only makes you fitter but also more creative. A great way to boost developer productivity is to allow developers to spend 30 minutes or more doing exercise or sports during lunchtime. I've even seen companies that organized walking meetings where they would go outside for a walk to discuss a particular topic. You can, for example, try this out during your one-on-one meetings.
Conclusion: How to get started?
As you've learned, you can implement many strategies to improve developer productivity. You don't have to implement all the tips at once. Personally, I like company events and one-on-one meetings the most.
Company events help your organization to build a stronger relationship among and between teams, and also a company culture. At the same time, one-on-one meetings help you to better understand how developers feel and what they struggle with. One-on-one meetings can help you to resolve problems quickly before they become more significant issues. Therefore, it's also a great tool to improve retention of developers.