Виклики спритного підходу до державних проектів


24

Попередня дискусія Agile тут мала хороші відповіді, вказуючи, що важливо для успіху впровадження методології Agile в розробці програмного забезпечення. Більшість пунктів були типовими організаційними та управлінськими проблемами, але один момент мене хвилює, і це те, що клієнт повинен бути залучений протягом всього процесу.

Клієнт - це одне, що ви не можете реально контролювати, можливо, ваша бізнес-модель передає вам урядові роботи, наприклад, коли жорсткий контракт зобов'язує компанію:

  • Надайте функції X точно так, як вимагається

  • Запити про функції будуть кинуті через стіну, не турбуйте нас, ми не хочемо її чути.

  • У свідомості замовника немає поняття пріоритету функції, вони всі важливі, або ми б їх не просили.

  • Проект буде коштувати не більше і не менше Y, незалежно від перевищення або термінів.

  • Абсолютний, суворий, остаточний та необоротний термін для повної здачі всієї роботи.

Ми ніколи раніше не працювали з таким клієнтом, але гроші на проект надто гарні, щоб передати гроші. Нам потрібна ця робота.

Я прийшов сюди і працював HARD над тим, щоб змінити процеси всередині, щоб рухатись до Agile розвитку, і тут я не знаю, як узгодити те, де цей проект вписується в наш новий процес. У мене ніколи раніше не було розкоші відкритого управління, яке б мені довірило керувати командою розвитку та обробляти цей шлях, і тепер, коли ми тут, я не можу чесно сказати собі, що цей проект справді буде зроблений у Спритний шлях. Я відчуваю, що мене керівництво довірило мені вести цей шлях, і я відпустив їх, оскільки ця ситуація, в якій ми зараз перебуваємо, настільки чітко вимагає водоспаду. Я боюся, що я можу втратити їхню довіру, якщо зараз відмовитись.

Інші відповіді, такі, як тут, говорять, що Agile неможливо з таким клієнтом, ви згодні? Хтось із вас був у подібній ситуації і змусив це працювати? Які стратегії ви реалізували, щоб Agile успішно відбувся?


2
Мені цілком потрібно відповісти на це, коли отримаю більше часу. Я фактично застосував гнучкі прийоми у державних контрактних проектах і працював над спритною командою в уряді. Але на жаль, мій сценарій компілювання / тестування / розповсюдження майже зроблений. Я повернусь пізніше.
Томас Оуенс

@ThomasOwens Я сподівався, що ти будеш ... БУДЬ ЛАСКА повернутися та дати відповідь, коли отримаєш шанс!
maple_shaft

1
"Проект буде коштувати не більше і не менше Y, незалежно від перевищення або термінів" - ви тоді не працювали над жодними ІТ-проектами для уряду Великобританії? ;)
Cocowalla

Відповіді:


9

Я думаю, що перше, що потрібно усвідомити, це те, що є різниця між спритністю та спритністю. Повільне розгортання гнучких прийомів та характеристик - крос-функціональні команди, адаптивне планування, еволюційна / поступова доставка, ітерації в часі і навіть введення концепцій від Lean сильно відрізняються, ніж введення Extreme Programming, Scrum або Crystal.

Ви чітко згадуєте про залучення клієнтів. Так, багато методологій Agile вимагають залучення клієнтів, але це не обов'язково, щоб бути спритним. У будь-якій програмі, пов'язаній з урядом / обороною, я завжди мав керівника програми чи проекту, який був точкою контакту із замовником. Ця людина стає "голосом замовника". Це може бути уповільнено, коли вони здійснюють телеконференцію або електронну пошту або дзвонять та уточнюють, але у вас може бути одна людина (або група, якщо у вас є також заступники прем’єр-міністра), яка є представником замовника вашої команди. Справді, це не зовсім те саме. Але хіба не є спритним щодо гнучкості та реагування на зміни?

