top of page

Jaka jest optymalna ilość osób w zespole software-owym?

  • Zdjęcie autora: Cezary Ochman
    Cezary Ochman
  • 2 cze 2024
  • 2 minut(y) czytania

Zaktualizowano: 22 lip 2024

Jaka jest idealna ilość osób w zespole software-owym? Jest to dość częste pytanie na które musimy odpowiadać budując zespoły projektowe. Odpowiedź na pytanie jest złożona i odkąd istnieje nasza branża próbujemy ją odnaleźć. W tym krótkim poście przyjrzę się temu zagadnieniu z różnych perspektyw, dotykając jedynie wierzchołka góry lodowej...

Galacticos | Optymalna ilość osób w zespole software
  • Frederick P. Brooks w swojej ponadczasowej książce "Legendarny osobomiesiąc" pisał, że "...jeżeli projekt zatrudniający 200 osób ma 25 menadżerów będących kompetentnymi i doświadczonymi programistami, to należy zwolnić pozostałych 175 pracowników, a menadżerom nakazać tworzenie kodu". Ciekawa perspektywa... pytanie tylko, czy zespół złożony z samych "Galacticos" zawsze zwycięży? W sobotę tak się stało... 😉

  • Według Scrum Guida zespól nie powinien liczyć więcej niż 10 osób, natomiast Jeff Sutherland, jeden z twórców Scruma, uważa, że optymalna liczba to maksymalnie 7 osób.

  • Jeff Bezos, założyciel Amazona, wprowadził swego czasu zasadę 2 pizz, która mówi, że rozmiar zespołu nie powinien przekraczać liczby osób, które można nakarmić dwiema pizzami.

  • Według badania dt. "Overstaffing for Schedule Compression in Software Development" przeprowadzonego przez QSM wynika, że różnica między zespołami 5 lub mniej osób, a zespołami 20+ osób wynosi zaledwie jeden tydzień kalendarzowy dla projektu o rozmiarze 100k linijek kodu. Dlaczego? Ponieważ większe zespoły poświęcają więcej czasu na komunikację i koordynację, co w efekcie wydłuża czas realizacji projektu.


Jakie płyną z tego wnioski? Wraz ze zwiększeniem liczby umysłów, które trzeba koordynować wzrasta złożoność... złożoność komunikacji, interakcji, punktów styku, osobowości etc. W świecie IT dość mamy złożoności i wyzwań, dlatego warto się zastanowić (przed startem projektu) nad ilością osób w zespole. Jednym z podejść chroniącym software przed złożonością jest modułowość, czyli podział systemu na mniejsze, bardziej zarządzalne komponenty. Podobne podejście można zastosować przy budowie efektywnych zespołów. Co to oznacza? To oznacza m.in. podział zespołów na mniejsze jednostki, przypisanie im określonych obszarów odpowiedzialności, ustalenie zasad komunikacji wewnątrz i między zespołami oraz danie im swobody i zaufania (oczywiście pozostając czujnym jak spławik 😊).


Jakie masz doświadczenia i przemyślenia w tym temacie? Podziel się nimi w komentarzu.


コメント


bottom of page