Есть одна идея, которую я часто рассказывал инженерам в последнее время, и я думаю, что она заслуживает более широкой аудитории.
Когда вы занимаетесь инженерной работой, у вас есть разные виды задач. Некоторые задачи — аварии или тактическая работа. Мы часто называем это "тушением пожаров", особенно когда работа связана с срочной починкой или ее нужно выполнить незамедлительно.
Другие задачи — стратегические. Вы собрали со своих пользователей информацию, что им нужно/они хотят, вы разработали решение, и теперь вы реализуете его — методично и систематически.
Важно понимать, каким видом работы вы занимаетесь в данный момент, и думать о
ней соответственно.
Пожары
Когда вы тушите пожар, ваша цель — потушить пожар. Вы хотите совершить минимальные необходимые усилия, чтобы уничтожить огонь и вернуться к долгосрочной стратегической работе. Вы не хотите строить большие сложные системы, которые останутся жить навечно, просто чтобы потушить пожар. Во время аварии вы делаете наколеночные, костыльные, "quick and dirty" решения. Это не значит, что вы должны делать плохую работу. Но вы не должны строить долгоживущую, высокоэффективную систему для тушения этого конкретного пожара.