Форум Сообщества Аналитиков

×


Agile and Iterations(Прочитано 15080 раз)
Agile and Iterations : 26 Декабря 2007, 16:25:34
Вот тут недавно поговорил с человеком, считающим себя экспертом Agile, и услышал такое мнение, что за итерацию Команда должна выпустить какую-то работающую ф-ть в продакшен.
Т.е. пройти все стадии от анализа до внедрения на продакшен за одну итерацию. Мне кажется это утопия для больших проектов и для начала любого проекта.
Я всегда представлял итерацию как набор каких-то тасков, кот. надо закрыть. Будь то аналитические таски, толи разработческие. Можно комбинировать несколько дисциплин, но все скомбенировать для большого проекта, а не по доработке багов, это мне кажется утопия.
Ближе к концу разработки мы можем этого добиться но не как не в начале или при доработке большого проекта!
Вы как думаете?
« Последнее редактирование: 26 Декабря 2007, 16:28:49 от bas »
Не важно какой ты сейчас - большой или маленький, важно - как ты растешь.
Б.А.С.



Re: Agile and Iterations Ответ #1 : 26 Декабря 2007, 16:50:12
К сожалению мы не слышали полной версии мнения твоего эксперта. Но боюсь он вполне прав. Каждая итерация должна заканчиваться новой функциональностью в продукте и синхронизацией с предыдущей версией. Правда это имхо не означает непременное внедрение этой самой функциональности, возможно бета тестирование на фокус-группе.

Например в компании, где я работаю, имено так и делается, хотя плана итераций там особо нет, делается на интуиции
« Последнее редактирование: 26 Декабря 2007, 17:28:33 от Galogen »



Re: Agile and Iterations Ответ #2 : 26 Декабря 2007, 17:26:18
Но боюсь он вполне прав. Каждая итерация должна заканчиваться новой функциональностью в продукте и синхронизацией с предыдущей версии.

Имхо, даже MS в MSF на этом настаивает :), что виток спирали должен вносит конкрентый функционал -> чтобы для заказчика разработка была менее абстрактной.



Re: Agile and Iterations Ответ #3 : 26 Декабря 2007, 17:30:02
Боюсь - это так - в качестве оборота речи



Re: Agile and Iterations Ответ #4 : 26 Декабря 2007, 17:40:41
Вот наша небольшая перепалка со сторонниками Агиле:

