Як по-спритному, як базові інфраструктурні завдання на початку проекту плануються та розподіляються за допомогою жорстких управлінських рамок, таких як TFS в Інтернеті?


9

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

введіть тут опис зображення

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

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

Ще один релевантний приклад цього конкретного додатка - це взяття та перезапис блоку невдалого застарілого коду, який корисний для функцій цього додатка. Знову ж таки, це не має негайних результатів для користувача, але це необхідна робота. Де планування та виконання цієї роботи "живе" в проектному плані, орієнтованому на розповіді користувачів?

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

Я шукаю конкретної відповіді на це, щоб допомогти мені (та іншим) планувати проекти з використанням жорстких управлінських рамок, таких як TFS в Інтернеті. Вони не мають функції створювати "історії зацікавлених сторін" або інші неясні мета-рішення, зазначені у відповідях на запитання Як команда Scrum враховує інфраструктурні завдання на нараді планування?


2
Якщо я скажу вам, що до комп'ютера чи служби також можна ставитися як до "користувача", чи це змінює ваш аналіз?
Роберт Харві


1
@mmathis Я бачив це питання, воно схоже і актуальне. Однак жодна з відповідей насправді не відповідає на це запитання. Особливо, якщо ви зосереджуєтесь на тому, як це зробити в існуючих рамках, таких як TFS.
Боб Твей

@RobertHarvey частково, так. Це охоплювало б службу в цьому випадку, але не застарілий код. Я можу придумати інші ситуації, коли такий підхід не може покрити вимоги. Мені також було б цікаво дізнатись, наскільки це широко прийнято: це здається семантичною зміною, щоб обійти проблему "як розробник".
Боб Твей

2
Ви можете обдурити у користувачів системи та iteration0, або ви поріжете торт по-іншому. Перша функція дає певну функціональність користувача та інфраструктуру, необхідну для його роботи. Потім є функція 2, яка, відповідно, створює ще одну інфраструктуру, таким чином ви не витрачаєте час на налаштування інфраструктури, яка вам не потрібна. Якщо ти зараз кричиш, але це означає, що мені потрібно перепланувати, то ти не робиш спритності.
ctrl-alt-delor

Відповіді:


12

Мені подобаються інші відповіді, які говорять про те, щоб ввести стільки «інструментальних» кодів, скільки можна в Ітерацію 0. Однак іноді такі інструменти з’являються після того, як проект вже розпочався. Можливо, в Iteration 3 ви зрозуміли, що вам потрібен узагальнений віджет для розбору XML для використання в різних історіях, що рухаються вперед.

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

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


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

1
+1 Це стосується чудового моменту. Незалежно від того, називається це ітерація 0, 1, або інше - це багателла. Усі, крім самих необґрунтованих чи неінформованих, розуміють, що потрібні певні основи. Якщо ви малюєте, ви готуєте стіни, якщо готуєте, рубаєте, якщо ви музикант, ви практикуєте.
Роббі Ді

6

Якщо це інфраструктура, вона зазвичай вводиться в нульову ітерацію. Що таке нульова ітерація? Зазвичай це час між початком та плануванням до початку фактичних ітерацій.

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

Таким чином, ця робота буде виконана в ітерації 0. До того часу, коли ітерація 1 розпочалася, вже існувала б нова оболонка проекту, яка збирала б, мав сценарій автоматизованого збирання та розгортався. Тепер жодної функції користувача не буде, але вона готова до роботи.

Я б все ще відстежував і планував цю роботу як частину ітерації 0 роботи.

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


4
+1, тому що ми також використовуємо це, але насправді Interation Zero є новою Iteration One. Це просто ітерація, про яку зацікавлена ​​компанія не дуже, але необхідна, щоб дійти до тих речей, про які вона зацікавлена.
Грег Бургхардт

У вас може бути добросовісна ітерація 0, але це не означає, що ви не можете розпочати доставку цінності з першого дня. Вам не потрібен сервер складання, автоматизоване розгортання та сховище вихідного коду, щоб почати скорочувати код - це може статися пізніше (або навіть паралельно).
Роббі Ді

3

Залежить від інфраструктури.

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

Якщо ваша інфраструктура буде керована вашою командою та налаштована лише один раз, ви можете використовувати техніку ітерації 0, яку описує Джон.

Якщо налаштування інфраструктури потребуватиме декількох ітерацій (наприклад, ви можете налаштувати свій сервер збирання зараз, але сервери QA та препродріб будуть створені трохи пізніше), то їх побудовою можна керувати як нефункціональні PBI. Функціональні PBI можуть мати певні залежності від них, які ви можете кодифікувати в TFS, використовуючи посилання "попередник".

І звичайно, ви можете змішати і узгодити все вищезазначене. Наприклад, ви не можете багато зробити без сервера безперервної збірки, тому ви можете помістити це в ітерацію 0. Тим часом ваші попередньо попередні сервери можуть бути визначені як завдання для ітерацій 2 і 3, і вони можуть мати зовнішні залежності від вашої команди DBA ( хто не Agile), який буде виділяти вам екземпляри БД у вашому центрі обробки даних. Або, можливо, вам доведеться чекати випуску сертифікатів SSL для певних функцій; вони можуть перейти в ітерацію 4, і будь-які функціональні елементи, які покладаються на ці серти, повинні бути пов'язані з ними відносинами попередник / наступник.

У всіх випадках пам’ятайте:

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

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