Ви також згадуєте кілька ключових понять: попередньо визначені вимоги, що мають запити щодо функцій, "кинуті через стіну", відсутність пріоритетності, оскільки "всі вони важливі", та проекти з фіксованою вартістю та / або з фіксованим графіком. Кожне з них можна вирішувати по-різному.

Якщо ви думаєте, що у вас є всі вимоги наперед, швидше за все, ви цього не зробите. Вимоги змінюються. Тільки тому, що у вас є специфікація "готового та відписаного", це не означає, що вона встановлена ​​в камені. З огляду на будь-який документ із вимогами, який у вас є, зафіксуйте їх, як ви почуваєтесь комфортно та / або у спосіб, визначений договором, та доставляйте вимоги, дизайн та архітектуру. Крім того, подивіться, чи можна поводитися з цими живими документами (проектний документ, який я бачив сьогодні на роботі, позначений як редакція G, це означає, що це 8-е оновлення). Поцікавтеся, скільки ви можете залишити на TBD в будь-якій заданій ітерації та скільки потрібно зараз підкріпити - можливо, це може бути певним.

Будьте спритні зі своєю документацією. Не дублюйте зусилля між "тим, що хоче ваша команда" і "тим, що хоче клієнт". Наприклад, якщо ваш клієнт хоче традиційну специфікацію вимог до програмного забезпечення, а ваша команда хоче використовувати розповіді користувачів, спробуйте адаптуватися до традиційних SRS та використовуйте елементи дій та прокатний список елементів дії замість розповідей користувачів, щоб не витрачати час формулюючи і "система повинна ...", і "повинна бути здатна до цього". Однак це вимагає дисципліни з боку команди, щоб пристосуватися до відмінностей між проектами. Проблеми із захопленням у роздумах.

Як тільки ви перейдете до розробки, ви можете виконати 5 або 6 ітерацій, а потім запросити свого клієнта до вашого об'єкту, щоб побачити підмножину вашої реалізації. Промийте і повторіть цей процес. Це не постійне залучення, яке вимагають деякі методики, але ви маєте перевагу у високій видимості. Якщо ваш клієнт каже ні, принаймні ви намагалися. Якщо вони скажуть «так», ви можете просвітити їх за спритність. В одному проекті, на якому я працював, замовник відвідував сайт кожні кілька місяців (зазвичай 3-5 місяців). Вони спостерігали, як ми проходимо тестування якості, обговорювали б проблеми з інженерами та бізнес з офісом програми / проекту. Це була можливість для всіх потрапити на одну і ту ж сторінку.

Тестування та обслуговування відбуваються так само, як і в інших спритних проектах. Створіть належним чином свої тестові процедури та дефекти документів, відслідковуйте показники за договірними зобов’язаннями та документуйте результати тестування. Якщо ви хочете дотримуватися TDD, перейдіть до цього. Постійна інтеграція - ще одна добра ідея. Під час зустрічей зі статусом проекту ваш керівник проекту може використовувати цю інформацію, щоб сказати, "ми реалізували N вимог, маємо M тести, пройшли X тести" та оновити інформацію про стан та стан проекту людям з грошима.

Якщо говорити про гроші, у нас є проблема з фіксованою вартістю та / або з фіксованим графіком.

Справа з фіксованим графіком досить проста. З огляду на ваші вимоги, ви знаєте, скільки ітерацій ви можете виконати. Ваша навантаження на кожну ітерацію в значній мірі встановлена ​​в камені з точки зору функцій для впровадження, тестування та інтеграції. Це може бути важким, але розбити функції та призначити їх ітераціям заздалегідь неможливо. Це повертається до моєї точки зору запрошення замовника - якщо у вас є один рік і ви використовуєте 2-тижневі ітерації, можливо, запрошуйте клієнта щокварталу (і запрошуйте їх щоквартально) та показуйте їм результати попередньої роботи. Дозвольте їм побачити вашу пріоритетність вимог, ваші майбутні плани та спосіб планування.

