Больше, чем строки кода, важен умственный подход

Движение научиться программировать убедило многих людей всех профессий в том, что им нужно научиться писать программное обеспечение. Но даже более важным, чем умение писать строки кода, является способность мыслить как лучшие из разработчиков. Этот уникальный способ мышления можно использовать во многих ситуациях, независимо от того, пишете ли вы когда-нибудь отдельную программу или нет.

Вкратце,

  • Ожидайте перемен
  • Приготовьтесь к худшему сценарию
  • Превратите одну большую проблему в несколько маленьких.
  • Автоматизируйте первые шаги
  • Доставлять

Ожидайте перемен

Работать с программным обеспечением - это прекрасно, потому что его легко изменить. Работать с программным обеспечением - это ужасно, потому что обычно так бывает.

Опытные разработчики облегчают себе жизнь, ожидая изменений и планируя их. Мы ожидаем, что требования, сроки, персонал и все остальное могут быстро измениться без предварительного уведомления.

Как мы приспосабливаемся к изменениям? Конечно, с дополнительным программным обеспечением! Мы ожидаем, что сам наш код будет меняться много раз каждый день, поэтому мы используем программное обеспечение управления версиями, такое как git, чтобы несколько изменений можно было объединить вместе, и мы могли продолжать работать. Мы узнаем, как использовать шаблоны проектирования для организации кода проверенными временем способами, чтобы большие участки нашего кода могли изменяться, не нарушая остальную его часть. Мы пишем код, который проверяет другой код, чтобы мы могли получать уведомления, если он делает что-то не то, что мы ожидаем.

Мы ожидаем изменений и строим наши рабочие процессы на их основе.

Готовьтесь к худшему

Пограничный случай: непредвиденная последовательность событий, которая приводит к нежелательной работе программного обеспечения.

Никто не хочет, чтобы что-то пошло не так, но опытные разработчики достаточно убедились в этом и создают системы, которые уведомляют и защищают их, когда это происходит.

В некотором смысле это кажется нелогичным. Опытные строители не ожидают, что дома рухнут. Строительные инженеры не ожидают, что мосты рухнут. Но лучшие инженеры-программисты лучше всех готовятся к неожиданным, внезапным и катастрофическим сбоям.

Опытные разработчики знают, что что-то пойдет не так, как сейчас невозможно представить. Лучшее, что я могу сделать, - это создать систему, которая сообщит мне, когда это произойдет. Тогда я смогу это исправить.

Netflix известен тем, что делает это хорошо. Они написали программное обеспечение, которое ничего не делает, кроме попытки уничтожить другое программное обеспечение, чтобы они могли видеть, правильно ли работают их системы восстановления.

Часть этого навыка - уметь думать о всех возможностях, которые могут пойти не так. Что, если сеть выйдет из строя? Может ли кто-нибудь ввести действительно длинное слово без пробелов? Могу ли я встретить забавных персонажей? Думать таким образом настолько сложно, что команды разработчиков программного обеспечения часто нанимают целую группу людей (тестеров QA), которые ничего не делают, кроме как думают об этих наихудших сценариях.

Превратите одну большую проблему в несколько маленьких.

Разобрать: разбить сложную сущность на несколько более простых элементов.

Разработчики стремятся решать большие проблемы. Иногда они настолько велики и сложны, что их слишком сложно рассматривать как единую проблему. Итак, мы учимся решать сложные проблемы, перефразируя их как несколько небольших задач. Затем каждая из этих более мелких проблем может быть решена отдельно, иногда в более простом порядке, или несколькими разными людьми.

Автоматизируйте первые шаги

Десять лет назад присоединение к новому проекту с открытым исходным кодом или начало новой работы требовали нескольких дней установки программного обеспечения. Разработчик Зед Шоу рекомендовал вам потратить 40 часов на настройку нового сервера Ruby on Rails.

Сегодня все основные языки программирования включают возможность установки всех зависимостей с помощью одной команды.

Новые разработчики на GitHub, Thinkbot и в других местах запускают одну команду, чтобы установить все программное обеспечение, необходимое для начала кодирования. В их первый день.

Зачем кому-то тратить время на создание такой системы? Это значительно упрощает приглашение кого-либо к совместной работе над проектом с открытым исходным кодом или добавление нового разработчика в команду, на полную ставку или по контракту.

Какие шаги необходимо выполнить, чтобы начать работу над проектом, которым вы управляете? Можно ли это автоматизировать или хотя бы задокументировать?

Доставлять

Разработчики мотивированы завершением проектов и передачей их в руки клиентов. Это часто имеет большее для них значение, чем получение признания или признание. Это называется доставка.

Описывая проект, который продолжается и продолжается, не приходя к выводу, разработчики часто преувеличивают и называют это маршем смерти, слова, которые чаще используются для описания геноцида, а не отказа скопировать код на сервер.

Разработчики говорят о разочаровании и выгорании из-за невозможности завершить проект.

Это стремление к завершению, доставке, развертыванию и отправке лежит в основе того, о чем разработчики думают каждый день.

Изначально опубликовано на сайте topfunky.com 23 сентября 2016 г. Следите на Medium или подпишитесь на мой информационный бюллетень, чтобы получать новые сообщения!