Я маю згоду з Конрадом Рудольфом. Існує "Один біт" інформатики, який ви повинні знати, щоб зробити вас кращим "реальним програмістом світу". Якщо ви більше нічого не відволікаєте від відповідей, які ви отримуєте тут, принаймні врахуйте це. Задоволення вимог НЕ таке, як задоволення клієнта! Кінцеві користувачі завжди будуть намагатися використовувати вашу програму так, як ви ніколи не думали і не кодували. ВЖЕ, ВЖЕ, ВЖЕ.
Тому, щоб бути кращим програмістом, спочатку потрібно СПИСОКУ. Слухайте клієнта. Прислухайтеся до їх потреб. Слухайте їхні бажання. І особливо, прислухайтеся до їх рівня "техні-пертіз". Я не можу вам сказати, скільки разів я бачив побудований проект, який був саме таким, що просили, але зовсім не те, що клієнт насправді потребував. Все тому, що програміст, що збирав запити, насправді не слухав.
Ще щось, що ви можете забрати - це, якщо ви не маєте досвіду в дизайні інтерфейсу, заручте когось, хто розробить дизайн інтерфейсу користувача. Я ВЖЕ МОЖУ побачити додаток, де інтерфейс призначений програмістом, а не експертом. Те, що для вас логічно і має сенс, не матиме сенсу для клієнта. І, якщо ваші клієнти не є смачними, (а хто це?), То ваше "функціонально правильне, але естетично некрасиве" рішення буде зустрінене теплом скунсу на вечері.