"програмне забезпечення робиться тоді, коли його буде зроблено, не раніше, ні пізніше."
Це правда, але для кожного завдання, над яким розпочинають роботу ваші розробники, чи всі в вашій організації розуміють Визначення Готово для кожного завдання?
Здається, що однією з найбільших ваших проблем є Оцінка , але розробники можуть надати реалістичну оцінку лише тоді, коли у них є однозначне та чітко визначене «визначення зробленого». (До яких належать проблеми з процесами компанії - наприклад, документація користувача, робочі пакети при офіційному випуску тощо)
Не дивно, що завищена оцінка викликає проблему, враховуючи, що більшість розробників бачать, що оцінити час, необхідний для виконання завдання, - це найскладніше, що їм задають.
Однак більшість розробників, як правило, мають розумну (хоч і оптимістичну ) боротьбу з витратою зусиль, які вони в змозі докласти, за певний проміжок часу.
Проблема часто полягає в тому, що розробники намагаються створити взаємозв'язок між завданням і загальним обсягом зусиль, необхідних, коли вони мають справу з неповною інформацією - особливо, якщо на них тиснуть, щоб придумати всі відповіді вперед на дійсно величезне завдання .
Це, природно, призводить до того, що оцінки часу відключаються від реальності, і вони втрачають з поля зору такі речі, як процес збирання та документація користувача.
Відключення, як правило, починається з самого початку, коли описується завдання; і це, як правило, складено нетехнічною особою, яка складає перелік вимог, не маючи жодного поняття про необхідну кількість зусиль.
Іноді люди з вищого керівництва задають завдання та повністю ігнорують проблеми процесу компанії; не рідкість вищого керівництва думати, що такі речі, як визначення тестів, створення формальної версії або оновлення користувальницького документа, просто відбувається магічно, не вимагаючи часу та зусиль. вимагається.
Іноді проекти провалюються, перш ніж розробник навіть не написав рядок коду, тому що хтось десь не виконує свою роботу належним чином.
Якщо команда розробників не бере участі в узгодженні вимог чи захопленні критеріїв прийняття, то це невдача керівництва - адже це означає, що хтось, хто недостатньо розуміє код і технічні проблеми, доклав бізнес до неповного набору вимог, і залишив проект відкритим для неправильного тлумачення, повзучості розмаху, золотого покриття тощо.
Якщо команда розробників бере участь у заході та узгодженні вимог, то це може бути недостатністю команди, яка відповідає за уточнення деталей (та критерії прийняття - тобто "Як виглядає результат? Коли це робиться ?" ). Команда розробників також несе відповідальність за те, що " НІ" у випадку виникнення інших проблем, що блокують, або якщо вимога є просто нереальною.
Тож якщо розробники беруть участь у захопі вимог:
- Чи є в команди можливість сісти з менеджером продукту, щоб уточнити вимоги / визначення зробленого?
- Чи задає команда достатньо запитань, щоб уточнити загальноприйняті / прийняті вимоги? Як часто на ці запитання відповідають задовільно?
- Чи вимагає команда критерії прийняття (визначення зробленого) перед тим, як дати оцінку?
- Наскільки добре зазвичай приймаються критерії прийняття для кожного завдання? Це розпливчастий документ із обмеженими деталями чи він описує відчутну функціональність та формулювання, яке розробник міг однозначно перекласти у тест?
Шанси полягають у тому, що продуктивність вашої команди не є проблемою; Ваша команда, мабуть, докладає всіх зусиль, які вони можуть докласти для розвитку. Вашими реальними проблемами може бути одне або більше з наступного:
- Неповні та розпливчасті вимоги.
- Вимоги / завдання, які в першу чергу занадто великі.
- Погана комунікація між командою розвитку та вищим керівництвом.
- Відсутність чітко визначених критеріїв прийняття до передачі завдань команді.
- Неповна або неоднозначна / неоднозначна специфікація приймальних тестів. (тобто визначення завершеного)
- Недостатній час, відведений на визначення / узгодження критеріїв прийняття.
- Розробники не розглядали час перевірити існуючий базовий код або виправити наявні помилки
- Розробники протестували наявний базовий код, але не підвищували помилок як блокування проблем, перш ніж надавати оцінки щодо вимог
- Керівництво побачило проблеми / помилки і вирішило, що помилки не потрібно виправляти перед написанням нового коду.
- На розробників тиснуть 100% свого часу, хоча, можливо, 20% (або якесь подібне число) свого часу, ймовірно, займають зустрічі, відволікання, повідомлення електронної пошти тощо.
- Оцінки узгоджуються за номіналом, і ніхто не коригує місце для помилок чи надзвичайних ситуацій (наприклад, "Ми вирішили, що це потребує 5 днів, тому ми очікуємо, що це буде зроблено через 8").
- Оцінки трактуються всіма (розробниками та керівництвом) як одиничні числа замість реалістичного числа «діапазону» - тобто
- Найкраща оцінка випадку
- Реалістична оцінка
- Найгірша оцінка
... цей список може тривати набагато довше.
Вам потрібно зробити деякий «пошук фактів» і точно з’ясувати, чому оцінки послідовно відключаються від реальності. Чи є існуюче базове програмне забезпечення поганим? Чи не вистачає покриття тестовим блоком? Чи уникають ваші розробники спілкування з керівництвом? Чи уникає менеджмент спілкування з розробниками? Чи існує розрив між очікуванням керівництва та очікуванням розробників, коли мова йде про "Визначення завершеного" ?