Kiedy projektuję programy, najpierw projektuję interfejs użytkownika za pomocą prototypowania papieru. Testuję prototyp interfejsu użytkownika, aby użytkownicy mogli z nim osiągnąć swoje cele. Posiadanie czegoś konkretnego/widocznego do pokazania użytkownikom i klientom ułatwia zbadanie wymagań i sprawdzenie, czego naprawdę potrzebują użytkownicy.
W fazie projektowania interfejsu (analiza wymagań) zawsze staram się zaprojektować idealne rozwiązanie. Nie biorę pod uwagę tego, jak trudno byłoby zaimplementować jakąś funkcję. Następnie, gdy projekt ustabilizuje się na tyle, że można go wdrożyć (zwykle zajmuje to tydzień lub dwa), omawiamy z klientami i programistami, ile zajmie wdrożenie rzeczy i które rzeczy są najważniejsze.
Ponieważ najpierw zaprojektowaliśmy idealne rozwiązanie, widzimy cały obraz tego, co jest potrzebne, i możemy zacząć dostosowywać zakres projektu, tak aby najpierw zostały wdrożone tylko najważniejsze funkcje. Także, jeśli niektóre z idealnych projektów interfejsu użytkownika byłyby zbyt drogie w implementacji, możemy stworzyć skompromitowany projekt, który ma nieco mniejszą użyteczność, ale jest znacznie tańszy w implementacji. Projektant interfejsu użytkownika jest zawsze osobą, która projektuje kompromis (tj. Nie programistami), tak aby spełniała wszystkie wymagania, a jego użyteczność będzie wystarczająco dobra.
"Inżynieria wsteczna" oznacza coś zupełnie innego, FYI. Odnosi się do wykorzystania istniejącego artefaktu jako przewodnika do budowy własnej implementacji tego. – chaos
Zamierzam edytować pytanie, aby to odzwierciedlić; edytuj moje zmiany, jeśli źle je polubisz. – chaos
Aby dowiedzieć się więcej na ten temat, sprawdź to pytanie: http://stackoverflow.com/questions/130933/design-coding-top-to-bottom-or-bottom-to-top – chaos