Na 4Developers odbył się Panel dyskusyjny nt. architektury, architektów i architekcenia:). Trudno powiedzieć, żebyśmy udzielili odpowiedzi na jakieś konkretne pytania, ale było miło. Chociaż padało pytanie o rolę/stanowisko architekta i jego miejsce w procesie, to wydaje mi się, że byłem odosobniony w zdaniu, że bez tradycyjnego architekta można się obejść. Podłapałem tę myśl od Scotta Amblera i po moich doświadczeniach z różnymi zespołami jestem przekonany, że to ma sens.
Ankietowałem kiedyś obsesyjnie, architektów (różne stanowiska różnie się się w firmach nazywają i mimo istniejących jakichś tam typologii, każdy nazywa je sobie po swojemu), aby namierzyć, co konkretnie robi osoba określana jako „architekt”. Zbiorcze zestawienie przedstawiam poniżej.
Jaki jest Twój zakres obowiązków jako Architekta? |
|
Z jakimi pytaniami należy zwracać się do Architekta? |
|
Z jakimi pytaniami NIE należy zwracać się do architekta? |
|
Jeśli popatrzeć na wymienione obowiązki, to trudno oprzeć się wrażeniu, że z niemal wszystkimi z nich może sobie poradzić zespół jako taki i nie potrzeba do tego wydzielonego architekta. Jedyna różnica między w/w architektem a „zwykłym” programistą jest taka, że ma on architekt większe doświadczenie (ale nie to mierzone w latach) i większą wiedzę o systemie.
Wydaje się, że potrzeba powołania osoby w randze architekta wynika z potrzeby rozwiązania następujących problemów:
- niedostateczne komunikowanie architektury w zespole i pomiędzy zespołami
- brak nazwanego procesu rozwoju architektury działającego obok procesu dostarczania; o tym procesie pisaliśmy/mówiliśmy w Ewolucyjna architektura: Jak zorganizować proces rozwoju architektury?
- Brak użytecznej (nie wciąganej z kodu przez EA) dokumentacji architektury; o tym pisaliśmy nieco w Dokumentowanie architektury, Dokumentowanie architektury cz.2
, Ewolucyjna architektura, Ewolucyjna architektura
Można odnosić wrażenie, że tego typu architekt został wymyślony po to, aby wyousourcować w/w problemy. Sęk w tym, że staje się on wąskim gardłem procesu. Po prostu nie nadąża z pracą. Wtedy trzeba powołać kolejnego i kolejnego i kolejnego. Po pewnym czasie okazuje się, że architekci zajmują się głównie sprawami organizacyjno-konfiguracyjno-spotkaniowymi, a programiści przestają czuć się odpowiedzialni za architekturę, gdyż ta „należy” do architektów. I wtedy koder zaczyna kodzić, architekt zaczyna architekcić, a architektura zaczyna dryfować.
Pierwszy punkt dlaczego potrzebujemy architekta: Żeby komunikował jaka jest architektura.
Fajnie to brzmi 🙂
Przynajmniej w kontekście, może źle pojmuję tezę, że architekta nie potrzeba.
Może by uporządkować dyskusję na blogu zrezygnujesz po prostu z pojęcia architektury, bo to się jednoznacznie kojarzy z architektem. Taki problem z wykorzystywaniem ogólnie znanych słów.
Ten sam problem mają testy. Było tego nie nazywać testem a specyfikacją miast dziwić się teraz, że każdy myśli o weryfikacji a nie projektowaniu korzystając z jakiegoś Xunita.
100% zgody – plus pojawiają się problemy z outsourcingiem do konsultantów. Jeśli wybierani są na podstawie wiedzy i doświadczenia to w pewnym momencie pojawia się konflikt architekt w korporacji macierzystej vs. specjaliści w firmie consultingowej.
Dobry post. (y)