Zarządzanie projektem zgodnie z różnymi metodykami można streścić w kilku punktach

  • Zbieranie pomysłów
  • Przygotowanie projektu teoretycznego
  • Przygotowanie interfejsów i modeli
  • Przygotowanie testów
  • Kodowanie i ciągłe testowanie
  • Oddanie kolejnej wersji/prototypu i przejście do pkt. 1

Obecnie pracuję nad narzędziem do robienia testów. Takich szkolnych, a nie JUnitowych. Postanowiłem jednak sprawdzić tu pewną metodykę. W pierwotnych zamierzeniach jest to pewna odmiana prototypowania lecz nie opiera się ona o klasyczne założenia.

Mój prototyp jest…

Ciężko powiedzieć na pierwszy rzut oka czym jest ten prototyp. Nie prototypuję tu funkcjonalności aplikacji lecz funkcjonalność kodu. Na czym to polega? W pierwszym kroku przygotowuję model, czyli obiekty biznesowe. Tylko za ich pomocą staram się napisać prostą konsolową aplikację, która będzie realizowała podstawowe cele głównego projektu.
W kolejnym kroku wybieram z mojej aplikacji wszystkie te elementy, które wiem, że będą wspólne dla różnych rodzajów aplikacji. Tak rodzą się interfejsy modelu. Są to specyficzne twory, które wiadomo, że są potrzebne w końcowym produkcie, ale różnią się implementacją na całej linii.
W następnym kroku poprawiam moją aplikację tak by wprowadzić nowe interfejsy.
Kolejnym krokiem jest wyciągnięcie z mojej aplikacji zmian w modelu. Zazwyczaj w tym miejscu pojawiają się potrzeby związane z przyjaznym tworzeniem kodu. Dodawane są nowe konstruktory, zmieniane sygnatury metod.
W kolejnym kroku staram się wyciągnąć pewne interfejsy odpowiedzialne za obsługę działań – kontrolery.
Kontrolery są już zazwyczaj zależne od tego jaką aplikację tworzymy (web, swing, konsola). Jednak na tym etapie pojawiają się też pewne niezależne elementy, które pozwalają na kontrolowanie działań biznesowych. Na przykład dodawanie pytań i odpowiedzi.
Kolejny krok to obiekty odpowiedzialne za transmisję danych. Różne technologie przekazują dane w różny sposób, ale można na tym etapie postarać się prowadzić pewne kontenery danych, one też należą do modelu.
Ostatnim krokiem jest przygotowanie walidatorów. Są one narzędziami niezależnymi od technologii i można je wyciągnąć do osobnej paczki.
Na tym kończę tworzenie pierwszego prototypu.

Co mam

  • Wyklarowany model biznesowy.
  • Najprostsze narzędzia – walidatory
  • Najpotrzebniejsze interfejsy biznesowe
  • Mogę skupić się na poprawianiu kodu

To podejście pozwala na estymację obiektów dziedziny biznesowej w momencie gdy nie mamy projektu lub jest on zbyt ogólny.

W kolejnej części pokarzę jak to jest realizowane w praktyce.