Цитировать
[16:30:28] Alexey Tigarev says: Привет!
[16:30:50] Alexey Tigarev says: +1
[16:30:55] Alexey Tigarev says: по поводу продакшена
[16:31:16] Alexey Tigarev says: ну скажем так - на начальных стадиях это могут быть внутренние релизы
[16:31:43] Alexander Baikin says: а начальный этап это сколько??
[16:31:59] Alexander Baikin says: какя часть проекта?
[16:32:39] Alexey Tigarev says: ну чтобы уже пользоваться можно было
[16:33:16] Alexander Baikin says: т.е. нафиг вижен и изучение требований заказчика, сразу хватаем часть и шарашем?
[16:33:37] Alexey Tigarev says: я бы не сказал так
[16:33:46] Alexey Tigarev says: скорее параллельно
[16:34:02] Alexander Baikin says: саме себе противоречите :)
[16:34:20] Alexey Tigarev says: да, мир соткан из противоречий :)
[16:34:53] Alexander Baikin says: вот примерно с таким спецом я видимо и столкнулся 6)
[16:35:55] Alexander Baikin says: т.е. на первых этапах делаем упор на сбор требований, потом переходим все больше и болше  разработке и внедрению и к концу проекта добиваемся одна итерация - один релиз
[16:36:26] Alexey Tigarev says: угу
[16:36:44] Alexander Baikin says: сенкс, Вы меня успокоили :)
[16:37:19] Alexey Tigarev says: сбор требований я бы не отделял от обычных итераций, хотя в начале этого действительно больше
[16:37:24] Alexey Tigarev says: вижен - да\
[16:37:48] Alexander Baikin says: ну как Вы после Вижена сразу будете шарашить??
[16:38:05] Alexander Baikin says: хотя мейн вар исп надо описать
[16:38:27] Alexander Baikin says: * хотя бы
[16:38:27] Alexey Tigarev says: мейн вар исп - это что?
[16:38:36] Alexander Baikin says: main use cases
[16:38:59] Alexey Tigarev says: ну их по одному можно колбасить с TDD и рефакторингом
[16:39:38] Alexander Baikin says: и на архитектуру забиваем??
[16:40:53] Alexey Tigarev says: высокоуровневая архитектура (которую трудно изменить) - её можно определить, сделав пару-тройку проб (architectural spikes)
[16:41:22] Alexander Baikin says: просто надо недужинную смекалку иметь аналитику, чтобы сразу продумать основные вещи и не забыть про что-то важное
[16:41:23] Alexey Tigarev says: дизайн классов etc. - потом рефакторинг всё равно перемелет это в хороший дизайн
[16:41:52] Alexander Baikin says: а пробы - это тоже работающее приложение??
[16:42:25] pavel.gabriel says: Работающее приложение - это то, что выполняет тесты.
[16:42:28] Alexander Baikin says: ну как Вы дизайн классов делать без описания хотябы основных use cases?
[16:42:45] pavel.gabriel says: Александр, вы в UC не сможете все описать.
[16:42:53] pavel.gabriel says: Сразу, за месяц, за год.
[16:42:56] Alexey Tigarev says: пробы потом выбрасывают, это так - попробовали написать, скажем, сервлет и задеплоили на сервлет-контейнер - работает - круто!
[16:43:13] pavel.gabriel says: Основные UC - это что?
[16:43:35] Alexander Baikin says: кот. описывают основную/критическую ф-ть без которой никуда
[16:43:46] Alexander Baikin says: Павел, это была шутка по поводу проб :)
[16:43:56] Alexander Baikin says: просто Леша сам себе противоречит
[16:44:10] Alexander Baikin says: вот и хочу на его же слова его самого натолкнуть
[16:44:19] Alexander Baikin says: да не хочу я все описвать
[16:44:25] pavel.gabriel says: дык и не нужно.
[16:44:27] Alexander Baikin says: Вы требования когда нить писали??
[16:45:30] Alexander Baikin says: просто можно описать подробно, и допустить ошибку не указав что-то важное, а можно написать мазками но задев главные моменты, чтобы потом пол приложения не передлывать
[16:45:38] Alexey Tigarev says: Для дизайна классов все use cases в TDD не обязательно иметь, берёшь один use case, специфицируешь результат юнит-тестами или функциональными тестами, и реализуешь.. всё
[16:45:58] Alexey Tigarev says: Александр - я писал SRS
[16:46:50] Alexey Tigarev says: По моему опыту - это долго, и потом всё равно всё скомкается, и будет трудно поддерживать этот мега-документ
[16:47:11] pavel.gabriel says: путешествуй на легке!
[16:47:14] Alexey Tigarev says: Общие мазки - это вижен
[16:47:23] pavel.gabriel says: тесты и код :) Так говорит XP
[16:47:39] Alexey Tigarev says: У меня он обычно большой получается - страничек восемь
[16:48:04] Alexander Baikin says: Вижен дожен быть не более 3 страниц по Агиле :)
[16:48:15] Alexander Baikin says: это у вас не вижен уже 6)
[16:48:45] Alexander Baikin says: Вижен по Агиле описывает 3 вещи:
1. Проблемы
2. Их решения
3. Фичи
[16:48:46] Alexey Tigarev says: Ну и в XP ещё такая штука есть как "метафора системы" вместо дизайна всей архитектуры
[16:49:34] Alexander Baikin says: Хорошо, а кто из вас применяет ХР?
[16:49:41] Alexander Baikin says: или применял?
[16:49:49] pavel.gabriel says: я планирую. но пока изучаю :)
[16:49:59] Alexander Baikin says: для построения большой системы?
[16:50:02] pavel.gabriel says: да.
[16:50:07] Alexey Tigarev says: Я пользовался шаблоном Vision and Scope Document от Карла Вигерса, возможно, можно и покороче :)
[16:50:08] pavel.gabriel says: достаточно большой.
[16:50:30] Alexander Baikin says: Леша, это Вижен не для Агиле
[16:50:52] pavel.gabriel says: Кстати, а о чем спор?
[16:50:58] pavel.gabriel says: Про итерацию и в продакшн?
[16:51:04] Alexander Baikin says: да ни о чем просто рассуждения :)
[16:51:18] Alexander Baikin says: ну типа того
[16:51:20] Alexey Tigarev says: Ну не вижен для Аджайл.. ну и ладно :)
[16:51:34] Alexander Baikin says: а мы ща про Агиле :)
[16:51:56] Alexey Tigarev says: Аджайл в переводе означаей "гибкий" :)
[16:52:07] Alexander Baikin says: :)))))))))))))))))))))))))
[16:52:09] Alexander Baikin says: и?
[16:52:35] Alexey Tigarev says: Я понимаю это так, что я не ограничен в применении и каких-то не-Agile практик :)
[16:52:50] Alexander Baikin says: это не значет, что кто как хочет так и делает?!
[16:53:19] Alexander Baikin says: должен же быть мейн стрим?! кот. можно немного нагнуть в свою сторону?!
[16:53:32] Alexey Tigarev says: Ну да, команда выбирает конкретную имплементацию методологии для проекта
[16:54:03] Alexey Tigarev says: Ну как именно оформлен вижен - думаю, некритичное отклонение
[16:54:17] Alexey Tigarev says: Гораздо важнее принцип, что наклонять - это можно
[16:58:08] Alexander Baikin says: [16:50:52] pavel.gabriel says: Кстати, а о чем спор?
[16:50:58] pavel.gabriel says: Про итерацию и в продакшн?

