Клиент всегда прав (с Agile он прав очень часто)
К классическим моделям разработки относится водопадная [waterfall] модель. Её отличает строгая последовательность: составление плана - написание документации (под ключ) - проектирование - разработка - тестирование - ввод в эксплуатацию. В этой цепочке требования клиента должны быть жёстко описаны, и только после этого начинается работа над дизайном (архитектурой) проекта. Но кто может дать гарантию того, что требования не изменятся? Только сам клиент, но такая ситуация редка, да и невозможна, ибо заказчику не безразличны его вложения. В обратном случае вышло бы так: деньги я вложил, делайте как сочтёте нужным, а в конце меня всё устроит. Нонсенс! Требования меняются: как со стороны клиента (уточнения, пересмотры, пожелания), так и со стороны среды, в которой будет крутится продукт.
И вот здесь кроется коварство такой рельсовой модели: на согласование уходит порядочный промежуток времени, исписывается добротная стопка бумаги, наработки теряют смысл (по крайней мере для текущего проекта), начинается торговля между заказчиком и исполнителем.
В случае модели Agile существует постоянное взаимодействие разработчиков с клиентом, что направлено на снижение доли ошибки в требованиях и мгновенное реагирование на изменение последних.
Возврат инвестиций
Другая немаловажная ситуация связана с материальными вкладами клиента. Если что-то пойдёт не так, и заказчик пожелает разорвать отношения с разработчиком, то в случае водопадной модели он останется без денег и без ПО. Это почти наверняка так, поскольку цикл разработки не завершён, то есть, например, не проводилось тестирование, а следовательно, продукт сырой и никому не нужный. Что в случае с Agile? Здесь иначе, даже вот как: клиент с первых итераций получает работающее ПО (пусть и не обладающее всеми нужными функциями, но стабильное).
Другой момент - время разработки. Оно может составлять годы (когда проект очень крупный, а работа сверх-ответственная). Колебания среды (стандартов, аппаратного обеспечения) могут сыграть вполне состоявшуюся шутку. План, разработанный когда-то, оторванный во времени от проектирования и программирования, потеряет актуальность вот сейчас, когда мир изменился. Для водопадной модели это катастрофа, связанная с большими материальными и временными затратами.
Мыслить перспективой
Модель Agile исповедует работу небольшими итерациями, в которые входят работы из всех этапов проектирования: составление плана, анализ требований, разработка архитектуры, программирование, тестирования, ввод в эксплуатацию (только нагрузка на каждый вид работы разная от итерации к итерации: на первых шагах актуальна проработка прецедентов и требований; на других - программирование).
Ещё одна характерная черта - написание тестов - также происходит при участии заказчика. Тестовые модули определяют код, способствуют тому, чтобы последний принимал более простую форму: разработчики начинают задумываться, что же от них требуется, и искать лучший (читай лёгкий) путь для достижения этого. Таким образом, код пишется под тесты, а затем проверяется этими же самыми тестами. Разумеется, что звезду таким подходом не схватить, но оно и не требуется.
Вместо вывода.
Agile - ваш выбор (как клиента), если:
- результат нужен как можно раньше
- вы не знаете что вам нужно, но хотите узнать
- вы желаете контролировать риски
7 комментариев:
Во-первых хотелось бы сказать что цвет текста совершенно аццтойный - нихера вапще не разоборать. Если имеется желание чтобы кто то заглянул сюда второй раз - то мне кажется логичней цвеовую схему как то сменить или сделать более контрастной.
Во-вторых - в тексте нету определения - что такое Agile. Я понял это не вполне.
В-третьих в жизни это неприменимо совсем. Заказчику проще не отдавать проект год, н потом уже показать работающий пример чем объяснять по 10 раз - а почему это не работает , а почему то , а мы же заказывали вот это, вот то. И .. нельзя получить частично работающую систему. Это как каша - она либо в тарелке, либо рядом. Третьего не надо.
Спасибо за совет, буду менять.
Определение есть вот тут Agile software development. Модель разработки программного обеспечения
Насчёт последнего: есть клиенты, которые хотят всё и сразу, но готовые терпеть. Но есть такие, которые хотят держать руку на пульсе, контролировать процесс, быть вовлечёнными и направлять. В последнем случае они получают неполнофункциональное ПО, но ведь они сознательно на это идут. Начиная осваивать продукт уже сейчас, они сохраняют время на последующем внедрении и соответственно обучении персонала. Если же, написав ТЗ, составив перечень требований, проходит год, а затем в конце цикла разработки сдаётся проект клиенту, то у последнего могут быть вопросы типа: "А почему это так? Должно быть по другому" - или банально расходится мнение в видимости каких-то функций (ведь только заказчик знает, что ему нужно).
Посему вот что: клиент сам решает, как ему быть. Или он работает в команде с разработчиками (Agile), или доверяет им полностью (waterfall).
Ну тогда я не знаю примеров, когда бы разработка велась НЕ по принципам Agile. Сегодня все умеют считать деньги и понимают потребность в автоматизации.
Разработка НЕ по принципам Agile возможна только для проектов автоматизации, которые направлены не на собственно автоматизацию, а на увеличение капитализации компании. Например сюда относится чаще всего внедрение SAP R/3.
From Spike to Sphin][:
Наконец добрался до твоих дебрей... Почитал, так сказать.
Про Агилу антиресно, признаюсь ,что читал увлеченно, хотя спать хотел.
Хвалю...
P.S. по ссылочке тоже прошел: http://xmages.net/out.php/i67065_1227081876939.jpg - как ты сказал, правда прикольная \смайл щерится\
Цвета стали гораздо приятней. НЕ потому что я фанат минималистичного светлого дизайна - а потому что просто читать стало комфортней и приятней.
Искал чем бы продолжить обучение по проектированию и наткнулся на такую подборку, которая как раз в тему:
http://agileconsulting.ru/wiki/index.php?title=Agile_%D0%BA%D0%BD%D0%B8%D0%B3%D0%B8
Качнуть нельзя, но зато ясно что искать ;)
/МУХ/
Интересный список литературы, спасибо. Как исходный пункт для поиска - выше всяких похвал. Из этого перечня уже читаю ряд книг.
Отправить комментарий