People say cooperation is important at work. However, looking at how work actually gets done, in many cases people divide tasks finely at the beginning, work separately, and then meet later to combine everything. Looking closely, there is almost no cooperation. Why do we say cooperation is important but don’t actually cooperate?
This is because we have not properly learned cooperation.
Through the gear experiment by Stanford University psychologist Daniel Schwartz (Daniel L. Schwartz. (1995). The emergence of abstract representations in dyad problem solving. The journal of the learning sciences.), we can understand what cooperation really is.
Five gears are connected horizontally in a row. If you turn the leftmost gear counterclockwise, which direction will the rightmost gear turn?
The gear experiment problem is about finding which direction the last gear rotates, as described above. This experiment showed that when two people work together, it takes less time to solve the problem and they solve it with fewer attempts.
As a result of the gear experiment, only 14% of those who worked alone found the abstraction rule. When two people worked together, 58% found it - more than four times the result of working alone. Even when two people worked as a team but didn’t interact with each other and simply chose the better result between them, the success rate was 26%.
When two people work together, they introduce abstract concepts such as assigning identification numbers to gears to reduce confusion and enable easier communication. When two people collaborate, they have different perspectives, so they need tools to connect those perspectives. Therefore, the two inevitably engage in abstraction and visualization work. These abstract concepts play a significant role in solving the problem. When working alone, this abstraction and visualization work doesn’t happen, making it difficult to solve problems.
That’s how important abstraction is in solving problems. And this abstraction occurs when two or more people collaborate rather than working alone.
In software development, we can also see how abstraction is highly valued:
- All problems in computer science can be solved by another level of indirection. - Butler Lampson
- Computer science is a science of abstraction. - Alfred Aho and Jeffrey Ullman
- The entire history of software engineering can be characterized by raising the level of abstraction. - Grady Booch
- When developing our understanding of complex phenomena, the most powerful tool in the human intellect is abstraction. Abstraction arises from recognizing similarities between certain objects, situations, or processes in the real world, and from the decision to focus on these similarities and temporarily ignore the differences. - Tony Hoare
Also, generally speaking, highly skilled programmers have better communication and collaboration abilities compared to average programmers. Skilled programmers spend more time on communication and collaboration, while there is statistically no difference in time spent on design, coding, and testing. In other words, excellent programmers perform visualization and abstraction work through collaboration, and this work plays a major role in solving problems.
The most effective way to increase abstraction is for two or more people with different perspectives to collaborate. In software development, pair programming is the fastest way to increase abstraction.
Pair programming means two people programming together using one computer. Through dialogue, the two raise the level of abstraction, and through the computer, they concretize and verify the abstracted content.
Extreme programmers talk together about each step of programming while working. Without careful thought, one might think that programming is nothing more than typing statements in a specific programming language. - Ward Cunningham
If you want to increase the abstraction of your code, don’t struggle alone - collaborate and have conversations with others through pair programming. Try drawing diagrams together and editing source code together to improve your abstraction abilities. These abstraction abilities will lead to problem-solving abilities.
Cooperation is not about everyone meeting to divide work, working separately, and then combining later. Cooperation is about people with different perspectives having conversations together to solve problems, performing abstraction, and deriving excellent solutions through this process.
Using abstraction to solve problems is exactly what cooperation is. The effort to increase abstraction is cooperation. If you’re working with others but not doing abstraction work, you’re not truly cooperating.
Most of the work we do is about solving problems. And the best way to solve problems is to increase abstraction. Take another look at your work and check whether you are cooperating (using abstraction).
Was my blog helpful? Please leave a comment at the bottom. it will be a great help to me!
App promotion
Deku.Deku created the applications with Flutter.If you have interested, please try to download them for free.



