«Все перемены, в натуре случающиеся, такого суть состояния, что сколько чего у одного тела отнимется, столько присовокупится к другому, так ежели где убудет несколько материи, то умножится в другом месте» М.В. Ломоносов.
Сегодня читал умную книгу по проектированию программного обеспечения и наткнулся на упоминание первого закона термодинамики: ничего во Вселенной нельзя сделать без затраты энергии, а чтобы сделать что-то значимое нужно затратить очень много энергии. Например, чтобы пнуть камешек на дороге хватит энергии маха ноги одного человека за пару секунд. Чтобы пнуть десять тысяч этих камешков, то потребуется энергия самосвала за те же пару секунд.
А теперь представьте себе, что проектируется программная система, которая должна будет в течение долгих лет управлять логистикой большого транспортного предприятия, где работают тысячи водителей и перевозят грузы по всей стране на грузовиках.
Вполне возможно, что после проектирования ее будут разрабатывать несколько месяцев, а то и лет. Причем успешность развития системы будет зависеть от того, как изначально спроектирована система.
Смекаете к чему ведем рассуждение – на проектирование отводится обычно совсем немного времени, но при этом от этого этапа зависит огромное количество будущих решений и действий.
Конечно, напрямую связать энергозатраты между пинанием камешка и продумыванием архитектуры ПО сложно, однако судя по тому, что сейчас в Мире самыми богатыми корпорациями являются как раз софтверные гиганты, то принцип сохранения энергии вполне себя оправдывает.
Согласитесь, сейчас на любом производстве используется всего несколько наименований вендоров, а ключевых совсем немного: Microsoft, SAP, 1C, Облачные решения Яндекс или Amazon. И вот эта кучка ПО позволяет рабочим создавать, вообще все что нас окружает на Земле из того, что произошло благодаря усилиям человека. У программ очень большая добавочная стоимость.
Поэтому и программисты (настоящие программисты), получают сейчас 300к/секунду. Конечно, ситуация может измениться, когда само программное обеспечение научится создавать себе подобных, ага тот самый искусственный интеллект, но пока это дело будущего (вероятно, далекого).
Выходит, что архитектор ПО, когда продумывает очередную структуру и при этом вспоминает опыт прошлых неудач, создает большую прибавочную стоимость. И чем более удачным это решение окажется, тем большую стоимость он в данный момент закладывает. Поэтому, когда вы в следующий раз начнете придумывать, как связать два класса, подумайте хорошенько, отнеситесь к этому решению не как к скучной рутине, а как к сотворению значимой вещи. Вы долго шли к этому моменту, сначала учились в школе, затем в институте, потом много работали и совершали разные дорогостоящие ошибки. Причем, школа и институт, тоже не за пару месяцев появились – это великие достижения цивилизации, а вы находитесь буквально на острите этой большой волны технологий.
Мотивация
Сейчас у разработчиков из-за обилия неудачных проектов, вообще, сложилось впечатление, что успеть вовремя и сделать именно то, что нужно заказчику принципиально невозможно, но в этом и суть всего того кошмара, который творится в мире разработки ПО. Программисты привыкли сливать неработающий код тестерам, тестеры привыкли этот код тестировать, они же за это деньги получают. Менеджеры привыкли писать длинные отчеты с описанием огромного количества затраченного труда, чтобы клиент обрадовался – вот как хорошо работают над моей задачей! А в итоге сотни часов труда высококвалифицированных специалистов тратятся на создание ненужных вещей, которые никогда не увидят своего пользователя и не принесут обществу хоть какую-то пользу, кроме оплаченных человеко-часов.
Тут, конечно, вопрос в мотивации. Кто-то просто приходит на работу и отрабатывает свой табель, вовсе не заморачиваясь, нужно же платить ипотеку, кормить семью, ездить в отпуск, к чему все эти высокие материи. Но благодаря такой мотивации люди и попадают в соответствующие условия, подобное притягивается к подобному.
Вывод
Если поменять свою точку зрения на свой труд и понять, что твои усилия могут не только обеспечить выживание тебе, но еще и улучшить этот мир, причем значительно улучшить, то и задачи будут появляться соответствующие. Вас пригласят в такие проекты, которые потом будут десятилетиями исправно работать.