Skip to main content

Что такое бережливая разработка программного обеспечения?

Lean Software Development - это парадигма, которая описывает теоретический идеальный набор обстоятельств для создания программного обеспечения. Важно рассматривать Lean Software Development как одну из многих теорий разработки программного обеспечения, каждая из которых имеет свои плюсы и минусы. При использовании модели Lean Software Development необходимо понимать семь важных моментов: устранение потерь, усиление обучения, запоздалое принятие решений, быстрая доставка, расширение возможностей команды, построение целостности и визуализация всего.

Ликвидация отходов является целью экономии времени и денег. Сокращая количество избыточного кода и лишних функций в Lean Software Development, команда разработчиков программного обеспечения экономит деньги и поставляет более точный код конечному пользователю. Таким образом, программы, созданные с использованием модели Lean Software, являются менее ресурсоемкими и более сфокусированными.

Усиление обучения в Lean Software Development относится к концепции использования коротких циклов между фазами тестирования. Теоретически это обеспечивает более постоянную обратную связь с инженерами, что, в свою очередь, позволяет выявить проблемы на ранних этапах разработки. Конечные пользователи включены в эти этапы, гарантируя, что бета-версии программы отвечают их потребностям.

Позднее принятие решений обеспечивает дополнительную гибкость в графике проектирования, позволяя принимать решения только после того, как будет собрано максимальное количество фактов. Например, решение до начала разработки о том, что Программа X должна иметь функции A, B и C, может показаться хорошей идеей, пока тестирование на местах не покажет, что эти функции невозможно завершить вовремя. В Lean Software Development решение о включении A, B и C будет отложено до тех пор, пока не будет установлено, действительно ли это возможно.

Быстрая доставка означает предпочтение предоставления конечному пользователю работающей бета-модели как можно быстрее - возможно, когда программа будет завершена на 85-90 процентов - и дальнейшее исправление и обновление этой модели в течение срока действия программы. Это контрастирует с ожиданием завершения программы на 100% и ее последующей доставкой. Теоретически это позволяет конечному пользователю выжать из программы больше жизни, а также дает команде разработчиков дополнительную обратную связь от работающих бета-моделей.

Расширение возможностей команды означает предоставление ей большей автономии в процессе программирования. В результате они теоретически станут более инвестированными в проект. Кроме того, это означает предоставление им доступа к клиентам, что более точно соответствует ожиданиям фактической доставки.

Наконец, создание целостности и просмотр целого фокусируется на просмотре программы как единого целого. Сравните это с другими системами, которые рассматривают программу как набор различных систем. Такое мышление «большой картины» теоретически обеспечивает более полный продукт, поскольку вся команда находится на одной странице, когда дело доходит до готового продукта.