Определите, что замедляет развитие

Мир огромен, и я не стану тратить свою жизнь на трения, когда их можно превратить в импульс. Фрэнсис Э. Уиллард

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

Разработка программного обеспечения — это процесс. Выявление причин трений и устранение того, что замедляет разработку, может быть более эффективным, чем ускорение написания кода.

Потерян в море

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

Как объясняет Дава Собель

«Чтобы узнать свою долготу в море, нужно знать, который час на борту корабля, а также время в порту приписки или в другом месте с известной долготой — в тот самый момент. Два часовых пояса позволяют навигатору преобразовать разницу в часах в географическое разделение. Поскольку Земля совершает оборот на 360 градусов за 24 часа, один час составляет 1/24 оборота или 15 градусов. Таким образом, каждый час разницы во времени между кораблем и отправной точкой означает продвижение на пятнадцать градусов долготы на восток или запад.

«Каждый день в море, когда штурман переустанавливает часы своего корабля на местный полдень, когда солнце достигает своей высшей точки в небе, а затем сверяется с часами в порту приписки, каждый час расхождения между ними переводится на пятнадцать градусов долготы. Один градус долготы равен четырем минутам времени во всем мире, хотя с точки зрения расстояния один градус сокращается с 60,15 морских миль или 111 км (окружность Земли составляет 21 653,521 морских миль, или 24 901,55 статутных миль на экваторе), практически до нуля на полюса.

Это была такая проблема до 18-го века, что огромное вознаграждение в размере 20000 фунтов стерлингов (сейчас 1 миллион) будет дано человеку, который сможет ее решить.

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

Часы в то время были маятниковыми часами, которые не работали в море, а изменения давления/температуры или качания влияли на части часов.

Джон Харрисон

Джон Харрисон производил часы с различными усовершенствованиями, например, со спусковым механизмом Кузнечик. Усовершенствования постепенно улучшили маятниковые часы (Дедушкины часы).

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

Харрисон сделал свои первые три морских хронометриста H1, H2 и H3. Это были большие неуклюжие штуки, но они работали. Первыми морскими часами Харрисона были H4, они имели диаметр 13 см и прослужили 30 часов.

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

Именно на этом этапе многие люди отвергают эту идею, сосредотачиваясь на ограничениях, а не на потенциале.

Это произошло с

  • Интернет
  • Смартфоны

Гениальный изобретатель часов Харрисон сделал первые надежные часы, но они были большими и дорогими. Он был сделан из дерева, потому что дерево не ржавеет и самосмазывается!

Позже он использовал металлы, смешал некоторые из них, которые расширяются, и некоторые, которые не расширяются, чтобы получить лучшее целое.

Хронометр (причудливое название от часов, используемых на лодке) занял годы и стоил сотни фунтов. В 1780-х годах это занимало неделю и стоило 65 фунтов стерлингов.

Заводской метод

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

Машины были дорогими, и на их изготовление уходили недели. Рабочие все работали вокруг машины, мешали друг другу.

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

Генри Форд ненавидел эту идею, и потребовались недели, чтобы его убедили попробовать.

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

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

DevOps

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

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

У DevOps есть и другие преимущества, потому что сложное делается редко. Если ручное развертывание занимает часы, оно будет выполняться редко. Вы не узнаете, прерывается ли развертывание до тех пор, но чем дольше вы откладываете изменения, тем больше.

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

Более быстрое развертывание, более быстрое тестирование с меньшими затратами времени.

Разногласия при разработке программного обеспечения

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

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

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

Когда нет процессов или стандартов, другие элементы, не связанные с кодированием, либо не выполняются, либо выполняются по-другому. Это добавляет трения в команду разработчиков программного обеспечения.

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