Powód, dla którego uważasz to za tak trudne, jest taki, że masz pomysł, ale tak naprawdę nie masz pełnego pojęcia, co chcesz zrobić. Jeśli wykonujesz własny projekt i nie masz klienta, który powiedziałby ci, czego chce, to od ciebie zależy, czy będziesz własnym klientem. Postaw się w sytuacji klienta i zacznij budować niemożliwą listę życzeń.
Innymi słowy, kiedy zaczynasz Nie projektuj NIC !!! .
Gdy będziesz mieć dużą listę rzeczy, które chcesz, aby system robił, ustal priorytetyzację wszystkiego i zdecyduj, jaka będzie minimalna funkcjonalność, aby uruchomić podstawowy system. Może to być pojedyncza podstawowa funkcja lub cały ekran, ale musi to być coś, co czujesz - jako klient - będzie wystarczająco przydatne do przetestowania.
Zatem lista życzeń funkcji + podstawowe priorytety = wymagania .
Kiedy już to wszystko zrobisz, zrób projekt na bardzo wysokim poziomie. Po prostu usiądź i zastanów się, czego twój system będzie potrzebował, aby uruchomić kilka pierwszych priorytetów. Zmień zdanie, jeśli chcesz, ale tutaj możesz poprawić kod lub konfigurację systemu, aby dowiedzieć się więcej o tym, co jest możliwe. Idź tylko wystarczająco daleko, aby zweryfikować swój podstawowy pomysł na projekt.
Tj .: TERAZ możesz zaspokoić potrzeby projektantów .
Po zakończeniu zaczniesz wdrażać swoje funkcje. Utwórz dla każdej funkcji podstawową specyfikację funkcjonalną. Może to być tak proste, jak zbiór instrukcji funkcji. Karty opowieści, jeśli chcesz. To pozwala ci nieco rozwinąć swój pomysł w głowie i stworzyć zestaw instrukcji, które staną się specyfikacją , na której będziesz testować i budować swoją implementację.
Płacz Havoc, wypuść psy ... Code !!
Następnie zaimplementuj testy zgodne ze specyfikacjami, a następnie dla każdego testu napisz kod. Buduj, „wypuszczaj”, a następnie powtarzaj z następną funkcją, aż zdecydujesz, że projekt jest wystarczająco kompletny.
To naprawdę sprowadza się do doświadczenia, ale to podejście, które znalazłem, jest prostą formułą, która pomaga skoncentrować umysł na tym, co należy zrobić, zamiast uwięzić się w niekończącym się cyklu zwlekania z powodu próby zrobienia zbyt wiele wszystkiego na pewnego razu.