Справа з фіксованим бюджетом аналогічна. Ви знаєте, скільки часу у вас є, скільки ресурсів у вас є для проекту, скільки вони коштують, а отже, скільки годин кожен може працювати за ітерацію. Це лише питання, щоб усі ретельно стежили за цим. Якщо ваша компанія може з'їсти витрати на понаднормовий час, продовжуйте її. В іншому випадку переконайтесь, що кожен працює відповідний проміжок часу та використовуйте хороші навички управління часом та бокс, щоб підтримувати всіх продуктивними. Більш продуктивні години - це те, що потрібно, щоб зменшити витрати - доставити додаткові документи та програмне забезпечення без витрат на засідання та накладні витрати.

Зрештою, справа не в тому, щоб бути обов'язково спритним, а застосовувати те, що робить Agile хорошим і спритним. Будьте здатні реагувати на зміни в вимогах, вміти доставляти часте програмне забезпечення, навіть якщо клієнт цього не бажає, лише випускайте документацію з додатковою вартістю (разом із тим, що ви зобов'язані виготовити за контрактом) тощо.


Якщо я щось пропустив, дайте мені знати. Я потрапив у основні моменти, які я можу придумати.
Томас Оуенс

Оце Так! Дякую за довге і детальне пояснення, деякі пункти, які ви доклали, були згадані і в попередніх відповідях. Це змушує мене відчувати себе досить добре у всьому. Щодо SRS vs. User Stories, ми в заявці на пропозицію заявляли, що ми дотримуємося Agile методологій. Сподіваємось, якщо вони не заперечуватимуть проти цього, то розповіді користувачів будуть задовільними. продовження ...
maple_shaft

... Я відчуваю, що наш менеджер був би кращим клієнтом. Ми сподіваємось розробити програмне забезпечення, яке має високі компоненти та легко додавати функції та компоненти також для додаткових урядів чи установ. Якщо я розглядаю цей аспект, тоді клієнт - це сама компанія, а програмне забезпечення - це той продукт, яким вони володітимуть і можуть безкоштовно продавати кому бажають. Виконання державних договірних зобов’язань стає лише основою для визначення пріоритетності історій користувачів на відставанні. Далі мені подобається ідея про запрошення їх переглянути результати щокварталу. Спасибі!
maple_shaft

@maple_shaft На жаль, я не можу спілкуватися з бізнесом, програмою чи контрактом. Мені відомо про різні договірні зобов'язання та речі, які мені довелося зробити, або документи, які я повинен був виготовити, щоб їх виконати, але я був лише інженером і ніколи не брав участь у проекті чи програмі. Ви обов'язково потребуєте ділових та юридичних прав на цьому договорі та переконайтеся, що можете робити те, що маєте намір робити.
Томас Оуенс

11

Так, спритний не підходить для такого проекту, оскільки це здається, що вимоги вже зроблені та закріплені в камені, ймовірно, результат багаторічного аналізу дорогих консультантів, засідань комітетів та політичного компромісу. Водоспад працює чудово, якщо замовник настільки дисциплінований, що може письмово сказати вам, що саме хоче. Вони можуть помилятися, але принаймні у вас це є в письмовій формі, і ви отримаєте зарплату, якщо доставите це. (Це, звичайно, не означає задоволення клієнтів. Ймовірно, ви доставите щось, що їм насправді не потрібно.)

Agile був створений для вирішення проблеми, якої у вас немає: ризик через невизначеність вимог.

