How Collaborative Tool like Github Can Kill Collaboration That They Claim to Foster
Are GitHub, Bitbucket, or similar tools your go-to for source control because they boost collaboration and keep developers happy? What if I told you that while these tools enhance productivity at the team level, they often create an enterprise-wide bottleneck—crippling productivity, quality, and collaboration across the organization?
"If that sounds unbelievable, we understand why. But let's consider a principle from Systems Theory: optimizing subsystems (what we call "uber systems") can often make the larger system ("unter system") less efficient, crazy less efficient due to non-linear impact."
"Here's an example: if everyone in the U.S. tries to become wealthy by saving more money, the economy as a whole could crash, leaving everyone collectively poorer. Similarly, if everyone in a transportation system drives faster to reach their destination sooner, traffic congestion worsens, and everyone arrives later."
This interplay between part-level efficiency and whole-system inefficiency is poorly understood by technologists and engineers, who often rely on analytical thinking. And yet, it's precisely what's happening in organizations that use modern source control management tools like GitHub and Bitbucket. These tools promote poly-repo architectures and focus on making each team more efficient—without considering the impact on the entire organization.
Intrigued, Read On and reach out to me at manish@systemsway.com for deeper conversation.
Introduction
One of the less-discussed problems in large-scale software development that chronically and systemically hampers productivity, quality, and engineering effectiveness is the issue of Code Ownership. If you are a CTO or an executive in a technology company, I might already be losing your attention because you believe you don't have a code ownership problem. After all, everyone seems to be modifying, releasing, and deploying the necessary code. However, our guess is that your assessment might be wrong.
If you use GitHub, Bitbucket, or a similar source code management system, and unless carefully designed structures have been put in place, we believe you likely have a serious code ownership issue. This problem may be undermining productivity and quality, leading your company to deliver too few projects or products while too many engineers work excessively long hours.
Before you assume that code ownership isn't a problem simply because no engineers are complaining about it, we urge you to read this post. You might be in for a surprise—and you may come to appreciate the power of systems thinking, which is our area of expertise.
Before diving into how this invisible problem manifests, let's first understand the system of code ownership. Code ownership can be divided into Strong, Collective and Collaborative a.k.a weak ownership.
Strong Ownership
Strong Ownership
The term "strong ownership" might sound appealing, but it's a disaster for your organization. Strong ownership refers to situations where a codebase, library, folder, or module is exclusively "owned" by a specific team or individual. Only they are allowed to make changes to the code. While the code might be visible to others, any changes require queuing up with the "owner," who dictates the timeline for implementation, QA, and deployment.
In legacy systems, where code resided in monolithic repositories (e.g., ClearCase, SVN, or even early GIT), this model worked well for SCM teams and developers who valued predictability and control. If something broke in production, owners could take responsibility and avoid being blamed for others' changes. This structure, however, came at a massive hidden cost—it's a catastrophic productivity, quality, and engineering effectiveness killer.
Why Strong Ownership Creates Chaos
Traffic Jams in the System:
- In an enterprise with 20 projects, each requiring changes to 100 components, every project must queue up with 100 different teams.
- No one knows at the start how much work will be required from each component owner, making capacity planning impossible.
Unpredictable Workload:
- Software development isn't manufacturing; it's an information generation business. New work creates new information, which generates additional work across modules.
- Hiring or staffing to meet demand is impractical since predicting workloads accurately is impossible.
Integration and Synchronization Failures:
- Integration and functional testing require alignment across multiple teams. If one team prioritizes differently or is understaffed, the entire project stalls.
- This results in cascading delays, where even reducing the number of projects from 20 to 2 fails to solve the problem.
Meeting Overload:
- "To manage these delays, companies host endless meetings for alignment, prioritization, and coordination. These meetings address symptoms, not the root cause:" strong ownership.
Innovation Blockers:
- Strong ownership stifles innovation.
- Even when a developer can implement changes across modules to demonstrate an idea, the system prevents them from doing so. Demonstrating an innovation to leadership might require 30 people across 30 modules, which rarely happens unless VP-level intervention is involved.
Why Queues Magnify the Problem
Every approval, database change, firewall update, or ticket adds to the growing queue but those queues we all are aware of. In globally distributed teams, shared environments and gated processes exacerbate the problem, when each of hundreds of team work on thousands of repos, we create thousands of micro-queue what emerges is an invisible mega traffic jam that derails projects, kills innovation, and reduces overall organizational effectiveness. We then see people as the problem but in reality root cause is strong code ownership systems we have put in place.
The Hidden Cost of Strong Ownership Reinertsen's book Flow dedicates a chapter to queues, but even it doesn't fully capture the magnitude of the problem caused by strong ownership. This model creates bottlenecks at every stage, turning organizations into productivity and innovation graveyards.
The Solution
"Removing strong ownership can increase productivity, quality, and engineering effectiveness by 300–400% may be more. By empowering developers to make changes across modules and focusing on system-wide collaboration, organizations can eliminate queues, streamline workflows, and foster innovation.If your company has strong ownership practices, understand this:" your productivity and innovation aren't just suboptimal—they're trapped in a traffic nightmare. The solution to Strong Ownership was Collective Ownership
Collective Ownership
Collective Ownership
Collective ownership emerged as a response to the strong ownership systems that companies—particularly developers and managers—put in place to ensure no one breaks their code in production. While these strong systems achieved their goal of preventing production issues, they also created significant bottlenecks. Long queues formed, requiring countless program and project managers to coordinate and bring people together. Unfortunately, these queues couldn't be resolved by simply adding more "traffic managers."
As part of Extreme Programming (XP), Kent Beck and others popularized the idea of collective ownership, along with many other innovative practices. Collective ownership allows everyone access to all the code, enabling anyone to make changes and use automated build-and-deploy pipelines. This approach virtually eliminated queues. The only remaining bottlenecks occurred when someone needed help modifying a codebase outside their expertise, requiring assistance from another developer. In most cases, no tickets or formal processes were necessary.
The innovation unleashed by collective ownership was remarkable. Two or even one developers could modify any codebase, create a demo project, and showcase a working prototype—even with mock or fake components—something nearly impossible under the rigid social systems created by strong ownership practices.
"However, collective ownership thrived only with small codebases. As the codebase grew to millions of lines of code, fear set in, and developers and management began holding each other accountable for production issues. At this point, organizations faced two options:"
- Return to strong ownership: Reinstate rules that only owners could modify their code, which is what most organizations did. Many organizations did that.
- Evolve collective ownership: A few exceptionally intuitive individuals—though not necessarily informed by queuing theory—recognized the nightmares of strong ownership. They developed new approaches to extend collaborative ownership effectively, which we'll describe next.
"Collaborative Ownership: The Best of Both Worlds"
"Collaborative Ownership: The Best of Both Worlds"
In a collaborative ownership model, a team or group of people act as guardians or stewards of a code module or folder. While they oversee and maintain the code, they cannot prevent others from modifying it. At first glance, this might seem risky—how do we balance control with flexibility?
"Here's how it works:"
- Code owners retain direct access to make changes to their modules.
- Other developers can submit code change requests, which the code owners review and approve.
- If the changes meet criteria after review, they are accepted and merged.
"The Key Difference: Speeding Up Queues"
In this model, developers can independently build, test, and verify their changes in their local and QA environments. Once everything is ready, they submit a change request for review. This shifts the traditional ticket-based modification queue into a code review queue, which is far faster and more manageable for code owners.
"Let's consider a project that requires changes to 100 modules:"
- With strong ownership, only 20 modules owned by the project team can be directly modified. For the remaining 80, requests must queue with their respective owners, potentially delaying the project for months or even years.
- With collaborative ownership, the project team can make changes to all 100 modules and submit them for review, drastically reducing bottlenecks.
The Impact on Productivity
This shift in queue management can improve productivity by an astonishing 300% to 400% or more "because:"
- Queues move faster. Code review queues are simpler to manage than tickets for code changes.
- Fewer meetings. Alignment, prioritization, and escalation meetings significantly decrease as teams can act independently within the system.
- Enhanced innovation. Developers can rapidly prototype ideas and demonstrate them in QA environments without waiting for permissions or dependencies.
For example, during a hackathon, a developer with an idea can check out the code, make changes to 20 modules, and demo it directly to the CEO. In a strong ownership model, this would require aligning 50 teams for 50 modules—effectively dooming the project before it even begins.
Real-World Applications
Consider Google's famous culture of innovation. If their CEO leaves a note in the kitchen saying, "The ads we show to customers suck," engineers can act on it immediately by creating a prototype in QA. Collaborative ownership empowers this kind of agility, whereas strong ownership would drown the initiative in bureaucratic queues.
Collaborative ownership clears the traffic jams caused by strong ownership, unlocking immense productivity, innovation, and efficiency. By embracing this model, organizations can eliminate bottlenecks, reduce friction, and achieve unparalleled engineering effectiveness.
"Why Most Collaborative Ownership Turns Into Strong Ownership Model : A techno-social problem"
Getting tools for collaborative ownership is straightforward—use a code review tool, send emails for code review requests, and you're set. However, many engineers mistakenly believe all problems can be solved as engineering challenges, ignoring the social dynamics that subtly but powerfully constrain everyone. As a result, collaborative ownership often devolves into strong ownership.
"Consider this example:" A company implemented "domain locks," a fancy term to restrict code changes to certain modules unless the owners approve. It sounds collaborative on paper. However, the implementation required developers to seek permission just to clone and build the code in their local environment. If a developer needed to modify five modules, they first had to secure approvals from five different teams, each asking, "Why do you need to change this code?" and requiring forms, reviews, and unlock approvals.
Instead of focusing on coding, developers were transformed into program managers juggling administrative tasks. What looked like collaborative ownership created social barriers so high that it became strong ownership in practice.
Why Does This Happen?
- "Fear of Poor Quality:" Teams with low-quality codebases often create barriers to prevent others from making changes that could cause breakages.
- "Build and Deployment Gaps:" Without robust build and deployment systems, even minor changes create extra work for teams, prompting them to erect barriers.
- "Misguided Implementation:" Domain lock systems are designed to prevent chaos but end up preventing collaboration when misused.
- "Blind Spots in Management:" Leadership often fails to see the piling queues and inefficiencies because they lack the ability to recognize social system constraints.
"The Result:" These pseudo-collaborative models stifle innovation. Imagine a hackathon where you have an idea requiring changes to eight modules. Good luck getting those domain locks opened within eight hours! Such models are anti-innovation and anti-productivity, despite appearing collaborative on the surface.
"The Real Issue:" These problems aren't technological—they're social. Collaborative ownership fails because organizations don't address the underlying social systems and behaviors that create shackles. To truly achieve collaborative ownership, leaders need to learn the art of identifying and addressing social dynamics, not just rely on tools or processes.
"GitHub: A Strong Ownership Model Disguised as Collaborative Ownership"
"GitHub: A Strong Ownership Model Disguised as Collaborative Ownership"
Software companies fundamentally produce knowledge encoded as code, and since knowledge builds upon knowledge, code similarly builds upon code. However, discussions about code management systems—such as those governing code discovery, ownership, promotion, and search—are nearly nonexistent in most organizations. Instead, companies often focus on tools like GitHub or Bitbucket, which, while effective at the individual level, inadvertently undermine these processes at the enterprise level.
"This is a fascinating phenomenon: these tools facilitate code discovery, ownership, and promotion on an individual scale, so no one notices when these aspects fail at the organizational level. We refer to this as the phenomenon where the macro behavior is the opposite of the collective micro behaviors. GitHub and Bitbucket, designed with collaborative ownership in mind, lead to the creation of thousands of repositories. Without proper management, this flood of repositories can destroy code discovery, ownership, and search, creating thousands of queues at repo level that creates crazy invisible traffic jams and ultimately push the organization toward a rigid, hard ownership model. So though tool says, we allows anyone to contribute, the social systems that it end up developing ensure that other than repo owner, no one can modify the code."
"Systems Thinking shows that systems often produce results that are the opposite of what is intended. For example, when everyone tries to save money to become wealthy, the collective result can be the opposite—everyone becomes poorer due to feedback loops. The same applies to GitHub and Bitbucket. Individually, each repository is designed to foster collaborative ownership, but at the enterprise level, this setup often results in the exact opposite: a hard ownership model."
The Cost of Strong Ownership in GitHub/Bitbucket are invisible queue at every repo level. Thousands of hidden queues are created as engineers wait for approvals, reviews, and merges. These delays are invisible to management, which remains oblivious to their productivity-draining impact at enterprise level. After sometime, no queue builds up repo level , because no engineer wants to work on code other than repos they are member of and once that happens, given dynamic nature of software development, project failures across the board are guaranteed and management blames people for not collaborating but it's the systems ensure that no person in such systems can collaborate.
InnerSourcing, a terrible rescue mechanism for enabling people to do cross team collaboration For those unfamiliar, InnerSource refers to a system where one team can submit code to another team's codebase, especially when the latter is too busy to address certain issues themselves. The inner source is name of creating the open source culture in enterprise where anyone can modify any code. InnerSource is transformative—it promises to boost velocity and significantly reduce cycle times only if you can achieve it. However, it is only achievable when systems are explicitly designed for collaborative ownership. If it took hundreds of developers to fix a simple non-risky log4j patch which proved that your organization does not have collaborative ownership, driving inner source initiative is like ask people to collaborate when systemic silos have been created at repo level. In my experience, I've witnessed five major corporate pushes for InnerSource. These initiatives failed because they attempted to overlay InnerSource on top of strong code ownership systems. Simply put, you cannot enable InnerSource in systems fundamentally built for control and isolation.
A software systems architect who designs for collaborative ownership will never need an InnerSource initiative. InnerSource on top of hard ownership is doomed to fail—an anti-systems approach to fixing the problem.
How can a CTO Know they have Strong or Collaborative Ownership in their organization
How can a CTO Know they have Strong or Collaborative Ownership in their organization
Actually after reading this article, you already know if your company has strong ownership, collective ownership or collaborative ownership, or worse of all Strong ownership disguised under the veil of collaborative ownership. But if you still want measurable data to test, you can do a simple experiment
- Ask an engineering to make benign code change across repos and see how they struggle They can run a simple self experiment. Get inside a room with an engineers, and ask that engineer to bump a version number of library across a set of repos. may be 20 repos of whose he is not a member of. Communicate that library change is benign but important. Take how long does it take for engineers to get their benign code change accepted and rolled to production. For most large scale software development, our guess it would take week, months and many will never get it done. Instead of running this physical experiment, if you ask your people because they know how systems work, most will say "that easy, we can give PR to 20 repo", don't take the answer. Try it and you will see how poor understanding your people have of the sytems.
- Log4j incident , real test of organization having Strong vs Collaborative ownership
- Consider the Log4j vulnerability incident. Fixing it involved changing just two characters in a configuration file (e.g., updating the version to 2.17.1) across multiple repositories.
- Open the RCA of the incident, and check how many engineers had to be involved in whole or organization to fix this basic and benign code change.
- In organizations with true collaborative ownership, a single engineer (even a contractor) patched hundreds of repos or modules and redeploy them. Everyone else enjoys their holidays.
- So cost of patching log4j incident in collaborative ownership organization were may be 5000$ but in strong ownership organization was millions of dollar, yes millions of dollars and most enterprise are not even aware of that.
If in your organizations with GitHub's illusion of collaboration, hundreds and possible thousands of engineers were woken up repeatedly to patch their modules, which has to be a true statement for most enterprise using GitHub or Bit Bucket, your organization has stuck in hard ownership model without anyone being aware. If your enterprise was able to patch the log4j library with 1 or very few engineer across thousands of repos, you should be proud and we would love to learn about your systems and how did you achieve that.
The Reality
The Reality
If your organization failed the log4j test—where updating a simple library version turned into a massive effort involving countless engineers—it indicates the presence of strong ownership. This is a hallmark of inefficient, third-world software development systems. The concept of rigid ownership was discarded decades ago, yet it has stealthily returned to enterprises, often without their awareness.
If your organization does not use java and did not patch log4j library, we can design similar test for you or talk to us. We in 15 minutes of conversation can tell you have you socially arrived at strong ownership without being aware.
The Hope The good news? Transformational improvements are within reach. By adopting systems thinking instead of purely analytical thinking, companies can dismantle the invisible social barriers embedded within their tools and processes. Even the most advanced tools, like GitHub, are only as effective as the systems they operate within. The solution lies not merely in better tools but in rethinking and redesigning the foundational systems to establish truly collaborative ownership models.s.
A Call to Action
A Call to Action
If these challenges resonate with you, and you believe hard ownership has taken place in your organization, reach out to us. Your problem are solvable with crazy upside, but those solutions are not available in DevOps books because problem are not technological but techno-social. Reach out to us , we can help manish@systemsway.com
"For companies just crossing the 100-person threshold: this is a pivotal moment. We can help you set up systems designed for scalability and collaboration, ensuring you avoid the costly pitfalls that many organizations fall into. Building the right systems now is far easier—and less expensive—than fixing broken ones later." Reach out to us, we can help manish@systemsway.com
Why no scrum master, Agile or DevOps guru talked about it topic "The problem is simple: they focus on making each team efficient individually, ignoring the critical truth that "the whole is never just the sum of its parts." In fact, the whole can often be" less "than the sum of its parts—exactly what happens with so-called collaborative tools like GitHub."
We leave you with excerpt from Book Flow by Donald Reinertsen
Leaving you with except of book FLOW but Reinertsen, only book on product development that talks about queues and it's role in affecting productivity, quality and everything that happens in organization.
""Blindness to Queues :" Few developers realize that queues are the single most important cause of poor product development performance. Queues cause our development process to have too much design-in-process inventory (DIP). Developers are unaware of DIP, they do not measure it, and they do not manage it. They do not even realize that DIP is a problem. For example, product developers will say that they want to be more innovative and never realize that high levels of DIP undermine this objective. When DIP is high, cycle times are long. When cycle times are long, innovation occurs so late that it becomes imitation.
There are two important reasons why product developers are blind to DIP. First, inventory is financially invisible in product development. We do not carry partially completed designs as assets on our balance sheet; we expense R&D costs as they are incurred. If we ask the chief financial officer how much inventory we have in product development, the answer will be, "Zero."
Second, we are blind to product development inventory because it is usually physically invisible. DIP is information, not physical objects. We do not see piles of DIP when we walk through the engineering department. In product development, our inventory is bits on a disk drive, and we have very big disk drives in product development.
But if we are blind to DIP, then we are also blind to the danger in operating with high levels of DIP. As you shall see in Chapter 3, queues lie at the root of a large number of product development problems. They increase variability, risk,and cycle time. They decrease efficiency, quality, and motivation."
Note From Manish: Working on less number of projects to reduce DIP or WIP is blatantly wrong if your problem is traffic jam of thousands of queues created due to structure such as hard ownership. If traffic job is due to poor transportation systems design, one should work on fixing that instead of saying I can only allow ambulances to travel on road. That's a perfect way to create third world country.