All we do is looking for some way to fulfill our needs.

niedziela, 5 lutego 2012

Tagged under: , , ,

No to jak to z tą architekturą - up-front design czy ewolucyjna architektura?

W jakim miejscu obecnie stoi architektura? Można powiedzieć, że mamy dwa klasyczne podejścia:
    • klasyczne, które każe starannie zaplanować możliwie wiele szczegółów (up-front);
    • zwinne, które każe podejmować decyzje najpóźniej, jak to możliwe i rozwijać architekturę poprzez refaktoring.
Jak to najczęściej się odbywa w projektach? W dużej części przypadków tworzy się projekt mniej lub bardziej szczegółowy (w stylu up-front) i tak już zostaje.
Z drugiej strony liczenie na to, że uda się rozwinąć dobrą architekturę tylko i wyłącznie organicznie, poprzez naturalną ewolucję, też zazwyczaj się nie udaje. W dużych projektach jest to wręcz niezwykle ryzykowne, gdyż prowadzi często do rozwiązań lokalnych, które w pewnym momencie należałoby całkowicie przepisać (co najczęściej się nie dzieje).
W praktyce zdecydowanie najlepiej sprawdza się mieszane podejście tzn. na początku projektu, releasu, iteracji, tworzy się koncept i projekt rozwiązania, który stanowi bazę i punkt odniesienia do prac projektowych. Nie musi, a nawet nie powinien być to niezwykle szczegółowy projekt. Z drugiej strony nie należy zakładać że to, co zostało wymyślone na początku, będzie doskonałym rozwiązaniem, dlatego w ramach prac projektowych, dokonujemy bieżącej lokalnej modyfikacji założeń projektowych poprzez refaktoryzację.
Dzięki temu uzyskujemy naturalny proces rozwoju architekury, z jednej strony jest ona wstępnie zaprojektowana, dzięki czemu nie stracimy czasu i zasobów na ewolucyjne błądzenie. Ewolucję wykorzystujemy, to poprawienia pierwotnego projektu. Jeśli powiążemy to z procesem Naturalnego Porządku refaktoryzacji to jesteśmy w domu! Więcej w kolejnych wpisach.

Szkic procesu wygląda następująco:

1 komentarze:

qertoip pisze...

Mieszane podejście jest rzeczywiście optymalne. Można się tylko sprzeczać gdzie jest środek ciężkości. Ciekawa w tym kontekście jest debata Coplien vs Martin: http://www.infoq.com/interviews/coplien-martin-tdd