Не оптимизируйте скорость

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

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

Люди, а не только инженеры, любят запоминать вещи в звуковых отрывках - коротких фразах, которые легко запомнить и отрыгнуть. Затем эти фразы используются неправильно или используются повторно, и исходное сообщение теряется. При подмене мышления творца нашим собственным мышлением иногда сохраняется противоположное послание.

В программном обеспечении и стартапах переоцененная фраза звучит так:

Преждевременная оптимизация - корень всех зол.

Эта фраза идеально подходит для тех, кто неправильно употребляет или интерпретирует по-другому, чтобы поддержать свое дело. Переработанное сообщение:

Не беспокойтесь об оптимизации. Оптимизация - это большая проблема.

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

Мы должны забыть о небольшой эффективности, скажем, в 97% случаев: преждевременная оптимизация - это корень всех зол. Тем не менее, мы не должны упускать наши возможности в этих критических 3%.

Фактическое сообщение:

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

Повторное использование и перепрофилирование языка - это предвестник гибели.

Используйте другое программное обеспечение для кредитного плеча

Необходимость поддерживать программное обеспечение, написанное инженерами, которые не использовали известное программное обеспечение, разочаровывает. Легко попасть в ловушку инженерной скорости: выбирая краткосрочную скорость вместо долгосрочного обслуживания. Это ложная дилемма. Хотя приятно говорить, что вы быстро строите, но это не так. Инженеры говорят, что мы сознательно выбрали оптимизацию по скорости, чтобы решить проблему позже. Не делайте этого. У вас НИКОГДА не будет времени исправить проблему.

Вот некоторые примеры домашнего программного обеспечения, которые я видел:

  • регистратор
  • неизменное хранилище данных
  • Собственная база данных
  • очереди
  • Файловый ввод-вывод

Старшие инженеры указывают на проблемы в этих наивных реализациях. Почему бы инженеру не использовать признанное в отрасли программное обеспечение, которое извлекает выгоду из многолетней разработки? Годы, когда кто-то думает о проблеме. Годы проверки, поддержки и исправления ошибок в своем пакете? Либо эго, либо невежество.

К тому времени, когда старшие инженеры указали на проблему, эти системы распространились по системе, как рак. Это усики, обвивающие все вокруг. Удаление занимает больше времени, чем создание в первую очередь, поэтому система задерживается. Продолжая расти в системе.

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

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

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