W Scrumie lub zwinnym nie ma koncepcji „wyraźnej wizji architektury”!
Od dawna jestem architektem i jest dla mnie jasne, że aby mieć wizję architektoniczną, trzeba mieć jasny obraz przyszłych wymagań. Ponieważ w większości przypadków wymagania wcale nie są jasne, nie ma sensu mieć stałej wizji.
Konieczne jest posiadanie architektury wystarczająco dostosowalnej do zmieniających się wymagań. Innymi słowy, rzeczy się zmieniają i zmienia się architektura - nie opowiadam się za „miękką” architekturą, którą można zmienić. Mówię o zaakceptowaniu tego, że architektura, którą dziś mamy, wkrótce stanie się przestarzała i będzie musiała zostać zmieniona, więc nikt nie powinien się z nią „żenić”.
Wspólne posiadanie kodu oznacza, że każdy powinien - teoretycznie - być w stanie zmienić wszystko. Należy to rozumieć jako „przeciwieństwo silosów”. Innymi słowy, może istnieć bariera umiejętności, która jest normalna i oczekiwana - nie każdy jest doświadczonym DBA, który może precyzyjnie dostroić zapytania SQL, aby dać przykład - ale z tego nie wynika, że tylko DBA może ręczne optymalizowanie zapytań. Będzie „ekspert w dziedzinie funkcji”, który może pomóc innym ludziom w osiągnięciu biegłości, ale zadania powinny nadal spoczywać na wszystkich.
Na przykład: jeśli jestem ekspertem w dziedzinie funkcji „A”, nadal oczekuję, że ktokolwiek będzie pracował nad funkcją „A”, ale prawdopodobnie będę się konsultować, gdy będą potrzebne poważne zmiany lub ludzie będą potrzebować pomocy. Funkcja „A” z pewnością nie byłaby moją funkcją. To będzie funkcja, którą dobrze znam. Moim zainteresowaniem będzie poznać wiele innych funkcji, a zainteresowaniem innych osób - znać tę funkcję.
Podsumowując: architektura jest projektowana i przeprojektowywana wiele razy przez programistów w miarę pojawiania się i zmieniania wymagań. Oczekuje się, że każdy dokona niezbędnych zmian zgodnie ze swoimi umiejętnościami i będzie wiedział, kiedy poprosić o pomoc. Nie ma długoterminowej wizji architektury, ponieważ ufamy ludziom i nie ufamy wymaganiom .