Поговорим про повторное использование труда. Когда-то давно я думал, что всё и всегда нужно делать максимально быстро. Ну, знаете, давать на гора максимум единиц. Оставь индукцию, оставь дедукцию, давай продукцию. Так появилось довольно много программ и систем, которые сейчас лежат у меня по чуланам и на которые сложно взглянуть без слёз. Когда хочется восстановить их работу, то складывается понимание, что проще новых нарожать, чем этих отмыть. Для некоторых программ вообще не сохранилось ничего пригодного к повторному использованию. И это крайне обидно, так как потрачено много труда, продукция сделана, а теперь нужно брать и всё делать заново. Правда быстрее, потому что инструменты стали острее, мозг быстрее, да и вообще яжопытный. Всё это дало мне понимание, что не нужно концентрироваться исключительно на том, чтобы сделать быстрее и закрыть требования. Нужно потратить ещё немного времени на проектирование и ещё немного времени на создание такого окружения, которое можно положить в папочку и отправить на долгое хранение, чтобы потом взять и раскрыть этот ларчик и достать заготовку тогда, когда она вновь понадобится. Нужно также описывать действия даже не текстом, а кодом. А в коде использовать понятные названия, чтобы читать его как книгу. И самое приятное, что эта идея в голове не только у меня – вся IT индустрия двигается именно в сторону описания всего кодом. Чтобы не возникло ситуации как в приложенной картинке, что всё что сделал я – отлично, а то, что сделали другие – набор костылей. Потому что через полгода то, что сделал один программист для него самого становится чем-то новым и неожиданным. Единственный путь для нас – включать описание работы программ в сами программы, делать полностью повторяемые окружения и описывать всё это опять же кодом.