На днях совершенно неожиданно пришла в голову догадка, дающая ответ на вопрос, нахрена разработчикам все время неймется и они переделывают программы, делая их неудобными и непривычными.
Меня как пользователя вполне удовлетворял ненавязчивый интерфейс MS Word с менюшками (да, они были нелогично расположены, да, хрен запомнишь, что где, но сейчас с этими риббонами это просто мрак!), очень простой и читабельный интерфейс Gmail почты (где буквами написано "spam" на кнопках и не надо тратить две секунды, соображая, корзина - это удалить или обозначить как спам), ну и интерфейсы других программ - ровно до тех пор, пока они не были искорежны безжалостными руками разработчиков, желающих придать программе "новый, удобный и совершенно интуитивно понятный интерфейс". Ага, щаз.
Нет, ну понятно, бывают ошибки, баги, ну так мы как опытные пользователи уже знаем, как с ними бороться, просто не надо сюда вот нажимать, а сюда не надо ходить, когда... и т.д., ну могли бы исправить баги, зачем все переделывать-то?
И вот теперь я знаю, зачем. Потому что я сама такая. На какое-то время интерес к собственному детищу у меня был утерян, но он возобновился ровно в тот момент, когда я поняла, что могу использовать другой движок. Да-да, другой движок, он позволит программе работать лучше, стабильнее, код будет выглядеть красивее, ошибок будет меньше... оказывается, все просто. Пользователям не надоедает пользоваться любимыми программами, они привыкают к ним, к их ошибкам (а у кого нет недостатков?!), а вот разработчиков со временем начинает тошнить от собственного кода. Да, они тоже любят свои программы, но им надоедает возиться с ними, вылавливать и исправлять баги, менять что-то по мелочи и т.д. А вот когда представляется возможность замутить что-то совсем новое, это да! Пусть на старой базе, но новое, более крутое! Это, что ни говори, challenge, а к таким вещам у всех разработчиков слабость.
И вот отсюда следует простой вывод. Разработчики и пользователи стоят по разные стороны баррикад. У них совершенно разные цели, практически не имеющие общих точек. Именно поэтому разработчики так плохо понимают пользователей, а пользователи не в состоянии уловить замыслов разработчиков. Именно поэтому так много появляется уродов, неудобных и непрактичных, но поскольку они все-таки способны решать поставленные задачи (часто при отсутствии альтернатив), то пользователи это съедают, и мучаются, но потом все-таки даже к уродам привыкают и зачастую работают с ними не без удовольствия. Катастрофа случается в тот момент, когда и самому разработчику начинает казаться, что все, что он написал - уродство, и надо сделать по-другому, при этом разработчик исходит исключительно из своих интересов. У него интерес - использовать новый движок, изучить новую технологию, применить новые знания на практике. О таких скучных вещах, как удобство пользования, он просто не задумывается. Может быть, потому, что сам программой не пользуется, может быть, из-за того, что для него "удобство" выражается в чем-то другом, в конце концов, он свою программу знает вдоль и поперек, и поэтому не испытывает никакого дискомфорта.
Таким образом, получается, что разработчику, чтобы сделать по-настоящему хорошую программу, нужно обязательно взглянуть на нее глазами пользователя. Это очень трудно, практически невозможно. Ну хорошо, в крайнем случае внимательно послушать, что говорят пользователи, чем они недовольны, и почему. Только так получится не только удовлетворить собственные амбиции, но и сделать хороший продукт, что, в-общем, является более главной задачей ;)