Разработка через гамак

Ричард Хикки (создатель языка программирования Clojure) провел очень интересный доклад о решении задач под названием «Разработка через гамак». Ричард говорил больше с личной (эмпирической) точки зрения. Это пока не очень признано академично, но вписывается в некоторые исследования в области мозга. Поэтому доклад не особо научный, но в то же время дает достаточно хорошую пищу для размышлений.

[youtube video=»f84n5oFoZBc»]

Выводы:

  • Не бросайтесь сразу программировать. Лучше для начала:

    1. Определите задачу которую вы хотите решить. Цель разработчиков это решение задач и между делом создавать функции(программы) которые их решают. Ричард рекомендует начинать работу над задачей путем ее озвучивания команде или даже лучше записать ее (что, впрочем, применим к любому шагу описному ниже).
    2. Поймите задачу полностью
      1. Факты - что вы знаете о задаче? (например, требования бизнеса).
      2. Контекст - соответствующая справочная информация. (например, ваша команда использует эту ОС/фреймворк, и они смогут быстро разобраться в подобном)
      3. Ограничения - неявные жесткие требования. (например, система должна быть масштабируемой до 10к конкурентных пользователей или должна быть 99.99% доступной)
      4. Существуют ли вещи о которых вы не знаете? (например: откуда берутся данные? что случиться когда сервис не будет доступен?)
      5. Есть ли решения для похожих задач? (например: применимая открытая библиотека адресов)
    3. Глубоко изучите потенциальные решения:
      1. Какие могут быть проблемы у ваших решений?
      2. Какие здесь компромиссы? (все имеет компромиссы)
      3. Вопросительные знаки. (что вы еще не знаете?)
    4. Переключайтесь между изучением и отдыхом.
      1. Дайте задачу своему подсознательному: изучить много (читайте статьи, ищите схожие задачки и рецензируйте их решения)
      2. Позвольте подсознательному впитать: никакого изучения, просто медитируйте или сосредоточьтесь на полученной информации.
    5. Выспитесь хорошенько - пускай мозг сделает свою важную работу!
      1. Выспитесь хотя бы одну ночь перед принятием важных решений.
  • Фокусировка на вещах требует времени. Вы неизбежно допустите ошибки на определенных вещах, это нормально. Но скажите людям, что вам нужно сфокусироваться на чем-то.
  • Не опирайтесь на обратный отзыв при разработке (например при ТДД) - это определенно важно, и вы пройдете через итерацию, но вместо того, чтобы полагаться на обратный отзыв, лучше фокусироваться на предыдущих шагах.
  • Не бойтесь делать ошибки. Требования изменятся. Вы придумаете лучшую идею - и это нормально.

Фото: messymama.wordpress.com
оригинал

Добавить комментарий