Бережлива розробка програмного забезпечення
Ощадлива (або бережлива) розробка програмного забезпечення (англ. Lean software development) — це методологія розробки програмного забезпечення, що заснована на постійному прагненні до усунення всіх видів втрат. Серед основних видів втрат при розробці ПЗ виділяють: непотрібні функції, непотрібна переробка, недовиконана робота, а також створення дефектного продукту — витрати часу на пошук і усунення дефектів, що віднімають до 40-50% часу розробки.
Цикл розробки програмного забезпечення |
---|
Програміст за роботою |
Діяльність і кроки |
Допоміжні дисципліни |
Практики |
Інструменти |
|
Стандарти та галузі знань |
Ця методологія прийшла у ІТ з ощадливого виробництва та використовує однойменні методи концепції. А у сфері ПЗ виникла з середовища прихильників концепції гнучкої методології розробки.
Термінологія
Зв'язок із виробництвом
Реалізація ощадливих (ресурсозберігаючих) і безвідходних виробництв програмного забезпечення являє собою основу бережливої розробки програмного забезпечення.
Ресурсозберігаюче виробництво — це виробництво і реалізація продуктів з мінімальною витратою ресурсів і енергії на всіх етапах виробничого циклу, а також з найменшим впливом на людину і природні системи. Основою ресурсозберігаючого виробництва є ресурсозберігаючі технології.
Безвідходне виробництво — це виробництво і реалізація продуктів, що повинні характеризуватися наступним: довгим терміном служби; можливістю багаторазового використання; простим ремонтом; легкістю повернення у виробничий цикл або переведенням в екологічно нешкідливу форму після виходу з ладу. Поняття безвідходного виробництва носить умовний характер і є теоретичним межею, досконалою моделлю виробництва, яка в більшості випадків може бути реалізована не повною мірою, а лише частково. Безвідходне виробництво передбачає повну комплексну переробку відходів.
Походження та перша згадка
Вперше висвітлена в однойменній книзі (англ. Lean Software Development) Мері Поппендік і Тома Поппендіка. У книзі представлені традиційні принципи ощадливого виробництва стосовно розробки програмного забезпечення, також набір з 22 інструментів (практик) та їхнє порівняння з гнучкою методологією розробки. Мері і Том брали участь у ряді різних конференцій, присвячених методикам Agile, що пояснює популярність концепції бережливого виробництва серед спільноти гнучкої методології розробки.
Принципи
Бережлива розробка програмного забезпечення базується на семи принципах, що є концептуально близькими до принципів бережливого виробництва. Окрім необхідності постійного прагнення до усунення всіх видів втрат, що не становлять цінності для користувача та призводять до втрати часового ресурсу, також виділяють:
- Акцент на навчанні. Наголос на навчанні розробників - запорука найкращого середовища для розробки програми. Замість написання додаткової документації, краще намагатися втілити нові ідеї у саму програму. Корисними є короткі цикли розробки, раннє тестування, частий зворотній зв'язок із замовником.
- Якомога відстрочене прийняття рішень. Рішення слід приймати не на основі припущень і прогнозів, а після відкриття істотних фактів.
- Якнайшвидша доставка замовнику. Короткі ітерації. У часи швидкого технологічного прогресу, виживають не найбільші компанії, а найшвидші.
- Мотивація команди. Не можна розглядати людей виключно як ресурс. Людям потрібно щось більше, ніж просто список завдань.
- Вбудова якості. Клієнт має отримати цілісний досвід програми (системи) - як програма рекламуються, випускається, встановлюється, наскільки вона є інтуїтивною для користувача, її ціна, наскільки добре програма вирішує завдання. Необхідно прагнути до цілісної архітектури. Один із засобів досягнення – рефакторинг.
- Цілісне бачення. Стандартизація, встановлення відносин між розробниками. «Мислити широко, робити мало, помилятися швидко; вчитися стрімко».
Практики
Деякі практики бережливої розробки аналогічні практикам швидкої розробки, а деякі трохи відрізняються. Приклади практик:
- Виявлення втрат («Муда»)
- Карта потоку створення цінності (Value stream mapping)
- Теорія обмежень
- «Витягуюча» система (Канбан)
- Теорія масового обслуговування
- Мотивація
- Вимірювання
Посилання
- Игорь Лужанский. Бережливая разработка программного обеспечения
Література
- Мэри Поппендик, Том Поппендик. Бережливое производство программного обеспечения: от идеи до прибыли / Вильямс, 2009 г. ISBN 978-5-8459-1538-2
- Стаття: Сидоров Н. А. Экология программного обеспечения. Учебная программа / Н. А. Сидоров // Інженерія програмного забезпечення. — 2012. — № 3-4 — С. 18. — http://irbis-nbuv.gov.ua/cgi-bin/irbis_nbuv/cgiirbis_64.exe?C21COM=2&I21DBN=UJRN&P21DBN=UJRN&IMAGE_FILE_DOWNLOAD=1&Image_file_name=PDF/Ipz_2012_3-4_4.pdf