The Most Powerful Software Development Process Is The Easiest • Dave Farley • GOTO 2024
Это короткое видео Дэйва Фарли посвящено дизайну идеального процесса разработки софта. Интересно, что сам Дейв - тертый калач, который в давние времена написал книгу Continuous Delivery (я про нее рассказывал), а недавно - "Modern Software Engineering: Doing What Works to Build Better Software Faster", которая стоит у меня на полке и ждет своего часа. В этом видео Дэйв предлагает отринуть текущие практики и попробовать придумать процесс разработки софта from the first principle. В конце он предлагает модель идеального процесса, как видится ему. Интересно, что этот процесс позволяет размышлять не просто про идеал, а про вашу конкретную ситуацию и понять что не так с вашим процессом или вспоминая Льва Толстого понять в чем ваше несчастье:)
Все счастливые семьи похожи друг на друга, каждая несчастливая семья несчастлива по своему Ну а теперь кратко про мысли Дэйва
- Фиксирует цели разработки софта как решение проблем других при помощи софта. Для этого надо: -- Понять проблему - отсюда появляются requirements -- Решить проблему - тут мы пока пишем код, но некоторые говорят, что скоро будет писать только промпты -- Проверить, что она решена - отсюда появляются тесты
- Так как мир вокруг изменчив, то нам надо уметь меняться - меняются требования и нам надо уметь делать изменения - отсюда появляется желание двигаться вперед маленькими шагами
- Нам надо понимать, что мы двигаемся в нужную сторону, поэтому нам надо верифицировать результаты и разрабатывать софт инкрементально
- Одновременно нам нужно, чтобы наша система работала с первой версии и на протяжении всех инкрементальных изменений - она же решает задачи пользователей, как мы определились в самом начале (а для этого она должна быть up & running)
Дальше автор показывает процесс:
- Смутное желание от бизнеса
- User story, где важно выразить потребности пользователя, а не конкретное решение
- Тут же важно привести примеры (из которых можно сделать test cases)
- А дальше уже идет design & implement часть, которую автор описывает подробнее -- Про commit stage, упоминая continuous integration - на этой фазе проверяется техническая корректность изменений -- Про acceptance stage - на этой стадии идут проверки, а можно ли релизить это изменение: acceptance test, security, performance, etc
Ну и заканчивает автор на высокой ноте, говоря, что такой процесс используется во многих tech компаниях по всему миру и дает хорошие результаты. Собственно это финальное утверждение коррелирует с кликбейтной обложкой, которая хорошо привлекает внимание, но почти не упоминается по всему видео:)
P.S. В общем, в этом видео нет ничего нового, но оно краткое, понятное и дает хорошую базовую модель процессов разработки.
#Management #Software #Engineering #SoftwareDevelopment #Processes #Devops #SRE