Mamy nowy projekt, w tej chwili programiści zostali podzieleni na dwa zespoły, zespół A i zespół B. Projekt składa się z 2 części, które wymagają rozwoju w całym stosie programistycznym. Bardzo uproszczona próbka naszego stosu pokazana poniżej:
Każda część projektu wymaga opracowania na całym stosie, więc zwykle oczekiwałbym podejścia programistycznego opartego na pełnym stosie, czyli w jaki sposób dzielimy naszą pracę w zespole B, projektując i opracowując interakcje między różnymi częściami.
Niedawno dowiedziałem się jednak, że zespół A chce kierować niektórymi częściami stosu, i proponują podział między dwoma zespołami, w których warstwą abstrakcji danych (i umieszczaniem zawartości w warstwie danych) zajmuje się sami bez rozwoju zespołu B. Podział wyglądałby podobnie do tego:
Dla mnie jest to bardzo nienaturalne. Każda drużyna ma różne cele i harmonogramy, aby je osiągnąć, ale Drużyna B będzie zależna od Drużyny A w zakresie wdrażania funkcji. Proponowane rozwiązanie polega na tym, że wspólne interfejsy są definiowane z góry (prawdopodobnie projekt ma 2 lata, więc mogą być liczne). Drużyna A opracuje następnie wymagane fragmenty tych interfejsów wcześnie, pomimo posiadania własnego zestawu bramek, podczas gdy Drużyna B usunie wszystkie wezwania na najbliższy krótki okres, aby mogli się rozwijać.
Mam obawy dotyczące tego podejścia dotyczącego:
- Interfejsy mogą się zmieniać, a Zespół A może nie mieć przepustowości lub czasu, aby dostosować się do zmieniających się wymagań.
- Błędy w kodzie Drużyny A mogą uniemożliwiać postęp Drużyny B, i znowu może nie być priorytetem ich naprawy, ponieważ Drużyna A ma inną kolejkę priorytetów.
- Brak wiedzy rozprzestrzenił się na zespoły - Zespół B może nie w pełni zrozumieć, co dzieje się pod maską i może z tego powodu podejmować złe decyzje projektowe.
Sugerowano, że wiele firm w branży ma podgrupy i musi być w stanie sobie z tym poradzić. Z mojego zrozumienia, ogólnie zespoły są albo podzielone, jak początkowo oczekiwałem (pełny stos), lub przez rozbicie stosu technologii, jak poniżej:
Jestem więc zainteresowany tym, co robi reszta przemysłu. Czy większość podziałów jest pionowa / pozioma? Czy podział po przekątnej ma sens? Jeśli miałby nastąpić podział diagonalny, czy moje obawy wydają się uzasadnione i czy jest coś jeszcze, o co powinni się martwić Drużyna B? Należy zauważyć, że prawdopodobnie będę odpowiedzialny za sukces lub porażkę zespołu B.