Scaling and staying agile is the real challenge many companies face currently. Having started with small agile cells that became successful it’s the next step to use it in many teams. Coupled with strong growth pressure, scaling can create a lot of waste along the way. In this post I’ll provide ideas where to look for waste and hints how to overcome typical traps.
Ensure that you keep people orientation
Considering the main intrinsic motivators – autonomy, purpose, mastery – it’s a good starting point to check for changes due to scaling that start to restrict your environment.
Autonomy and mastery get limited by new handovers often created by department thinking.
E.g. teams previously able to deploy their products directly to production are not longer able to do so, because the OPs department and release management department are created to ensure production stability. This way often gets established as a solution to poor quality delivered by development teams.
Instead of creating handovers, that delay the process and decouple knowledge it’s wise to consider the root cause – poor quality – and to find ways how to get quality thinking in the teams by having better test coverage, knowledge about releases and deployment.
Luckily the DevOps movement shows how to enable the teams.
In general I recommend to visualize the process from start of development (and if possible even earlier) to production and to measure cycle time (optimizing to reach your one piece flow). E.g. use value stream mapping to uncover all the little delays created by queuing/waiting. Handovers will directly show up. Ask whenever you add something to your process how it will affect flow. If flow is disturbed/delayed check open minded for other alternatives.
Purpose gets lost because of new hierarchies and therewith a decoupling from important company information (that’s now filtered and circled in management rounds, sometimes never spread to the next level). The efficiency trap shows its face. “It is not efficient to have too many people wasting time in this meeting”, “This information is not relevant or is too dangerous…”, “We need to prepare a presentation to show it to others…”.
Remember the early days when people just got informed directly with news in your company via a chat in the kitchen, via all hands sessions to celebrate news? Size makes it a little more difficult but not impossible!
I highly recommend to cultivate transparency by enabling access for everyone to all information (best by following an open book philosophy). If people understand what’s going on, if they see themselves in the bigger picture and have a clear purpose they can flourish and make better decisions.
I think it’s important to invest in proper infrastructure to spread information – using pull instead of push, have working information radiators and don’t be shy in investing in common celebrations – and YES – company growth implies a higher investment in communication. What about cool video channels capturing and spreading e.g. review sessions. Consider to introduce e.g. tools like HipChat, Jive, Tibbr or other Enterprise Social Software platforms to collaborate in large groups.
The cost trap
Not enough space in your office that people can breath, increasing counterproductive noise levels, crowded and even missing meeting rooms… Typical results from a reactive growth management.
Hey management – it’s not something that is invisible and appears all of the sudden – it’s your job to ACTIVELY engage in and manage the growth process. Cutting on quality is a no go in software development the same is true in a people environment.
I’ve seen a lot of demotivation and fights caused by rotting environments. Endless discussions, sometimes hidden, often highly visible showing emotions connected with a place people don’t feel comfortable in. Argued by cost arguments (high effort, high costs, high whatever)… not considering the costs of losing highly skilled people.
Get professionals in that help you shaping the environment. Today it’s possible to reduce noise by clever equipment ;-). Maybe start visualizing the number of meeting rooms, including number of people that can simultaneously use it and consider that it is also a cost factor if people either travel around the building to discover a free one or avoid syncing at all. Having great working areas is something employee identify with and will remember for a long time.
Office space is costly, sure, but reducing peoples engagement and energy levels is even more expensive but unfortunately not that easy to measure. Assume a 10% concentration loss (and I guess that’s small in some environments) and make your numbers.
Not the best hardware possible – why is this still a discussion? Let everybody choose what makes them most productive and get out of the developers way. Avoid dead by standardization … I would recommend to better invest in clever standardization where a machine setup can easily get standardized and people don’t care that much about their environments – what is not at all the case in development. I worked with people building extremely performant development environments (e.g. by mainly in memory development), working with crazy monitor constellations and it made them happy. Check for the child’s eyes when developers discover their new toy. The engagement level will fast amortize the investment.
If in trouble with backups, crashing machines, poor risk mitigation – educate and ask how to help instead of dictating a setup and limiting variety. (Sure there is a balance … but it’s something to always talk about and check for the reasons of specific requests).
You can ask your teams how satisfied they are with their environment – explicitly asking for the workplace conditions. And take it seriously. Active growth management ensures that you check how to keep highest quality standards combined with growth. When hiring ask about the change it means for the teams workplace conditions. Do you still have enough space or is it time to consider moving.
The efficiency trap
Growth implies more pressure for service departments. E.g. managing a car fleet can become cumbersome. It’s an easy step to remove company cars – but is it worth the motivational damage? Consider scaling the service departments to be an alternative.
Why reducing already established great standards just because of growth?
On the other hand it’s important to check for more efficiency
Meetings can become a problem with too many people joining. I think it’s a matter of maturity to strengthen your meeting culture
Establish a free choice of joining a meeting … always. Using an agenda, a strong moderation with keeping timeboxes, visualization and results gathering and distribution is key to be effective and efficient.
Teams need to learn that not always everyone has to join every meeting and that learning to delegate (e.g. to one team member) is important. It takes some time to have the trust build in and delegation working. Having decision making rules (e.g. how to reach consensus) clarified can speed up the process a lot.
Use e.g. delegation poker to check for delegation levels
and avoid not necessary roundtrips to make a decision and meetings with an endless list of participants and the void of accountability.
Check for stubborn budgeting rules – limiting everything. If e.g. the CEO has to approve every investment >500€ – maybe it’s time to check your trust levels. It will create all kind of crazy workarounds … e.g. ordering computer parts and plugging it together afterwards and create a heavy bottleneck in addition. Simple rules – providing orientation – and trust is the way to go.
Reconsider all artifacts (meetings, boards, radiators, reports, documentation …) for their usage. Maybe some things can be combined, became redundant or a not used at all.
I recommend to create some experiments to proof the usage (define a hypothesis to define an expected results by having the artifact and key measurements how to check that the hypothesis is correct, all defined with a short term time frame). This way you can show if it’s used the expected way or maybe not longer necessary at all.
Creating a periodically check of all artifacts, e.g. every 2 months, is a good practice as it removes the process blindness.
What about your environment? How do you clean your scaling waste or have non at all – PLEASE- share your insights 😉