Projektowanie (czegokolwiek) jest negocjacją między potrzebami różnych interesariuszy (klienta, programisty, użytkowników). Żaden z interesariuszy zazwyczaj nie jest w stanie stworzyć najlepszego projektu, ponieważ zazwyczaj najlepiej rozumieją własne potrzeby i stawiają je ponad potrzebami innych interesariuszy. Dobry projektant może zidentyfikować potrzeby różnych interesariuszy - często potrzeby, których sam interesariusz nie zdaje sobie sprawy, że je ma - i zaproponować rozwiązanie, które działa dla wszystkich.
Prawdopodobnie sam to widziałeś wiele razy. Użytkownicy myślą o tym, jak muszą wchodzić w interakcje z systemem, zwykle w kontekście innego systemu, który już znają. Programiści myślą przede wszystkim o tym, jak działa system. Klienci zwykle chcą czegoś, co rozwiąże wszystkie ich problemy, lub też chcą rozwiązać bardzo specyficzny problem za jak najmniejszy koszt.
Aby zostać dobrym projektantem, musisz nauczyć się przestać myśleć o tym, jak coś zaimplementujesz. Zamiast tego musisz skupić się na tym, co inni interesariusze mówią ci o tym, czego potrzebują i chcą, i musisz umieć czytać między wierszami. Podobnie jak programiści, klienci i użytkownicy często mają na myśli pewne z góry przygotowane rozwiązanie i zwykle opisują to rozwiązanie zamiast podstawowych wymagań. (To powiedziawszy, ważne jest, aby zdawać sobie sprawę, że czasami klient ma na myśli to, co mówi, gdy mówi dokładnie to, czego chce; jeśli nie jesteś pewien, zapytaj).
Mówiąc bardziej powierzchownie, estetyczny wygląd interfejsu użytkownika jest również czymś, z czym niektórzy programiści mają problemy. Myślę, że jest to częściowo spowodowane tym, że programiści często nie mają dużego przeszkolenia w zakresie estetyki - studenci CS mogą nie mieć dużo czasu na zajęcia plastyczne. To również częściowo dlatego, że bardziej interesuje nas to, jak coś działa, niż to, jak to wygląda; po prostu nie obchodzi nas, czy rogi przycisku mają promień 9 pikseli, czy promień 10 pikseli. Te dwa czynniki są z pewnością powiązane. Czasami można temu zaradzić, polegając na rozwiązaniach w postaci konstruktorów interfejsu użytkownika, a użycie wstępnie zaprojektowanych komponentów ma tę zaletę, że ujednolica wizualnie własną pracę z innymi aplikacjami w tym samym systemie. Możesz poprawić swoje umiejętności estetyczne, czytając, patrząc na prace innych ludzi, zwracając szczególną uwagę na szczegóły wizualne, które mogłeś zignorować w przeszłości. Powinieneś także spróbować zrozumieć logikę różnic wizualnych: czy kwadratowe przyciski oznaczają coś innego niż zaokrąglone przyciski? Jak używany jest kolor? itp.