Це правда, що клієнт може попросити запитів на зміни, але ви дотримуєтесь одного з двох шляхів:

  1. Гроші були настільки хорошими, що ви знаєте, що можете поглинати X кількість нових функцій на різних етапах проекту і все одно виходити, не втрачаючи сорочки, або
  2. Ви спочатку даєте зрозуміти замовнику, що завдяки їм, що домовляються про жорстку ціну, кожен новий запит на функціювання формуватиме замовлення на зміну з ціною, яку доведеться затвердити ними, із супровідним замовленням на купівлю (або поправкою до оригінальне замовлення на купівлю) для того, щоб Ви це здійснили. Порядок змін буде визначати будь-який вплив на функціональність або графік. Якщо вони кажуть, що термін не можна перенести, то міняти замовлення просто стає експоненціально дорожчим у міру просування проекту, оскільки згодом дорожче міняти речі.

У відносинах №1 відносини відчувають себе набагато привітніше, але факт є досить рідким, коли можна знайти відділи закупівель, які не притиснуть вас до ціни, тому більшу частину часу ви перебуваєте в ситуації №2. Це означає, що стосунки конфронтаційні, але якщо ви хочете вижити в бізнесі, вам доведеться добре керувати відносинами, тримаючись за свою позицію. Це значна частина роботи керівника проекту.

Це здається, що ви можете потрапити в ситуацію №1, що добре. Я думаю, що державні контракти - це єдине місце, де вони не піклуються про гроші, адже, зрештою, вони не витрачають свої гроші, вони витрачають ваші гроші.


>> вони не витрачають своїх грошей ... Але вони витрачають бюджет, над яким не мають контролю і дуже обмежені можливості перенаправлення, навіть якщо замовлення на зміну будуть затверджені. Отримати більше грошей у бюджеті наступних років на необхідні зміни в базовій лінії для поставок за ці роки - це не приємне місце для мене.
DaveE

10

... уряд, який займається контрактом, наприклад, коли жорсткий контракт зобов'язує компанію:

Спочатку. Це суворо. Але це не є гнучким. Це просто вимагає уваги до деталей і довгого, довгого рядка замовлень на зміну.

Урядові установи насправді є спритними у повільному, неефективному режимі. Ви повинні весь час писати (і домовлятися) про офіційні, детальні замовлення на зміну.

Надайте функції X точно так, як вимагається

Поки не буде змінено наказ про зміну.

Запити про функції будуть кинуті через стіну, не турбуйте нас, ми не хочемо її чути.

Канал зв'язку - це порядок зміни. Вплив на бюджет та графік.

У свідомості замовника немає поняття пріоритету функції, вони всі важливі, або ми б їх не просили.

Це важко обійти. Навіть неурядові підприємства, які витрачають багато грошей на "аналіз потреб", не хочуть сказати, що велика, рівна, купа вимог, яка не обмежена пріоритетом, і інформація про компроміс є неповною. Вони заплатили хороші гроші, щоб отримати всі вимоги. Як ви можете отримати додаткову інформацію?

Це складна проблема.

Проект буде коштувати не більше і не менше Y, незалежно від перевищення або термінів.

За винятком замовлень на зміну. Які змінюють Y та граничний термін.

Абсолютний, суворий, остаточний та необоротний термін для повної здачі всієї роботи.

"необоротні", як правило, не відповідає дійсності. Це оборотно. Домовлятися просто боляче.

Важливою частиною переговорів з державними установами є той факт, що вам потрібні "докази на рівні юристів" для вашої вартості та графіку змін. Кілька ретельних технічних презентацій із приємним слайдом Power Point не є "свідченням". Щоб скласти свою справу, вам потрібно багато документації.

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

Складність розробки програмного забезпечення та фактичний аспект урядової роботи в понеділок, що веде вранці, змушує їх неохоче вносити зміни до договору без зайвих доказів.

Це ускладнює правильний Agile підхід.

"Індивіди та взаємодія над процесами та інструментами" є важким. Ви працюєте не з особою, а з представником уряду, який займає процес, обмежений процесом.


+1 для, поки не буде змінено в порядку зміни . Виправлені вимоги є помилкою, і це, звичайно, має місце урядові контракти, коли сфера застосування може бути величезною
Cocowalla

