November 24, 2022

Why growing teams hurts?
Observations around the growing teams

https://www.youtube.com/watch?v=oVt6rUuzjU8

Queue Theory

Typical flow

  • requirements
  • backend work
  • api work
  • http client
  • ui work

The theory of constraints

The theory of constraints is a management paradihm that views any manageanle system as being limited in achievenig more of its goals by a very small number of constraints. There is always at least one constraint, and TOC uses a fucusing process to identify the contraint and restructure the rest of the organization around it.

  • Identify the systems’s contraints
  • Exploit the contraint
  • Subordinate everything else
  • Elevate the constraint
  • Go back to step 1

Conway’s Law – Melvin Conway, worked on MUMPS

Any organization that designs a system will produce a design whose structure is a copy of the organiztion’s communication structure.

If you have 4 [teams] working on a compiler, you’ll get a four-pass compiler. – Eric Raymond

Inverse Conway Maneuver

Recommends evolving your team and organization structure to promote your desired architecture.

Brooks’ Law

Brook’s law is an observation about software project managemnt accoring to which “adding manpower to a late software project makes it later”. It was coined by Fred Brooks in his 1975 book The Mythincal Man-Month. According to Brooks, under certain conditions, an incremental person when added to a project makes it take more, not less time.

Combination Explosion is the rapid growth of the complexity of a problem due to how the combinatorics of the problem is affected by the input, constraints, and bound of the problem.

5 member team = 10 connection 8 person team = 28 connections

Donbar’s Number is a suggested cognitive limit to the number of people with whom one can maintain social relationships. The strongest form of communication happends in an individual team working closely together with a very consistent shared context and specific purpose. In software this number is supposed to be 8 people (2 pizza rule).

Teams working as a cohesive unit perform far better than collections of individuals. – Driskell and Salas

Growth beyond Dumber’s number imperiuls the viability of the software being built by the team because trust will begin to break down.

Queuing theory

is the mathematical study of waiting lines, or queues.

Queuing theory has its origins in reasearch by Agner Krarup Erlang when he created models to describe the system of Copenhagen Telephone Exchange company.

Little’s Law

The long-term average number L of customers in a stationary system is equal to the long-term average effective arrive rate 𝜆 multiplied by the average time W that a customer spedns in the system. L = 𝜆W

Imagine a small store with one register. Also assume everyone that enters the store will buy something. If the arrival rate is greater than the exit rate, the queue size eventually approaches inifinity. -> your backlog approaches infinity


Cognitive load

Conitive load refers to the ammount of working memory resource being used.

  • Intrinsic Load – how diffucult is the task
  • Germane Load – all the information you have to synthetize on
  • Extraneous Load – all the other stuff

A complex system is impossible to entirely reason about. Reducing the complexities in the system decreases cognitive load.