Ответ на оба варианта этого вороса заключается в том, что я пришёл к выводу, что наиболее важные решения не являются техническими. Это голословное и смелое утверждение, так что давайте я объясню.
Летом 1993 я откликнулся на объявление в газете, в котором искали «хакера для 6502» (что мне показалось забавным; Pentium был выпущен в том же году) и получил работу в маленькой компании неподалёку от Сиэттла, в которой писали игры для Super Nintendo. Я занимался разработкой игр и до этого, но тогда я работал в одиночку в комнате моих родителей.
Первой игрой для SNES, над которой я работал, был платформер на сюжет «Тарзана» по соглашению с Эдгаром Берроузом (он не был связан с Диснеевским фильмом, который вышел шестью годами позже). Было весело делать так, чтобы тропические рыбки двигались косяками, и задавать поведение животных, например, обезьян и птиц. Это было прекрасное место для работы: около десятка программистов вместе сидели в одном большом зале.
Единственная проблема была в том, что игра однозначно получалась ужасной. Она была просто нагромождением клише из других платформеров, и это не было весело. Все программные трюки, и оптимизация, и улучшение поведения обезьян, похоже, не могли изменить ситуацию. Чтобы на самом деле исправить игру, необходимо было на уровне всего проекта переосмыслить задумку. Как «хакер для 6502», я не имел возможности принимать такие решения.
Несмотря на то, что это весело — обсуждать, должно ли приложение быть реализовано на Ruby или на Clojure, писать красивый и краткий код, изучать, насколько далеко можно зайти с чисто функциональным программированием, — это всё второстепенные вопросы по сравнению с определением user experience, разработкой удобного интерфейса, поддержанием простоты и понятности в проекте, уверенностью, что ты делаешь что-то, что действительно удобно тем людям, для которых оно делается. Это всё более важные решения.
А что же случилось с той игрой про Тарзана? Несмотря на то, что она получила обзор в Nintendo Power, издатель принял мудрое решение заплатить за потраченный на разработку год и сдать законченный проект в архив.