Павел, спор про итерации. Т.е. раскажите как бум работать на начале проекта?! Т.е. Сколько, какие итерации, что будет в них на начале проекта. Первая стадия проета - 6 месяцев
[16:59:38] Alexey Tigarev says: На мой взгляд, первые пару итераций можно заниматься только виженом и архитектурыми исследованиями (если проект их требует) - т.е. до месяца
[17:02:18] Alexander Baikin says: Круто, за месяц для 6 мес проекта можно все требования описать :)
[17:02:40] Alexander Baikin says: Тем более если на проекте 2 аналитика 6)
[17:02:42] Alexey Tigarev says: ты сказал - первая стадия 6 мес
[17:03:16] Alexander Baikin says: ну стадия - это часть проекта
[17:03:39] Alexander Baikin says: т.е. у проекта например 3 стадии
[17:03:43] Alexey Tigarev says: значит, вы ещё быстрее можете, с двумя аналитиками-то
[17:04:04] Alexey Tigarev says: если поланалитика в лице тимлида - то другое дело
[17:05:58] Alexander Baikin says: Ну вот у меня есть проект, поделенный на 3 части, каждая часть (по плану) 6 месяцев, вот как раз мы выделяли 2 недели на вижен для первой стадии + 3 недели на требования + дизайн, и это без начала разработки :)
[17:07:07] Alexander Baikin says: В общем, сначала итерации без выпуска продукта, потом с выпуском непонятно чего, потом (после половины), начинаем риблежаться к ХР :)
[17:07:09] Alexander Baikin says: так?
[17:07:33] Alexander Baikin says: так это уже не ХР а РУП дорогие мои :)
[17:09:00] Alexey Tigarev says: RUP, насколько я слышал, вполне способно поместить XP внутрь себя, и XP ему не будет противоречить... хотя я RUP не знаю, ничего не гарантирую :)
[17:09:30] Alexander Baikin says: надуюсь, что ХР Вы знаете :)
[17:10:17] Pavel Afanasenko says: привет всем!
[17:10:22] Alexander Baikin says: вооооооооооооооооо
[17:10:30] Alexander Baikin says: привет :)
[17:10:44] Alexander Baikin says: ваши комменты, сэр!
[17:10:57] Pavel Afanasenko says: к сожалению писать много сейчас у меня возможности нет - через 2 часа семинар в Люксофте (кстати, москвичи - welcome!)
[17:11:11] Alexander Baikin says: приду :)
[17:11:12] Pavel Afanasenko says: если в двух словах - то да, это реально
[17:11:21] Alexander Baikin says: в начале проекта??
[17:11:28] Pavel Afanasenko says: в любой момент проекта
[17:11:47] Alexander Baikin says: требования пишем?
[17:11:48] Pavel Afanasenko says: мало того, некоторые команды делают итерации длиной в одну неделю
[17:11:58] Pavel Afanasenko says: и выкладывают сразу в продакшн
[17:12:05] Alexander Baikin says: это когда??
[17:12:08] Alexander Baikin says: в начале проекта?
[17:12:15] Alexander Baikin says: 1 неделя и в продакшен?
[17:12:20] Pavel Afanasenko says: на всем протяжении проекта
[17:12:23] Pavel Afanasenko says: дв
[17:12:27] Pavel Afanasenko says: да
[17:12:33] Alexander Baikin says: требования пишем?
[17:12:38] Pavel Afanasenko says: требования пишем
[17:12:41] Alexander Baikin says: поддерживаем актуальность?
[17:12:47] Pavel Afanasenko says: но не в виде документа в Ворде
[17:12:53] Pavel Afanasenko says: а в виде User Story
[17:12:59] Pavel Afanasenko says: карточки
[17:13:04] Pavel Afanasenko says: размером А5
[17:13:08] Alexander Baikin says: и выкидываем?
[17:13:18] Pavel Afanasenko says: нет, выполняем :)
[17:13:23] Alexander Baikin says: а потом?
[17:13:31] Pavel Afanasenko says: в смысле?
[17:13:41] Alexander Baikin says: а потом выкидывем карточки?
[17:13:47] Alexander Baikin says: или пишем новые?
[17:13:57] Pavel Afanasenko says: нет, хранятся в архиве
затем пишем новые, итд
[17:14:13] Alexander Baikin says: ну они же не актуальны 6)
[17:14:18] Alexander Baikin says: зачем хранить??
[17:14:27] Alexander Baikin says: к концу проекта точно выкенем
[17:14:33] Pavel Afanasenko says: почему не актуальны?
[17:14:53] Pavel Afanasenko says: функционал реализован, тесты есть и работабт - зачем выкидывать карточки? :)
[17:15:03] Alexander Baikin says: да потому что что-то вообще может координально поменяться
[17:15:08] Pavel Afanasenko says: может
[17:15:13] Pavel Afanasenko says: а может и не поменяться
[17:15:29] Alexander Baikin says: если меняется то выкидываем и пишем новые или как??
[17:15:34] Pavel Afanasenko says: да
[17:15:44] Alexander Baikin says: а если проект продолжительностью 3 года?
[17:16:00] Pavel Afanasenko says: ну релизы то чаще выпускаются, я надеюсь :)
[17:16:29] Pavel Afanasenko says: 3 года ждать релиз - это роскошь в современных условиях
[17:16:35] Alexander Baikin says: ну релизы полугодичные
[17:16:40] Pavel Afanasenko says: ну и нормально
[17:17:01] Alexander Baikin says: т.е. через год кто вспомнит как что-то работает??
[17:17:05] Pavel Afanasenko says: есть тесты
[17:17:16] Pavel Afanasenko says: они напомнят если что :)
[17:17:22] Alexander Baikin says: автомитизированные
[17:17:25] Pavel Afanasenko says: ага
[17:17:27] Alexander Baikin says: и что они нам скажут?
[17:17:42] Pavel Afanasenko says: если что-то разъедется, то они обязательно скажут
[17:17:52] Pavel Afanasenko says: и люди тоже остаются :)
[17:18:16] Alexander Baikin says: да дело не в разъедутся а в том что никто не будет знать уже как это работает
[17:18:17] Pavel Afanasenko says: и Product Owner тоже живенький обычно бывает после года разработки :)
[17:18:37] Pavel Afanasenko says: Саша, откуда такое убеждение?
[17:18:41] Pavel Afanasenko says: люди все на месте
[17:18:56] Pavel Afanasenko says: и не только разработчики
[17:19:04] pavel.gabriel says: Павел, привет! Я воттут ещё прочитал, что нам документация не нужна.
[17:19:08] Pavel Afanasenko says: но и Product Owner
[17:19:37] pavel.gabriel says: Зачем? Если есть тесты, с помощью которых описывается, как система функционирует.
[17:19:40] Pavel Afanasenko says: карточки User Story - это документация
[17:19:45] Pavel Afanasenko says: тесты - это документация
[17:19:48] pavel.gabriel says: Если хочешь узнать, как работает система - посмотри тесты и код.
[17:20:17] pavel.gabriel says: Т.е. документация нужна, но она не в традиционном виде :)
[17:20:25] Pavel Afanasenko says: Павел, Саша утверждает, что никто не вспомнит - я ответил возражением, что люди остаются
[17:20:40] Pavel Afanasenko says: документация нужна, и она есть, но в другом виде
[17:20:53] pavel.gabriel says: Да. Но XP говорит, что люди не обязательно должны оставаться.
[17:21:12] Pavel Afanasenko says: не обязательно. Но как правило они остаются, если все нормально :)
[17:21:23] Pavel Afanasenko says: зачем же доводить все до крайностей? :)
[17:21:41] Pavel Afanasenko says: люди - это самое ценное, что есть в Agile!
[17:21:46] Pavel Afanasenko says: без пафоса
[17:21:56] pavel.gabriel says: Сама методология позволяет проекту не сильно зависеть от конкретных людей. Т.е. если кто-то покниет команду, то ничего страшного не произойдет. Все, что нужно знать - остается внутри. А программист может уже и не помнить того, что писал. Да и переписать могли уже другие.
[17:22:18] pavel.gabriel says: Я говорю про XP по свеже прочитанному.
[17:22:28] pavel.gabriel says: Команда - самое ценное.
[17:22:39] pavel.gabriel says: Согласен. Но нет такого, что если ушел человек, то проект умрет.
[17:23:02] Pavel Afanasenko says: Команда состоит из людей. В Agile все устроено так, что проект не зависит от одного челвоека
[17:23:03] pavel.gabriel says: Человек не носитель (единственный) информации в данном случае. Он её генератор.
[17:23:12] Pavel Afanasenko says: Павел, именно!
[17:23:34] Pavel Afanasenko says: давайте сделаем так, чтобы я закончил писать в 17:30 по Москве
[17:23:47] pavel.gabriel says: ок. я пойду чайку сделаю :)
[17:27:37] Pavel Afanasenko says: я к тому, что у меня сегодня есть только 3 минуты для того, чтобы ответить на ваши впросы - задвайте
[17:27:58] Pavel Afanasenko says: уже даже начал для экономии через раз на клавиши нажимать :)
[17:30:56] Pavel Afanasenko says: в качестве примера: мне известна одна команда, которая делает сейчас один широко известный публичный сервис. они работают по Agile. У них цикл разработки - одна неделя. И они этот цикл выдерживают на протяжении около 2-х лет
[17:31:18] Pavel Afanasenko says: на это все, друзья. Пишите вопросы сюда, отвечу завтра
[17:36:38] Alexander Baikin says: блин, аналитика нафиг с такого проекта, че ему там делать??
[17:37:02] Alexander Baikin says: я например ни малейшего желания не имею в коде разбираться ...
[17:37:17] Pavel Afanasenko says: Саша, увидимся на семинаре :)
[17:37:22] Pavel Afanasenko says: там и поговорим
[17:37:24] Pavel Afanasenko says: ок?
[17:37:27] Alexander Baikin says: ок
[17:37:43] Alexander Baikin says: это мои мыслы не требующих моментальных ответов :)
Не важно какой ты сейчас - большой или маленький, важно - как ты растешь.
Б.А.С.



