You might be familiar with the Yin-Yang symbol from Taoist philosophy. The black sections are yin - mysterious, chaotic, unknowable. The white sections are yang - obvious, ordered, legible. Yin and yang are fundamental properties of the universe. Just as the Heisenberg Uncertainty Principle balances any attempt to measure a particle's position with chaos in the particle's velocity, the universe conspires to balance any yang - legibility - with yin - mysterious chaos.
To non-programmers, software engineering is yin by nature. Bring any normal person into the engineering department and watch them marvel at all the black terminals and arcane symbols. Of course, this external yin is balanced out by internal yang - all the programmers know what's going on. We can, after all, read each others' code.
Yin-on-the-outside and yang-on-the-inside is the natural balance of a software engineering team. For the programmers, working inside the yang is generally a nice experience. Information flows smoothly, colleagues are helpful, and accomplishments are naturally rewarded with respect and admiration. A well-functioning software engineering team is a wonderful, collaborative environment - on the inside.
For the rest of the company, however, the yin on the outside is difficult and annoying. How is the company supposed to communicate its roadmap, when features just randomly emerge out of a mysterious black box?
The yin is particularly problematic when a non-programmer is granted administrative power over the team. How does the administrator decide who gets what work? Who to reward with raises and promotions or who to performance manage? These are all important questions that must be answered correctly for the engineering org to function properly, but they're very hard to answer from outside the yang.
Unable to penetrate the mysterious yin, the non-technical administrator responds by shining the flashlight of yang over the org. The flashlight usually takes the form of metrics - individual/team KPIs, semi-annual performance reviews, etc.
Unfortunately, Goodhart's law rears its ugly head:
When a measure becomes a target, it ceases to be a good measure.
Once individual performance becomes spreadsheetified, individuals re-orient their behavior to optimize their metrics. All job functions are vulnerable to this phenomenon, but software engineering is particularly vulnerable due to the enormous amounts of yin inherent in the system. The flashlight of yang is unable to eradicate the mysterious yin, merely to redistribute it - down to the atomic, i.e. individual contributor level.
An individual contributor whose compensation is tied to, say, shipping a specific feature, will prioritize shipping that feature over helping out their mates. Intentionally convoluted code will start infesting the codebase, so its maintainers can never be fired. Estimates balloon out of control, fiefdoms are carved out, and helpful information is jealously guarded.
The perfectly yang metrics in the administrator's spreadsheet come at a cost - the internal yang of the engineering team.
You can't have a double-yang situation. Law of the universe. Very sorry, take it up with Heisenberg.
At Ivo Engineering, we believe in working with the universe. We don't want to mess up the yang. As such, we embrace the following principles:
ICs are the bedrock of an engineering org. How do we ensure that our "holistic evaluations" of them are fair and understood? The following is a (non-exhaustive) list of qualities that managers will keep in mind when evaluating engineering ICs' performance, which will be done on a continual basis.
Schedule a demo today.
