Программирование — это вечное детство
Разработка любой программной системы по сути представляет собой непрерывное моделирование.
В самом начале, описывая идею будущего продукта, мы создаём его самую общую, концептуальную модель. После чего начинаем её развивать и детализировать, придумывая новые, всё более детальные и полные модели.
Представляем себе пользователей программы, их потребности и поведение. То есть моделируем их. Составляем перечень фич — функциональную модель. Разрабатываем макеты интерфейса. Описываем это всё в виде технического задания — более или менее стройной текстовой модели.
Потом начинаем разрабатывать архитектуру. Модель компонентов. Модель данных. Модель классов. Всё это изображаем в виде разнообразных диаграмм — визуальных моделей.
Приступаем к программированию. То есть создаём модель продукта, описывая его поведение на специальных языках.
Почему я называю всё это моделями? Потому что самого продукта ещё нет. Есть только отражения будущего продукта — всё более и более детальные представления о нём.
Наконец, у нас появляются первые прототипы, которые уже можно запускать. Каждый такой прототип — это всё ещё модель!
И даже когда у нас, наконец, появляется первая версия продукта, моделирование не останавливается. Мы начинаем его тестировать. То есть снова моделируем поведение его пользователей.
В общем, вы поняли. Однажды втянувшись в разработку ПО, мы обречены всю оставшуюся жизнь заниматься моделированием.
Но давайте подумаем, кто ещё имеет дело только с моделями? Думать долго не придётся. Это дети!
Дети всё своё время посвящают моделированию будущего взрослого мира. В детских играх отрабатываются модели поведения и взаимодействия с окружающим миром и другими людьми. Каждая игрушка — это модель. Кукла — модель ребёнка. Игрушечная машинка — модель настоящей. Простая палка может быть моделью сабли, лопаты, удочки — чего угодно, лишь бы хватило воображения.
Но значит, разрабатывая ПО, мы продлеваем себе детство! Закончив работу над одним продуктом, тут же принимаемся за другой. Находя для себя всё новые и новые игры.
Не потому ли офисы компаний, создающих самые лучшие продукты, так напоминают детские сады?