Category: systems

systems thinks, complex system, emgerence, etc

  • Classic Systems Papers

    Many of the ideas that drive today’s “innovations” trace their origins to the groundbreaking work done in before 1990. Back then resources were scarse so people had to think and work harder than we do today.

    I strongly encourage people working on computing systems to read classic systems papers. These are papers that first introduced key ideas that have shaped our understanding of computing and often illuminate fundamentals more effectively than later papers.

    Technologies come and go, but foundations, core principles endure. Understanding the fundamental concepts ensures long-term adaptability and relevance in a fast changing world. I have found that reading classic papers has enabled me to reason from first principle and saved me from learning many lessons “the hard way.”

    My Reading List

    I was asked by some students for a list of classic system papers. Unfortunately the lists of papers I made for previous classic systems reading groups aren’t in my possession. So… the following is a list of papers I made this afternoon by harvesting my “outbox”. These are the papers that I have most frequently recommended to people in email. Sometime later I will update this page with a more carefully curated list of papers which will also include some more recent papers such as MapReduce and Attention is All You Need which I consider classic, even if they were published in the 21st century :). I am sure there are important topics not covered below, but this can be a starting point. Ordered by the frequency I sent them, not by importance.

    Other People’s Classic Systems Papers List

    Reading Groups

    I have been part numerous “reading groups” which focused on “systems”. The participates would identify both classic and current papers  they thought were important. Just making the list together was instructive and often led to a spirited discussion. Once we made a list of papers we would make a schedule that listed which papers were going to be covered and who was going to lead the discussion.  We would typically met once per week, often over lunch. Everyone in the group would read the designated paper.

    For a more complete set of guidelines, see How to Lead a Technical Reading Group by Cathy Wu of MIT. I am sure there are other good materials out there about reading groups.

    Related

    Are there papers that changed your perspective or have been foundational to you as a software engineer, systems designer, etc? Drop me a note because I would love to read it and potentially add it to my list.

    “Instead of standing on each other’s shoulders, we stand on each other’s toes”. – Butler Lampson, quoted Hamming

  • Optimal Group Sizes

    The optimal size of a group is first determined by the function of the group. A group will need the requisite skills, abilities, experience, and manpower to accomplish its goal. In addition to function, there are cognitive and social underpinnings which influence the optimal size of a group. Studies suggest optimal group size tends to cluster around 5, 15, 50 and 150.

    Dunbar’s Number

    Robin Dunbar, an anthropologist and psychologist, proposed that 150 is maximum size of a group that can maintain stable social relationships, where each member knows every other member and how they relate to each other. For a group of this size to remain cohesive, as much as 42% of the group’s time would need to be devoted to maintaining relationships which is can only happen when the group is in close proximity and with strong survival pressures. See the Dunbar’s Number wikipedia article which provides additional background information and optimal social networks (the paper) which provides insight from modeling. 

    Dunbar also identified a sequence of sizes for cognitively efficient social groups: 5, 15, 50, 150, and 500. Each of these sizes represents different layers of social relationships, varying in the strength of these relationships.

    Other Theories

    The largest group size that can maintain effective coherence, deep trust and highly efficient communication is generally considered to be relatively small, typically under 10, though the exact number can vary depending on the context and the nature of the group’s interactions.  It has been suggested that online groups might be able to function effectively at higher numbers of participants. There are a variety of theories and research topics in psychology, sociology, and organizational studies that can help identify factors which determine the optimal size of a group:

    1. Small Group Theory / Dynamics (3-20 members): Research in small group dynamics typically finds that groups of around 3 to 8 members are most effective for tasks requiring close collaboration and communication. In such small groups, members can form strong interpersonal relationships and maintain a high level of mutual understanding.  When the goal is to foster deep connections and effective communication in a community setting the community can grow to around 20 people with smaller groups within the larger community can ensure everyone feels heard and supported.
    2. Communication Network Theory: As group size increases, the complexity of communication channels also increases exponentially, making efficient communication more challenging. Smaller groups allow for more direct and clear communication.
    3. Collective Intelligence Theory: This theory would support a group size that balances diversity of thought with the ability to make collective decisions effectively, which could align with a smaller to medium-sized group.
    4. Steiner’s Model of Group Effectiveness: This model would favor a group size that maximizes productivity (in terms of community support and cohesion) while minimizing losses due to potential group conflicts or inefficiencies.
    5. Social Loafing Theory & Ringelmann Effect: These theories suggest that in smaller groups, members are more likely to contribute actively and take responsibility, which is vital in a community.

    Teams at Work

    When it comes to teams taking on a technical task, Amazon has popularized the idea  of the Two-Pizza Teams, that is effective meetings and teams are small enough that 2 pizzas can feed the gathering.

    Highly functional start-ups can easily grow to 50-150 people and keep good alignment of collaboration across the company. After this alignment tends to pull apart as subgroups interests come into conflict. As a group grows it’s impossible for everyone to recognize, much less “know” each other. Individuals gravitate to only knowing members of their team.

    The most effective strategy when a company is more than 150 people is to identify people who can be interfaces for the other teams. The works best if you have a personal relationship with one or two people in each of the teams who you can build trust with, and who can represent this team to you. This often works best if the person is not the manager or director of that team. Having relationships with people in other teams naturally occurs when people join an organization which was smaller than 50 people, when the company was small enough to know everyone. As the company grows larger, these early team members typically know at least one person in every major group. People who join companies when they are larger, this has to be an intentional activity. Smart companies provide opportunities for people to interact with members of other teams personally, in a context free of work pressures.

    Often a mission is too large to be taken on by a small team. A common solution to this is build a hierarchy of teams with middle managers with one or more directors or executives that leads the group. When (not if) projects fall behind expectations there is a temptation to add additional people. This always ends badly. See the classic book The Mythical Man Model for a description of this.

    The most extreme example I saw of how a large team can be hampered by size was a skunkworks project of around 8 researchers at Xerox PARC that built a product based on a series of tools that were in common use at PARC. At the same time a “clean sheet” product team was assembled to create a very similar product. The product team grew to 250 people and failed to deliver a useful product after two years of work. Eventually that team grew to 750, then downsizes and refocused. After five years they finally produced a product that was mostly competitive with the product the researchers had been selling to customers for the previous five years.

    Often the best solution for taking on larger missions is to have a network of autonomous teams which collaborate. This approach was eloquently discussed in Team of Teams by General Stanley McChrystal.

    Group Sizes at Church

    I have been part of church groups which ranged from a couple of people, to several thousand. It seems to me that

    Discipleship: Discipleship is often portrayed as a one-to-one meeting of a “master” and a “student”, where the master is passing on their experience. While this can work, I have observed that this sort of intentional life transfer works best in the context of a small group where people have both the opportunity to learn, and to share, help, serve, teach each other.

    Life/Community Groups: Truly sharing life with others takes time. People need to be able to share what’s happening with them on at least a weekly basis. This level of sharing can’t happen in the group is more than 15 people or so. More than that, and people don’t have enough opportunities to share.

    Medium Size Groups: Over the last two millennium, churches typically were 50-150 people. This is large enough for the full diversity of gifting to be present while;e small enough that everyone can recognize each other. In meetings of this size there aren’t opportunities for everyone to share with the entire group each week, but it’s small enough that people will have repeated contact with each other to the point they will have some understand of others needs and ways they they could be of service.

    Large Size Groups: In the USA there has been a trend toward mega-churches which are able to efficiently make use of resources. For example excellent teaching, run programs which require a lot of people, build spaces to serve the community, etc. People who only attend these large groups will not find the sort of community that church was designed by God to provide. Many of these churches encourage people to join life groups… but I think this is sub-optimal. First, people might not be ready to join a community group. Second, community groups are too small a context for people to learn about and use their gifting. Medium size groups which are more open are very helpful.

    Other Groups

    Over the years Jackie and I have experimented with the optimal size of a dinner group which has the goal of people getting to know each other and share life. We found that 6 seemed to be optimal in providing diversity while providing opportunities for each person to contributed. Conversations naturally flow with effective turn taking. When the group grows to 8-12 we have seen that a skilled facilitator are able maintain a good environment, but without a facilitator the quieter people often don’t have an opportunity to contribute, and side conversations will start.

    Further Investigate?

    The following are papers and books which examine issues related to how the size of groups impacts the groups function.

    1. What is the Ideal Team Size to Maximize Productivity
    2. how to assemble a team with dunbar’s numbers
    3. dunbar’s number in social architecture
    4. Effective teams for the military is a life or death matter. The core of the military are fire-team and squad. A discussion of how function has impacted the size of a squad.
    5. The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information by George A. Miller: While not about group size per se, this seminal paper on cognitive processing limits indirectly informs theories about optimal group sizes, especially in contexts requiring intensive communication and coordination.
    6. Group size and the trust, cohesion, and commitment of group members Shane Drew Soboroff. Dissertations that examines how group size affects trust, cohesion, and commitment in group members.
    7. Why individuals in larger teams perform worse by Jennifer Mueller: examines who as group size increases, individual’s perception of support shrinks.
    8. Communication and Group Decision Making Randy Hirokawa & Marshall Poole. This book provides insights into how group size affects communication and decision-making processes within small groups.
    9. Research of George Homans. Best know for his paper “The Human Group“. This is a foundational text in understanding group dynamics.
    10. Group Dynamics by Donelson R. Forsyth: This comprehensive textbook. Several sections, such as group coherences, collective behavior, and communication talk about how size has an impact.
    11. The Five Dysfunctions of a Team by Patrick Lencioni: Addresses team dynamics, indirectly touching upon group size issues.
    12. Designing Team-Based Organizations by Susan Albers Mohrman, et al.: Discusses organizational design and team size in the context of knowledge work.
    13. Group Creativity: Innovation Through Collaboration by Paul B. Paulus and Bernard A. Nijstad: Explores how group size affects creativity and innovation.
    14. A Meta-Analysis of Group Size Effects in Electronic Brainstorming: More Heads are Better than One – Alan R. Dennis & Michael L. Williams
    15. The Difference: How the Power of Diversity Creates Better Groups, Firms, Schools, and Societies by Scott E. Page: Addresses how diversity in groups, influenced by size, affects performance.
    16. The Wisdom of Crowds by James Surowiecki: This book discusses how large groups can be remarkably intelligent and are often smarter than the smartest people in them
    17. Team of Teams by General Stanley McChrystal: Examines of in the face of a chaotic world, small teams which are given significant autonomy with the ability to partner with other teams are significantly more effective that large, top down organizations.
  • Systems Thinking

    I have used systems thinking for most of my adult life. It was at the heart of the infrastructure, services, and human organizations I built. Systems thinking has been a key tool to understand the world around me and to identify the most leveraged way for me to make a positive impact on the world. When I was asked to shared how systems thinking would inform a Human Resources team, I realized I had never written down any thoughts about systems and had never thought about how to explain systems beyond the context of computing systems. This is my starting place.

    Systems thinking is a holistic approach to analysis that focuses on the way that a system’s constituent parts (the elements) interrelate and how systems work over time and within the context of larger systems. Rather than isolating individual components, systems thinking emphasizes the interconnectedness of parts within a whole. Systems thinking  enables people to address complex problems which have emergent behaviors which result from a number of simple feedback mechanisms.  A systems description of systems thinking:

    Figure 3 from A Definition of Systems Thinking: A Systems Approach Ross D. Arnold*, Jon P. Wade. Procedia Computer Science 44 (2015) 669 – 678. 2015 Conference on Systems Engineering Research 

    References

    “Class” Materials

    HR / Leadership Focus

    Related