How can developers be more productive? Whether you’re a developer or you manage a team of developers, better productivity can mean you get more done with the same resources or the same amount of time 🙌
So we thought we’d share some tips for businesses who want to boost developer productivity and create more value for customers and shareholders, without necessarily having to hire more staff, plus help developers who want to produce more work that they’re proud of.
The thing about developer productivity, though, is it’s tricky to measure...
1. Measure developer productivity
You know what they say… “that which is measured can be improved!”
Unfortunately, measuring developer’s productivity isn’t always straightforward, because you have to first define what productivity looks like, which can be different depending on the developer, personality, work type, and other factors.
The best approach is to focus on outcomes rather than outputs. Getting things done is the result and goal. This means measuring developer productivity requires greater transparency and visibility into products and processes. But if you overdo tracking or focus too much on individuals, it could negatively impact trust and motivation, so it’s important to tread carefully here.
Here’s what some of our developers here at Tiny had to say about measuring developer productivity...
Estimates and actuals or time spent don’t necessarily equal productivity. 30 hours spent programming the wrong thing is not productive. If anything, measuring the amount of collaboration or the number of arguments is a good indicator of productivity.
Never measure a single person - especially in a visible way. Measure processes, or outcomes, at a team or product level. You want to help the team improve performance, not put pressure on individuals.
Time tracking tends to annoy devs and is a bit of a sore point, so don’t overdo it.
2. Communicate often
Regular communication among your developers helps them share important information that’ll impact how effectively they get their work done. Some ways to encourage more frequent communication include:
- Project boards
- Daily standups
- Slack channels
- Team lunches
And don’t forget about documentation. One of the biggest time sinks for developers is figuring out how stuff works. Encourage your developers to write documentation for new processes and/or tricky steps that aren’t obvious, and store them in a cloud-based system that they’re familiar with. This is especially important if roles change and developers move on to other companies, because a new person will need to come in and pick things up from where they left off. Good documentation allows your developers to leave a positive legacy and helps your new developers get up to speed a lot more quickly.
If devs view documentation as an autonomous means to enable others, it will catch on.
Make sure your documentation system fits with your dev team’s workflow, rather than forcing them to use something too new. For example, use a docs system they’re already used to. Even a git repo is easier for most devs.
3. But don’t overdo it
Communication is good, but like many other good things, you can overdo it. Too much communication can negatively impact productivity and reduce the time and energy available to get the work done.
It’s important to keep meetings short and only include the people who need to be there. This doesn’t just apply to in-person meetings, but also conference calls and Slack channels. Speaking of Slack, it’s best practice to save group chat for conversations that apply to all members, and use DMs for one-on-one discussions.
4. Match jobs to strengths
Everyone has their thing that they’re particularly good at or interested in that they can do quicker and better than anyone else. So, ask your team what they like to do and get them to fill out skill profiles. Then wherever possible, allocate issues and tickets to the developer who’s the best fit for it. Your team will be happier and more productive as a result.
5. Create an optimal environment
An optimal environment will look different for every developer, but it usually comes down to minimizing distractions. If possible, offer flexible working conditions so that your developers can choose when and where they work at least some of the time.
When they’re in the office, one way developers can stay on task is to use text-based chat to communicate with colleagues, rather than approaching them directly. With notifications switched off, this gives people more control over distractions and they can respond when they’re ready for a break in their tasks. Some developers also find physical barriers useful. In an open-plan office space, headphones or even a “do not disturb” sign can send the signal that they’re not available to chat.
In our editor team's case, if we need to ask a question, we tend to ping on Slack rather than going over and asking, as Slack allows people to choose when to respond. Then we might take it to a verbal conversation if we think that'll be easier or other people might want to listen in.
Turning off slack notifications helps a lot, here, as you can receive them when you're ready for a break. This helped me a lot with distractions. I leave them off permanently now.
6. Set reasonable deadlines
Deadlines can be good if they motivate your team and help them plan and prioritize tasks, as well as plan for dependencies. But too many or too soon and they can get overwhelming, negatively impact focus, and create stress. When setting deadlines, ask your developers to provide a reasonable estimate on how long a task should take, and allow for unexpected bugs and roadblocks, as well as other priorities that could pop up.
7. Create good habits
Good habits can be as simple as taking regular breaks and starting work at the same time each day. But healthy habits outside of work are important, too. Drink more water, pay attention to mental health, get enough sleep, eat a healthy diet, and spend time with friends outside of work.
Address any pain points and waste with automation wherever possible. Get your developers in the habit of asking themselves:
- How can I break up the problem so I can automate myself out of it?
- What do I hate doing?
- How do I let code do the work?
- Can I script this?
9. Establish feedback loops
Regular feedback leads to more engaged customers and stronger customer relationships, but it can also help with productivity. Feedback gives your team real data to help them decide what features and requests to work on and when. Take in feedback from a range of channels and incorporate it into your processes to create feedback loops: collect feedback, analyze it, implement changes, and then collect more feedback.
10. Continuous integration, deployment, and automated testing
CICD is being used by more developers to help streamline their software releases and get updates out to customers sooner. It can help improve productivity (and efficiency) by:
- Ensuring quality is built into your product
- Helping you deliver software faster and more reliably
- Designing releases that are smaller, more straightforward, and less risky
- Automating to catch any bugs early on in the process
- Reducing time spent manually testing
11. Use developer productivity tools
For a start, make sure your developers are equipped with the right hardware. For example, laptops are appropriate for most tasks, but here at Tiny, we pair them with at least one large monitor.
You might have to play around with the different software options to find what’s best for your team. Some of the most common productivity tools for developers include project management systems like Jira, Asana, and Trello. But there are also tools like F.lux to help reduce eye strain from looking at screens.
It’s all about playing with tools and finding the one that works for the team. Play is serious business for developers.
12. Take an agile approach
More and more development teams are moving to agile practices. They’re releasing smaller updates more frequently and planning out their work two-week sprints. Early testing and release minimizes dependencies and delays, which is great for your developers’ productivity.
13. Invest in your people
Training in teamwork, communication skills, time management, and even new systems can pay off with better performance and productivity. It’s also worth investing time in building a culture of reflection and continuous improvement, and this will lead to productivity gains.
14. Be flexible, work smarter
Being productive doesn’t mean being stuck at a desk from 9am-5pm. These days, many developers are thinking about problems and work even when they’re commuting, exercising, or relaxing at home. Or having important conversations with their peers over a game of ping pong or in the local coffee shop. Being flexible with when and where the work gets done enables your developers to work smarter, innovate, and be more productive.
The more connected we are within our work environment, the more it forces us to think about what’s going on in the tech space, what we’re working on, what our peers are working on, and any problems we’re having or likely to face. We’ll think about these things while driving, while washing dishes. And if we find a peer who shares the same concerns, we can brew a plan that defines the result we want. This is working smarter.
15. Don’t forget efficiency
Productivity is about doing more. But it’s important to make sure your team isn’t working on products and features you (or your users) don’t actually need, because this won’t add any value to the business. That’s why productivity is always best combined with efficiency. It’s not just about getting the job done more quickly, but focusing on the right things and producing quality work.
Furthermore, often the solution to a problem has already been solved by someone else and there's no need to spend your time reinventing the wheel. For example, 50,000+ developers use our TinyMCE rich text editor so they can spend time innovating in other ways.
Over to you…
How do you stay on top of your tasks and stay productive? Or if you manage a team of developers, how do you help them get more done?
Join the conversation over at Twitter and tag us @joinTiny - we’d love to hear from you!