Three Levels of Control (Example)
Join the DZone community and get the full member experience.Join For Free
Let's review the three levels again:
- Adjustment of System Performance (in response to a control signal)
- Adjustment of Control Setpoint (select desired performance level)
- Selection of Control System (decision how to manage performance)
As an example assume that your development teams are facing quality problems in their code due to lack of professional practices, and as a manager you want to do something about that. (Of course, this is just a theoretical exercise, right?) Here's how different types of managers (separated in leaders vs. rulers) could approach such a problem:
A level 1 leader would pick the best tools for unit testing and refactoring. He would select and buy the best books, organize some coding dojos with the team, and he would coach the team members daily, teaching them how to perform as it is expected of them. He might also buy a fluffy rabbit hat, and anyone who caused problems would wear it for day.
A level 1 ruler would not necessarily be leading himself, but he would be judging the team's day-to-day activities relentlessly. He could prescribe in detail what the Definition of Done must look like. He could refuse a vacation request for someone who made a complete mess with untested code. And he might order that the fluffy rabbit hat is replaced by real tar and feathers.
Level 1 is about making sure that people respond correctly to the required performance level. It is about making daily choices for the team: what to do, and what not to do. Many teams need level 1 control, because they lack the experience and skill to make all these choices themselves. However, for managers it is best when they're able to relinquish that control to the team. When the team has reached a certain level of maturity, and is able to self-organize and make its own choices, the manager steps up to level 2...
The level 2 leader would not care about which tools, books, and coding sessions to choose. She just concerns herself with questions about the right performance levels: Do we implement unit-testing first, and TDD (= more difficult) later? Do we start low-profile, with the easiest projects (= low impact)? Or do we adopt a big-bang approach (= high impact)? Or maybe postpone these topics and ask the team to implement automatic builds first?
The level 2 ruler would demand that the team performs some exams, and acquire certificates, as proof that they've mastered these topics and are able to apply them in projects. He could require that every team feeds their daily build status into his digital dashboard, and a lack of status or continuous sequence of red lights on the dashboard would see the team punished with the most horrible pizza toppings.
Level 2 control is about making sure that the team understands what the desired performance level is. All teams need such control. But if the team is very experienced and high-talented, this type of control could be an insult to their craftsmanship. They already know what's needed to produce high-quality code. And you could relinquish control even further, and step up to level 3...
The level 3 leader does not concern himself with specifying performance levels. He cares about the what, not the how. Is increasing code quality really our highest concern right now? Maybe we must focus on new platforms, and leave our messy legacy code for what it is? Or maybe we must teach our dyslectic mandrills to behave as real people first?
The level 3 ruler has the easiest job of all. She just fires anyone who annoys her. She kills internal projects, and introduces new ones. She decides whether to benchmark with CMMI or ISO 9001, or (when she's really smart) she just ignores the whole industry and devises a company benchmark of her own. Something that includes profit. And product reviews. And cheesecake.
Level 3 control is about selecting what it is that needs to be controlled. There are so many things to choose from, and figuring out what the control system must be is the most important choice of all.
True, the differences between the three levels (and the differences between leading and ruling), are sometimes hard to see. The world is not black and white after all. It's more of a mucky brown with some black-ish and white-ish tints. But I believe this arrangement is helping me in better understanding what to control myself, and what to relinquish to others.
Maybe it helps you too.
Published at DZone with permission of Jurgen Appelo. See the original article here.
Opinions expressed by DZone contributors are their own.
What Is mTLS? How To Implement It With Istio
DevOps Pipeline and Its Essential Tools
Developers Are Scaling Faster Than Ever: Here’s How Security Can Keep Up
The Native Way To Configure Path Aliases in Frontend Projects