Re: Agile and Iterations Ответ #5 : 26 Декабря 2007, 19:24:00
Скорее всего, "человек, считающий себя экспертом Agile", держит в голове какие-нибудь интернет-проекты, в которых путь от разработчика до "продакшена" ограничивается двумя панелями в Total Commander. В этой сфере, как я понимаю, вообще часто принято работать "с колёс".

Я вот сейчас параллельно работаю над тремя приложениями: 1) одно для POS терминала, 2) одно серверное, и 3) наш project tracker на PHP.

Для 3-го варианта завершение итерации с выходом на "продакшн" абсолютно допустимо - покодил чуть-чуть на своём лэптопе, убедился, что фича работает, и тут же выложил. Риски минимальны, заказчик внутренний, код простой и легко читаемый - никакого формализма. И что характерно, так было с самого начала проекта - на разработку самой первой версии (учёт текущих задач) ушла примерно неделя, без оформления Vision и разработки архитектуры. Очень уж простое приложение.

Для 2-го - невозможно в принципе, после минимальных изменений в коде его нужно очень тщательно тестировать (чем мы весь последний месяц и занимаемся), и само понятие итерации становится очень расплывчатым. (Помнится, Асхат Урузбаев говорил, что характерный признак Agile - короткие итерации).

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


В общем, каждому проекту - индивидуальный подход (или, как говорил нам бригадир в трудовом лагере на прополке, "каждому кустику поклониться надо" :) ).
greesha.ru

Реальность - это убийство прекрасной теории бандой мерзких фактов. (Роберт Гласс)




 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19