7

У такому проекті вони зв'язали ваші руки щодо обсягу, ресурсів та часу. Єдине, що вам залишилося керувати - це якість. Так...

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

Тож будьте максимально спритні:

  1. Пройдіть вимоги та визначте їх із технічним ризиком. Встановіть пріоритетні вимоги як свої відсталі.
  2. Працюйте через відсталі у спринтах - проектуйте, тестуйте та кодуйте особливості спринту. У вас відсутня взаємодія з клієнтом, тому документ із вимогами повинен представляти клієнта для цієї діяльності.
  3. Запросіть клієнта на кожен огляд спринту - він може сказати "ні", але вони можуть сказати "так". І ви отримаєте відгук швидше, ніж пізніше.

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


1
Дякую, що це дійсно гарна порада! Надайте пріоритет технічному ризику і, можливо, зробіть мого менеджера "клієнтом" протягом усього процесу. Мені подобається думка про те, щоб першими не виходити з важких та важких історій користувачів. Міркування для цього звучать із суворим строком.
maple_shaft

3

Я думаю, що такий тип клієнта не є нормою. Ви маєте справу з групою, яка раніше просила подібні проекти, тому вони точно знають, чого хочуть. Ви ніколи не згадуєте, що їх технічні характеристики зміниться.

Надайте функції X точно так, як вимагається

Мені пощастить, якщо я надаю функцію X розпливчасто, як було запропоновано, і буду готовий змінити її за мить.

Запити про функції будуть кинуті через стіну, не турбуйте нас, ми не хочемо її чути.

Якщо ви знаєте, чого хочуть, ідіть і будуйте це.

У свідомості замовника немає поняття пріоритету функції, вони всі важливі, або ми б їх не просили.

Ви не можете програти на цьому. Побудуйте їх так, як вважаєте за потрібне.

Проект буде коштувати не більше і не менше Y, незалежно від перевищення або термінів. Абсолютний, суворий, остаточний та необоротний термін для повної здачі всієї роботи.

Це важко, якщо ви ніколи не будували проект для уряду. Якщо у вас є історія, ви можете визначити, чи можете ви доставити. Це не означає, що вони не платять добре (вони сумно відомі, коли платять 50 доларів за молоток 10 доларів) або не мають обґрунтованих очікувань. З цими специфікаціями хтось із вашої команди повинен виступати замовником і схвалювати роботу порівняно з специфікаціями. Навіть якщо ви знайшли недолік і благали їх змінити вимоги, вони, ймовірно, не зробили б це.


2

На жаль, те, що ви описали, - це типовий погляд клієнта на те, як слід вирішувати проект програмного забезпечення. Це не означає, що замовник нерозумний; зрештою - хіба це не так, як можна було б виконати будівництво чогось іншого (наприклад, будинку?). Попри це, я насправді не пропоную нічого, крім того, що ми всі вже знаємо. Що ви запитуєте, це ... чи можливо застосування спритних практик у цій ситуації?

Я маю вигоду, що щойно закінчив проект, який багато в чому схожий на ситуацію, яку ви описуєте, тобто

  1. Фіксований (в камені, прийшов пекло або багатоводний) термін.
  2. Документ про функціональні вимоги ("Біблія"). Не дивно неадекватний.
  3. Традиційні ролі: менеджер проектів, бізнес-аналітик.
  4. Слабо зацікавлені бізнес-користувачі (чи можете ви сказати "немає спонсора продукту"?).

... і звичайно, команда розвитку, що мислить вперед, намагається працювати по-спритному, незважаючи на вищезазначене:

  1. 2 тижні ітерації;
  2. Витримки;
  3. Ретроспектива;
  4. Парне програмування;
  5. TDD;
  6. Постійна інтеграція.

Чи хоч щось із цього має значення для бізнесу, хоча? Ні. Два місяці до крайнього терміну, до тих пір, коли ретельно спостерігаються ітерації та планові зустрічі, покинуто в шаленстві безголових курчат.

