The ultimate anti-patterns about developer productivity. This post is inspired by my own experience as developer, leader of development teams, product manager, scrum master, project manager and CTO.
Leave your experience and recommendation as comment on this post or on twitter @tobiaskluge.
Meetings, organization and communication
- Developers love meetings. So invite them to all meetings during the week, in the morning and in the afternoon. The appointments should be as long as possible. Have 30-60min break to the next meeting when scheduling.
- Developers love to chat. In todays online & home-office world, it is common and very easy to ask questions to all of the employees and colleagues. So if there is anything unclear, you have a new idea, or just want to say “hi” – send a direct message via Slack/Teams/Hipchat/… – or via email, if you are “old-school”. If there is no response within 1-2 min, try again. And if there is still no response, call the person.
- When messaging somebody, just write “hey, you have time?” and wait for the reply. Do not provide any more context to your interrupt, so they stay curious and cannot respond directly.
- It is important to keep your team updated. So flood them with emails, information, messages from all areas of the company (especially non-relevant stuff as e.g. new marketing brochure, questionnaires, your new cat photos, ..).
- Otherwise – hold back important information about their current work, project, product or other stuff that might be really helpful.
- Put them in an open space office, walk around their desks (offices) regularly and invite them for coffee/tee/water/lunch.
- Developers need entertainment. Install some SONOS speakers and use them with max volume. Switch playlists and genre every 15-30 minutes to increase developer productivity.
- If possible, put sales and marketing team near to your developers. Developers love phone calls from others, the ring and the loud chatting of all the relevant, important and urgent discussions.
- Depending on the developer, you might put them in rooms with poor lighting, or direct sunlight. If possible, switch the lighting regularly.
- Have a open desk environment. There should be at least one or two desks less than the number of developers. So they will be coming to the office always earlier – trying to get a desk.
- Do not allow coffee on the desk. There should be no coffee machine allowed, no private machine of course. If you provide, it should be the worst coffee in town – or even better in the country. To make it fair, also tea is forbidden or only in worst quality.
Leading, hiring and other people things
- Engineers love to be micro-managed. So provide detailed tasks, and check every step. Force the developers to document every result and checked it regularly.
- Add more layers of control, have at least two different managers. The more the higher developer productivity. Choose from line manager, product manager, scrum master, tech lead manager – feel free to create new manager roles.
- Developers love to interact with people. They are passionate and great in taking care of unwilling, incompetent junior. If there is somebody from HR, sales or even marketing they will volunteer onboard them.
- Developers love to write. Ask them to write the product documentation .
- To keep your best software engineers motivated, move them up the corporate ladder. A great engineer will of course be a perfect team leader, manager and project master. Give them many assignments and more meeting/administrative (=non-development) tasks to work on.
Hardware, IT infrastructure & processes
- Provide cheap computer equipment, desks, chairs and poor lighting.
- Do NOT buy new laptops, recycle the old 5 year old laptop of the ex-marketing intern. Small screen and a poor keyboard is perfect, no fast CPU and not more than 2 GB of RAM.
- Have a big file share and no system, no backup and copy the content regularly. Have complex AD user groups the developers have be in (but not tell them) to get access to the content.
- Make your network very secure. Install firewalls for all different network segments. There are no exceptions allowed.
- Have a very complex, slow and maybe sometimes random process for getting IT tasks done (e.g. a database for a new project, setup a server, change a port). Deny some requests without reason from time to time.
Tooling & software
- Use as many tools, applications and apps as possible. They should not be integrated. The more applications, the better. Force them to input the same data multiple times.
- Force them to use Word, Excel, Powerpoint and Visio for all documentation. Developers love Powerpoint and Visio.
- Provide no templates, or only in poor quality.
- Force them to install every update and restart the computer without asking and information. If possible on random times during the day.
- Developers love unclear, complex and strange processes. Use Jira, Azure DevOps, Asana, and other project management tools. Create very complex processes improve the developer productivity. Change the processes every month without notice. Have gatekeepers on all important steps. Use a different project management software for every project and product.
- Developers need security. Install at least two anti-virus software products. Do not allow the developer to change anything on the machine without asking an administrator (of curse with an IT devops ticket).
How do you kill the developer’s productivity?
This is based on my observation and experience. How do you kill the productivity of your colleagues or development team members?