Приложение готово. Сервис ушел в продакшн. Релиз выпущен. Проект сдан.
Значит ли это, что система готова к самостоятельной жизни? Или разработчики смотрят на нее в панике, и после релиза катятся регулярные хот-фиксы?
Цель разработки: сделать качественное и надежное приложение. А не пройти тестирование, чтобы выкатиться на прод. Тестирование не гарантирует готовности к работе приложения в реальных условиях. Нагрузка, нестандартное поведение пользователей, рост данных. Реальность и лабораторные условия частенько расходятся.
Я училась и продолжаю учиться проектировать и моделировать системы так, чтобы они предсказуемо и управляемо жили в реальном мире, с пользователями. Чтобы их работа не вызывала ужас и ожидания ночных звонков заказчика.
Я считаю, что "мы доделаем это потом" можно приравнять к "мы это не сделаем это никогда". Разработчики частенько любят сделать быстро и на костылях, из-за сроков. Но сделанное однажды, остается на века. А если IT-проект переезжает в другую компанию, то начинается критика кода.
А можно сделать, чтобы такого не было? Можно ли делать надежные и стабильные системы, которые будет не стыдно передавать из рук в руки?
Да. Нужно учиться проектировать и моделировать, видеть системы с нескольких сторон, связывать реальность и программную реализацию. И, создавая минимальную версию, когда нужно быстро-быстро, представлять будущее. Важно строить фундамент систем, их сервисов, приложений и модулей, с расчетом на развитие и масштабирование. Даже если его не будет. Даже если этим будет потом заниматься другой разработчик или другая компания.
Екатерина Ананьева
Основатель IT-школы системного анализа и проектирования GetAnalyst
k@getanalyst.ru
Мы используем файлы cookie, для персонализации сервисов и повышения удобства пользования сайтом. Если вы не согласны на их использование, поменяйте настройки браузера.