Beyond Code Factory
Agile experiments you can try to improve the way you work
What’s your next agile experiment? establishes why you need to continuously improve how your software development team works. But some common changes are not real experiments - re-orgs or musical chairs with roles, a council responsible for all approvals of X, a bot that asks standup or retro questions, dropping a meeting but not offering any substitute way of communicating, etc.
Here we give you some ways to get started.
Some easy quick experiments
The good news is that our industry over-estimates the cost of experimentation. Some easy process experiments:
- Try different communications tools for a hack-a-thon
- Run a parallel process for technical debt instead of a retro
- A separate track for technical debt and fund it (by percentage of time for instance)
- “Just right” size your backlog and the amount each item is specified (renaming your backlog to bets and scheduling more 1-1s is not what I mean; we think software should remind the team until important items are handled online or removed instead of advocating regular closed door meetings)
- Have ongoing feedback instead of end of sprint demo meetings
- Create an initiative process where anyone can suggest or vote on other initiatives
- Make PM recommended feature work also go through that initiative process instead of automatically staffing
- No meeting Wednesdays - a bit like no headache Wednesdays so if it works it needs to be followed up by stronger measures
- Redefine the role of Scrum Master to Process Master:
The Scrum Master is accountable for establishing Scrum as defined in the Scrum Guide.
The Process Master is accountable for suggesting and helping with the latest process and tools for the team to try.
Office hours instead of check-ins
If you want to know your employees problems then use software which makes it clear. To answer questions individuals may have just hold “office hours”. The bigger change is to eventually drop all mandated meetings; forced communication will always be eventually abused.
Trust developers to know what’s useful and try to accommodate different styles of work.
Freedom and responsibility
Here’s one way to stop assigning low value jobs:
- Developers work on the projects they choose, in the amount they choose, and are responsible for justifying their work
- Managers can temporarily draft developers for work with known ROI if no volunteers
You can watch that Spotify already tries to have similar skill set developers report to the same manager so that it’s easy to switch between projects.
This experiment builds in Spotify’s idea by making the manager’s role more judging the value of what their developers did and less ordering it ahead of time.
There are any number of senior developers already working mostly this way. There are also employers like Google where every developer is responsible for justifying his promotion to a committee that’s not his boss.
Guaranteed staffing is bad
Imagine a TV show where writers are guaranteed what they write will make it onto the show. That show will suck. Even once a project is staffed it should have to compete with other projects for its existing resources.
PMs have to have skin in the game. If they want staffing they should be forced to convince developers or convince managers to risk drafting.
This system is beyond what hack-a-thons or even 20% time systems can offer because you have to make the case for your productivity at all times.
Redefine middle managers
Here’s an excerpt from a software development manager’s job description:
- Lead Agile processes across multiple teams that consistently deliver a quality product to customers
- Rally your team to make and keep commitments to customers, the business, and themselves
- Team up with your Product Owners and UX Designers in planning and preparing your teams’ backlog
There’s no magical, ineffable middle ground between agile and code factory that can be an organization’s goal.
As a result of this ambiguity many managers start trying to create roles for themselves. They imagine they will replace HR by listening to whisper campaigns. Or they see their value add as preventing their employees from trying to get work done that might rock the boat. Hard to blame them though, when even their job description makes no sense.
A beyond code factory manager job description:
- Review your employees contributions to the projects they choose and spend team salary increase, stock and bonus accordingly
- Work with stake-holders to identify high ROI, understaffed work and temporarily draft your employees as necessary
- Take on coding projects yourself so that you can continue to have the skills to evaluate your team