Відповіді, які інші надали вище, в більшій чи меншій мірі компроміси. На мою думку, спритний (будь то "Agile" чи "Agile") "робиться" згубно, коли ми робимо компроміс. На мою думку:

Немає компромісу, або немає спритного.

Сам дух спритності полягає в тому, щоб порізати погоню, вивезти відходи, бути по- звірячому чесним із самим собою. В даний час добре задокументований і незаперечний факт, що оцінка програмного забезпечення для великих проектів - це в кращому випадку азартна гра. Чи не наш обов’язок як професіоналів програмного забезпечення навчати потенційних клієнтів цього? Якщо клієнти не бажають приймати, що ми є експертами, то чи не наш професійний обов'язок піти?


1

Коли я почав працювати там, де я зараз, я виявив, що задаю те саме питання, яке ви задали досить багато. Щось можна сказати про водоспад з урядовими контрактами. За іронією долі, agile тепер стала модною думкою з державними замовниками (які реально працюють у водоспаді), тож тепер нам залишається ще більше намагатися реалізувати спритний процес з принципово негнучким клієнтом.

У нас є система, яку назвали "Scrummerfall", "Agilefall" або "безлад", але в багатьох аспектах ми потихеньку змогли прийняти більш гнучкий процес, оскільки цей (гаргантуанський) проект рухався вперед протягом багатьох років . Один із способів, яким ми це зробили, - це в основному пошук зворотних каналів спілкування з ПОТРЕБИТЕЛЯМ нашої системи, на відміну від наших КЛІЄНТІВ. Наші клієнти - це задушливий відділ, очолюваний призначеними посадовими особами, які ніколи не торкаються нашого програмного забезпечення у своєму робочому житті і не хочуть його розуміти. Наші користувачі - регулярний урядовий персонал, який намагається виконати важливе завдання. Для нас ключем до встановлення циклу зворотного зв’язку для зв'язку, який дозволив нам бути настільки ж спритними, як і ми, була необхідність UAT (Тестування прийняття користувача).

На першому етапі нашого проекту було вирішено, що представницька група АКТУАЛЬНИХ КОРИСТУВАЧІВ з різних офісів нашого величезного урядового замовника збиратиметься тут, і ми матимемо пару тижнів часу з ними, коли вони пройдуть серію тестові сценарії для перевірки нашого програмного забезпечення. Як і неофіційна річ, команда з вимог перетворила цього разу неоціненний спосіб отримати зворотній зв’язок від реальних кінцевих користувачів. Тим часом команда тестів UAT в уряді працювала через свою бюрократію, щоб мати все більший вплив на процес формальних вимог щодо їх завершення, включаючи зміни на замовлення. Кінцевим результатом є те, що такі керівники, як я, виступають як власниці продуктів, що входять до складу команд scrum, і здатні отримати неоціненний час роботи з реальними клієнтами, які дозволяють нам працювати дуже спритно.

Очевидно, що існує багато питань, і ми все ще не дуже спритні, але ми досить спритні, щоб їх можна було розглядати як приклад великого спритного проекту, який фактично використовує цю методологію в урядовому контрактному секторі.

Підводячи підсумок: використовуйте свій досвід як спритного євангеліста у власній організації, щоб проникнути у свого клієнта. Пройдіть з ними навчальний процес, встановіть партнерство, засноване на довірі з ключовими людьми на їхній стороні, і працюйте ПО ВСІХ формальних процедурах костенізованих вимог, які неминуче мають місце. Вам будуть вдячні хлопці на місцях, які мають реально використовувати те, що ви розвиваєте!


0

Ви припускаєте, що вимоги добре написані, і ви думаєте, що вони означають те, що вони думають, що вони означають. Зворотній рух спритного процесу допоможе їм отримати те, що вони мали на увазі, а також те, про що вони просили.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.