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

26 Мар 2009 в рубрике Lean в России и мире, Интересно | 8 комментариев

22 оценки, среднее: 4,50 из 522 оценки, среднее: 4,50 из 522 оценки, среднее: 4,50 из 522 оценки, среднее: 4,50 из 522 оценки, среднее: 4,50 из 5 (средний балл: 4,50; оценок:22)
Чтобы оценить запись, необходимо войти в систему.
Загрузка...
Просмотров: 25 066

Они могут быть четко идентифицированы, но их сложно признать. Проблемы в разработке программного обеспечения являются основной причиной провалов ИТ проектов, что вынуждает руководителей во всем мире внедрять жесткие контролирующие процессы для того чтобы гарантировать успех проекта. Ужесточение процессов на каждой стадии проекта превращает весь процесс разработки в «спасательный жилет».

Использование подходов бережливого производства позволяет не только решить проблемы разработки программного обеспечения (в том числе проблемы качества), но и внедрить принципы постоянного совершенствования в процесс разработки.

Причины провалов проектов по созданию ПО

Следующие факторы были идентифицированы как основные причины провалов проектов по созданию программного обеспечения.

Часто и неожиданно изменяющиеся требования заказчика

Проблема консервативного подхода к разработке программного обеспечения лежит в предположении, что требования заказчика неизменны и могут быть идентифицированы заранее. Но поскольку требования меняются достаточно часто в течение жизни большинства систем, они не всегда могут быть адекватно отражены с помощью жесткого, негибкого дизайна системы. «Делайте правильно» (Do it right) было так же ошибочно интерпретировано, как «Не позволяйте изменений», что в свою очередь спровоцирует недовольство клиентов. С другой стороны, если изменения разрешены в течение проекта, у компании будут проблемы с поставкой ПО согласно основной линии проекта.

Централизованное принятие решений

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

Жесткое управление объёмом работ по проекту

Удержание проекта в рамках, согласованных на начальной стадии, приносит мало пользы заказчикам, требования которых изменяются. В действительности такой подход только сеет тревогу и парализует способность принимать решения, обеспечивая лишь то, что система будет частично устаревшей к моменту её запуска. Таким образом, управление работами, которые не нужны заказчику, являются прямыми потерями времени и ресурсов.

Тем не менее, до тех пор, пока ограничение проекта своим изначальным объёмом работ будет ключевой задачей менеджера, локальная оптимизация будет процветать за счет качества всего проекта.

Традиционный (линейный) подход к разработке

Большинство проблем с качеством при разработке программных компонентов возникает из-за линейности процесса разработки, которая не предусматривает проверку качества до того, как компонент перешел на следующую стадию цикла разработки. То есть разработка продолжается даже тогда, когда существуют проблемы с качеством («баги»)

Принципы бережливого производства

Принципы бережливого производства, которые суммированы ниже, могут использоваться как основа или руководство для решения большинства проблем в мире разработки программного обеспечения:

Создавать ценность и ничего более

1. Устранять потери

2. Сокращать уровень запасов

3. Делать качественно с первого раза

Акцент на тех, кто добавляет ценность

4. Поддерживать (назначать, поощрять) тех, кто добавляет ценность

5. Постоянно совершенствоваться

Вытягивать ценность

6. Соответствовать требованиям потребителей

7. Вытягивать спросом (ориентируясь на спрос)

8. Улучшать поток создания ценности

Помогать окружающим в оптимизации

9. Запрет локальной оптимизации

10. Партнерство с поставщиками

Применение принципов бережливого производства к процессу разработки программного обеспечения

(«Lean Software Development»)

В основном принципы бережливого производства могут быть применены к разработке программного обеспечения для решения существующих проблем, улучшения самого процесса разработки и получения лучших качественных и количественных результатов.

Устранять потери

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

Тайити Оно (Taichii Ohno )Семь типов производственных потерь

1. Перепроизводство

2. Излишние запасы

3. Излишняя обработка

4. Ненужные перемещения

5. Выпуск дефектной продукции

6. Ожидание

7. Ненужная транспортировка

Семь типов производственных потерь так же применимы к разработке программного обеспечения, что представлено в таблице ниже

Муда, потери, мусорСемь типов потерь при разработке ПО

1. Перепроизводство (Экстра функциональность)

2. Излишние запасы (Требования)

3. Излишняя обработка (Дополнительные шаги разработки)

4. Ненужные перемещения (Поиск информации)

5. Выпуск дефектной продукции (Баги, не выявленные при тестировании)

6. Ожидание (Ожидание решений, ожидание клиентов)

7. Ненужная транспортировка (Передача проекта, требований, знаний, развертывание систем)

Проектная команда должна пытаться исключать потери, которые обычно присутствуют в процессе разработки программного обеспечения.

Делать правильно с первого раза

«Делать правильно с первого раза» не означает «заморозить спецификацию». Наоборот, требования (спецификация) к системе постоянно изменяются. Дисциплина бережливого производства требует мгновенной адаптации к изменяющимся условиям рынка и требованиям заказчика. Это лучше всего реализуется с помощью гибкой архитектуры, которая позволяет системе легко приспосабливаться к изменениям, а также технологии мониторинга, определяющей ошибки перед тем, как они происходят, и тестов разработанных перед началом разработки.

Правило «делать правильно с первого раза» часто используется для того, чтобы оправдать разработку детальной специфик