So I was looking back at the blog post I did after my extended hiatus, and I realized that it is almost identical to the blog post I did the previous time I took an extended hiatus. This in itself is (to me at least) highly amusing, because I’ve literally written blog posts on writing duplicative blog posts. Repetitive work, which implies a lack of efficiency.
In the past I’ve talked about wrapping quality controls around my writing to prevent duplicate posts. There’s several ways to prevent this from happening; an administrative control where I basically just rely on my own good intentions to not do it again, a detective control where something notices that there are duplicative blog posts, or preventative controls where something prevents a duplicative blog post from ever being written. Note that administrative controls are the easiest to implement (in that you’re literally just authoring a policy or procedure), but also tend to be the most difficult to implement at scale.
This led me to think about a similar conversation I recently had with someone. One of the biggest pain points that I see in organizations that are growing, especially ones that are growing quickly, is how to implement quality controls to maintain the high level as you add more and more people to the team. In smaller teams, especially startups, administrative controls are usually good enough. At the two-pizza-team level, your work is extremely visible and transparent. There’s nowhere to hide, so the corporate culture is usually enough to keep everyone working on tasks that provide direct value, and on ensuring that the tasks are performed at the correct level of quality.
As teams get bigger and bigger, however, it gets easier to hide. It becomes easier to have people in the “What does that person do all day?” category. Even more subtle, it’s not that the person isn’t busy; on the contrary, they are probably extremely busy. But is the work they are doing providing value? Or is it duplicative or purposeless?
This gets even harder with certain types of knowledge work. When you’re authoring code on a project you have access to tools (such as static source code analysis or other DevOps/CI scanners) so detective and preventative controls can be implemented with automation. But how would you detect a duplicate blog post being written? How would you discover that two different teams in a large organization are working on the same research project?
Part of the answer is in large organizations or on large projects this is why the role of “Lead Architect” or “Chief Engineer” is important for efficiency. This is a role where one of the responsibilities is to have oversight of all the activities happening to ensure there is alignment and focus. This is also why programmatic reviews at the Director level are important, and the right data and metrics from the efforts need to be surfaced. This also lends credibility to the concept that senior leaders need to have technical knowledge of the activities happening in their organization.