Obecnie jestem w trakcie aktualizacji dokumentu projektowego, aby był poprawny i aktualny dla przyszłych programistów.
Obecnie dokument koncentruje się tylko na faktach, przedstawiając projekt. Nie ma uzasadnienia dla jakichkolwiek przedstawionych decyzji. Uważam, że ważne jest uchwycenie uzasadnienia, aby programiści wiedzieli, dlaczego coś takiego jest, ponieważ prawdopodobnie wpłynie to na przyszłe decyzje. Nie mogę dodać uzasadnienia dla wszystkich decyzji projektowych, szczególnie tych, które zostały podjęte przed rozpoczęciem pracy nad projektem, ale robię, co mogę w tym dziale.
Jednak niektóre decyzje projektowe są, z szacunkiem, bardzo złymi decyzjami, biorąc pod uwagę wymagania projektu. Ale są też dobre.
Początkowo myślałem, że powinienem omówić problemy projektowe i potencjalne rozwiązania lub obejścia tych problemów, aby zwrócić uwagę przyszłych opiekunów, ale nie jestem pewien, czy dokument projektowy jest miejscem dla tego rodzaju dyskusji i informacji. Nie chcę, aby „krytyka” projektu zmieniła się w „zgrywanie tego projektu na nowy”, ponieważ inni ludzie pracują w tym systemie i aktualizują dokument, ponieważ jest to wyraźnie nieodpowiednie.
Mój kierownik poparłby każdą decyzję, więc to zależy ode mnie. Niezależnie od przyjętego przeze mnie podejścia opracowany dokument byłby oficjalnie wersjonowany i udostępniany programistom pracującym w systemie, zwykle przed zleceniem pracy programistycznej. Oczekuje się, że nowy programista zapozna się z dokumentami związanymi z danym systemem oprogramowania przed rozpoczęciem prac programistycznych.
Pytania:
- Czy dokument projektowy powinien trzymać się surowych faktów („to jest projekt”) i uzasadnienia („oto dlaczego jest to projekt”), czy też powinien zostać wykorzystany do wskazania nie wadliwych problemów z projektem, które mogą być problematyczne dla przyszli programiści?
- Jeśli dokument projektowy nie powinien być używany do przechwytywania tych informacji, jaki typ dokumentu powinien je przechwycić, a co jeszcze należy uchwycić, omawiając uzasadnienie projektu, kompromisy i znane problemy (które nie są wadami, ponieważ wady są śledzone używasz innych narzędzi)?