Если вы проектировщик и говорите своему клиенту, что на этапе внесения правок в прототип вы готовы выполнить две-три итерации, а все остальные уже будут оцениваться отдельно, то на самом деле вы говорите следующее:
«Я сделаю вариант, который вам скорее всего не понравится. И боюсь, что для того, чтобы довести его до нужного вам вида, мне придётся править его слишком много раз».
В Проекторате нет такого ограничения. В рамках функциональных требований (которые специально не обладают высокой детализацией, чтобы был простор для манёвров) мы готовы выполнять любое количество итераций с правками. Во-первых, после такого заявления клиент может быть уверен в том, что ему не предоставят безапеляционно тот вариант, который ему не понравится. Во-вторых, это настраивает обе стороны на совместную работу, а не классическое противоборство заказчик-исполнитель.
В результате с того момента, когда мы стали работать по такой схеме, количество итераций с правками в среднем сократилось аж в два раза. И это был один из многих успешных шагов на нашем пути к работе «по одну сторону баррикад» с клиентом.
Итеративный процесс / Введение в программирование, урок 9 (JavaScript ES6)
Чтобы эта заметка не казалась оторванной от реальности, обратим внимание на две важные вещи:
1. Речь идёт о попроектной оценке, а не о почасовой;
2. Это правило сработает только с прямыми клиентами. На субподряде между проектировщиком и клиентом может оказаться менеджер, который не будет заинтересован в результате так же, как клиент. Когда мы работали с компаниями-партнёрами, зачастую у нас вообще не было прямого доступа к клиенту. В таких условиях, разумеется, нельзя работать по принципу бесконечных итераций, потому что они и правда могут стать бесконечными.
Источник: spark.ru
Понятие итеративных процессов (с примерами)
Итеративный процесс — это одно из тех понятий (наряду с Agile), которые ассоциируются в большей степени с разработчиками. Однако, так или иначе, с этим явлением сталкивается большинство коллективов, ведь метод итеративных процессов помогает снизить риск, обеспечивать эффективность, а также более гибко и динамично решать проблемы.
Если вы хотите попробовать применить метод итеративных процессов, эта статья — для вас. В ней мы расскажем, как определить итеративные процессы и реализовать их в работе вашего коллектива.
Что такое итеративный процесс?
Итеративный процесс — это практика создания, проработки и совершенствования проекта, продукта или инициативы. Коллективы, применяющие метод итеративных процессов в разработке, создают, тестируют и исправляют свой продукт до тех пор, пока не будет получен нужный результат. Метод итеративных процессов, по сути, представляет собой метод проб и ошибок, который постепенно приближает проект к его конечной цели.
Итеративные процессы — это фундаментальная часть бережливых методов и управления проектами по системе Agile, но их можно применять в любом коллективе, а не только в Agile-командах. В рамках итеративных процессов вы постоянно совершенствуете дизайн, продукт или проект до тех пор, пока вы и ваши коллеги не будете удовлетворены конечным результатом проекта.
Значение слова итерация (тик). Что такое итерация (тик).
А что же такое неитеративный процесс?
В случае неитеративного процесса вы и ваша команда работаете вместе над разработкой конечного продукта. При этом вы необязательно пробуете новые идеи. Как правило, для неитеративных процессов требуется больше времени на этапе разработки концепции и создания продукта, чтобы на этапе тестирования всё работало так, как и было задумано.
Самый распространённый пример неитеративного процесса — это каскадная модель. В каскадной модели вы и ваша команда определяете этапы проекта до начала проекта. Каждый новый этап начинается после полного завершения предыдущего. Требования и ресурсы обычно фиксируются до начала проекта, и сотрудники по возможности стараются не менять план проекта.
Допустим, вы работаете с дизайнерским агентством над созданием электронной книги. Сначала необходимо предоставить полный текст этой книги. Затем дизайнерское агентство возьмёт этот текст и на его основе создаст варианты оформления. И в завершение ваша команда выполнит техническое редактирование электронной книги, чтобы всё было в порядке с точки зрения форматирования и вёрстки. Это пример каскадной модели, поскольку каждый очередной этап начинается после завершения предыдущего (нельзя приступить к вёрстке электронной книги, пока не будет разработан её дизайн).
В зависимости от того, чем занимается ваша команда и над какими проектами работает, неитеративные процессы могут представлять сложность, поскольку они не дают времени на повторную отработку и постоянное улучшение. Поскольку инженерные разработки сопряжены с неопределённостью, вместо неитеративных процессов разработчики обычно применяют итеративный метод. При этом он подходит коллективам и других типов.
Есть ли разница между инкрементным и итеративным подходом?
В большинстве коллективов понятия инкрементного проектирования и итеративных процессов используются как взаимозаменяемые, да и на практике они зачастую идут рука об руку. Но между этими двумя понятиями есть отличие.
В случае итеративного процесса ваша команда занимается проработкой и совершенствованием проекта на основе обратной связи или новой информации. Итеративный подход основан на принципе проб и ошибок: в результате этих постоянных изменений проект со временем становится всё лучше.
При инкрементном проектировании, которое иногда называют инкрементной разработкой, вы добавляете новые функции и усовершенствуете продукт на базе исходной версии или первого полученного результата. В случае инкрементного проектирования команда целенаправленно создаёт базовую версию продукта, чтобы как можно скорее выпустить его (как это было, например, в старой мантре Facebook: «двигайся быстрее, сокрушая всё на своём пути»). Затем разработчики дорабатывают и улучшают исходную версию, навешивая на неё новые элементы и функции. Этот процесс продолжается до тех пор, пока конечный продукт не будет обладать всем необходимым функционалом.
В большинстве коллективов, применяющих итеративный подход, используется инкрементное проектирование. Хорошие итеративные процессы также являются и инкрементными, позволяя постоянно улучшать первоначальную версию продукта. А хорошее инкрементное проектирование, в свою очередь, является итеративным, поскольку вы должны быть готовы реагировать на отзывы клиентов и вносить необходимые изменения.
Пример метода итеративных процессов
Инженерные разработки
Многие разработчики применяют итеративный подход для разработки новых функций, исправления ошибок и A/B-тестирования новых стратегий. Зачастую разработчики создают несколько итераций, которые, по их мнению, являются одинаково перспективными, а затем тестируют их на пользователях. Они фиксируют все плюсы и минусы, а затем продолжают работу с наиболее удачным вариантом.
Разработка продуктов
Возможно, вы удивитесь, но в большинстве случаев разработка продуктов очень итеративна. Вспомните какое-нибудь персональное устройство, которое вы покупали для себя. Скорее всего, у него уже была какая-то предыдущая версия, существовавшая до вашей покупки, а возможно, появилась и более новая версия после. Вспомните, как развивались мобильные телефоны на протяжении многих лет.
Как с течением времени наушники становились всё более компактными и портативными. И как менялись холодильники одних и тех же марок, подстраиваясь под растущие потребности покупателей. Всё это — примеры итеративных процессов.
Маркетинг
Разные маркетинговые компании используют итеративные процессы в разной степени. Но маркетинг сам по себе в некотором смысле имеет итеративный характер. Например, специалисты по маркетингу могут тестировать различные рекламные тексты, чтобы выяснить, какой вариант получает больший отклик, или распространить две версии текста для рассылки, чтобы сравнить их показатели кликабельности. Кроме того, специалисты по маркетингу брендов могут использовать итеративные процессы для понимания того, какие визуальные образы лучше всего действуют на целевую аудиторию.
Продажи
Хотя большая часть работы, выполняемой отделом продаж, не является итеративной, для выполнения некоторых их задач может подойти итеративный подход. Например, отдел продаж может использовать итеративный подход для целей массовой рассылки. То есть осуществляется рассылка электронных писем с несколькими вариантами темы, а затем проводится анализ результата. Затем можно использовать самые удачные варианты темы, дающие максимальный результат.
Пять шагов итеративного процесса
Итеративный процесс может быть полезен на протяжении всего жизненного цикла проекта. В итеративном процессе ваши цели и требования принимаются в качестве отправной точки проекта. После этого команда будет производить тестирование, разработку прототипов и итерацию для достижения максимально эффективного результата. Для этого необходимо соблюдать нижеследующие правила.
1. Составление плана и требований
На этом шаге итеративного процесса определяется план проекта, а также выполняется согласование с общими целями проекта. Именно в этой точке проекта формулируются все самые значительные требования, от выполнения которых зависит успешность реализации проекта. Без этого действия итерация может не достичь своей цели.
2. Анализ и проектирование
На этом шаге вы с вашей командой занимаетесь бизнес-потребностями и техническими требованиями своего проекта. Если на первом шаге определялись цели, то на втором вы продумываете проект, который в конечном счёте поможет достичь этих целей.
3. Реализация
На третьем шаге создаётся первая итерация продукта реализации проекта. Данная итерация основывается на результатах анализа и проектирования и помогает достичь конечной цели проекта. Уровень детализации и время, затрачиваемое на эту итерацию, зависит от проекта.
4. Тестирование
После получения первой итерации производится её тестирование наиболее подходящим способом. Например, если вы работаете над улучшением веб-страницы, вам следует произвести A/B-тестирование относительно текущей версии веб-страницы. Если вы создаёте новый продукт или функцию, можно протестировать удобство их использования на потенциальных клиентах.
Помимо тестирования среди пользователей, также необходимо привлечь заинтересованные стороны проекта. Попросите их оценить итерацию и предоставить обратную связь.
5. Рассмотрение и оценка результата
После тестирования производится оценка успешности итерации и согласование необходимых изменений. Достигает ли эта итерация цели проекта? Почему? Если требуются изменения, можно возобновить итеративный процесс и начать со второго шага, создав следующую итерацию. Помните, что первоначальный план и цели должны быть одинаковыми для всех итераций.
Продолжайте работу на основе предыдущей итерации, пока не добьётесь желаемого результата.
При повторном запуске итеративного процесса позаботьтесь о том, чтобы все руководствовались теми же целями проекта, что и раньше. Итеративный процесс может длиться неделями или месяцами в зависимости от количества итераций, через которые вам приходится пройти. Если всякий раз при повторном запуске итеративного процесса итерация будет сосредоточена на целях проекта, вы сможете всегда держать свои ориентиры в поле зрения.
Плюсы и минусы итеративного процесса
Итеративная модель не универсальна для всех коллективов и проектов. Ниже приводятся основные плюсы и минусы итеративного процесса для вашей команды.
- Повышенная эффективность. Поскольку итеративный процесс представляет собой метод проб и ошибок, зачастую он помогает достичь желаемого результата быстрее, чем неитеративный процесс.
- Расширенные возможности для совместной работы. Вместо работы по заранее определённому плану и техническому заданию (создание которых также занимает много времени), ваш коллектив активно выполняет совместную работу.
- Высокая адаптивность. Получая новые данные на этапах реализации и тестирования, вы можете корректировать итерацию с учётом поставленных целей, даже если для этого придётся делать что-то такое, чего вы не планировали в начале итеративного процесса.
- Высокая экономичность. Если вам понадобится изменить объём проекта, на выполнение этого процесса уйдёт минимум времени и усилий.
- Возможность параллельной работы. В отличие от неитеративных методов, таких как каскадная модель, итерация не всегда зависит от завершённости предшествующей работы. Участники команды могут работать над несколькими элементами проекта одновременно, сокращая тем самым общую продолжительность проекта.
- Сниженныйриск на уровне проекта. В случае итеративного процесса риски выявляются и устраняются в ходе каждой итерации. Вам не приходится иметь дело с крупными рисками в начале и конце проекта: вы постоянно работаете над устранением рисков низкого уровня.
- Более надёжная обратная связь с пользователями. Когда пользователи имеют возможность взаимодействовать с итерацией или просматривать её, они могут сообщать вам, что в ней работает правильно, а что нет.
- Повышенный рискразрастания объёма. В силу экспериментального характера итерационного процесса ваш проект может начать развиваться неожиданным образом и выйти за пределы первоначального объёма.
- Негибкое составление плана и требований. Первым шагом итеративного процесса является определение требований проекта. Изменение этих требований в рамках итеративного процесса может нарушить ход работы и привести к созданию итераций, не отвечающих целям проекта.
- Неопределённые сроки. Поскольку команда создаёт, тестирует и корректирует итерации до тех пор, пока не добьётся нужного результата, определить чёткие сроки этого процесса не представляется возможным. Кроме того, длительность тестирования различных элементов может отличаться, что также отражается на общей продолжительности итерационного процесса.
Метод проб и ошибок
В конечном итоге любой коллектив может извлечь для себя что-то полезное из итеративного процесса. По возможности подходите к работе с позиции проб и ошибок. В случае сомнений проявляйте гибкость и обращайтесь за помощью к коллегам. И независимо от того, применяете ли вы итеративный метод, обязательно стремитесь к постоянному совершенствованию своей работы.
Источник: asana.com
Итерационная разработка сайта
В разработке программного продукта используется определенная методология. Это проверенные алгоритмы, помогающие создать эффективное ПО. Итеративная разработка — один из таких методов. В статье подробнее рассказываем о том, для каких проектов она подходит и как реализуется.
Что такое итерационная разработка сайта?
Итерация в веб-разработке — часть работы для достижения конечной цели. Например, у нас есть проект по разработке интернет-магазина с личным кабинетом. Мы его декомпозируем на задачи, а каждую большую задачу — на более мелкие. Каждый шаг в этом плане, который приближает нас к итоговой цели, можно назвать итерацией.
Итерационный метод используют в проектировании сложных сервисов или для тестирования идей. Например, стартап разрабатывает базовый функционал мобильного приложения и постепенно его улучшает. А если компания планирует обновить корпоративный сайт, для такого проекта интеграционная система не нужна.
Итерационный метод разработки состоит из четырех этапов жизненного цикла ПО. Продвижение по ним идет последовательно:
- фаза требований. Цикл ПО начинается с анализа заявленных требований, обработки и накопления информации к ПО. Когда данных становится достаточно, наступает следующая ступень;
- фаза дизайна. С учетом заданной спецификации разрабатывается программный продукт. Это может быть новый дизайн или доработка старого;
- фаза внедрения и тестирования. На этом этапе продукт внедряют и тестируют;
- фаза обзора. На заключительном шаге ПО дорабатывается и улучшается.
Как это — делать проект итерациями?
Итерационная разработка хорошо подходит для сложных проектов или для вывода новых цифровых продуктов на рынок. Большим проектом в IT принято называть тот, в котором затраты превышают 6 человеко-месяцев. Человеко-месяц — 20 рабочих дней * 8 часов = 160 человеко-часов, но в некоторых проектах может быть 21 рабочий день.
Вне зависимости от сложности, никакой проект нельзя реализовать за один раз. Например, одним план-графиком раньше велись разработки продуктов по заказам для госпредприятий. Но сейчас и госзаказчики перешли на поэтапную реализацию.
Для стартапов итерационная разработка позволяет адаптироваться к изменяющимся условиям на рынке и реализовывать задуманное быстрее, пусть и в минимальном количестве. Проект будет успешнее, если запуск произойдет с базовым функционалом или услугами, чем с полным набором возможностей, которые очень долго разрабатывали.
Поэтапная разработка дает клиенту возможность получить быстрый результат — работающий сервис в минимальном виде, который уже может генерировать продажи. И постепенно, по мере необходимости, можно наращивать функционал.
Для примера, мы в IT-компании Optimal Group реализовывали интернет-проект для food-tech компании с брендом Geelfood. По договоренности с клиентом, в прототипах интерфейса сервиса по доставке еды сразу был запланирован максимальный функционал: бонусная система начисления баллов, использование промокодов, приглашение друзей, автопродление меню и т.д. Но технически эти возможности реализовывались поэтапно. Иначе проект никогда бы не запустили.
В первую очередь был разработан каталог с продуктами и возможностью сделать заказ. За ним последовал мини-личный кабинет клиента, в котором он мог отслеживать продукты и дни доставки. Поэтапно добавляли остальной «необязательный» функционал.
Прототип интерфейса сервиса по доставке еды Geelfood 1
Прототип интерфейса сервиса по доставке еды Geelfood 2
Описание всех возможностей на начальном этапе проекта позволяет увидеть, как должен выглядеть конечный продукт. Такая цель мотивирует команду разработки.
В итерационной модели используют разные agile-подходы: SCRUM, канбан. А все планы по разработке переносят в облачный софт. Например, в Optimal group мы используем канбан.
Пример визуализации расписанных задач по методу канбан в системе Trello 1
Пример визуализации расписанных задач по методу канбан в системе Trello 2
Пример визуализации расписанных задач по методу канбан в системе Trello 3
Пример визуализации расписанных задач по методу канбан в системе Trello 4
Kanban ― это один из методов улучшения процессов разработки и часть agile-философии. В его основе лежит «Манифест гибкой разработки программного обеспечения». Работа над проектом по этому методу всегда начинается с визуализации. Так процессы всегда находятся на виду у команды. Для визуализации используют специальные доски и набор карточек или стикеров.
Преимущества и недостатки итерационной модели разработки сайта
Итеративная модель не идеальна. Она подходит под определенную категорию проектов.
Очевидный плюс метода — реализация сложного продукта, который на момент запуска с основными функциями будет максимально соответствовать рыночным реалиям.
Например, продукт А запустили в работу по методу итерационной модели. На рынок вывели ПО с минимальным функционалом. А потом постепенно дорабатывали новые функции с учетом рыночной ситуации, обратной связи пользователей, изменившихся приоритетов заказчика.
Продукт Б решили разрабатывать сразу с максимальным функционалом. На него было потрачено больше времени. А на этапе запуска стало очевидно, что ПО не соответствует изменившимся реалиям рынка.
Второе преимущество — быстрая реализация продукта: от идеи до рабочей демо-версии.
Главный недостаток подхода — увеличенная стоимость работ. Реализация по классической модели стоит дешевле, чем работа итерациями. Разница в затратах связана с трансакционными издержками. Для web-разработки такими издержками в рамках каждой итерации могут быть: созвоны с командой, работа тестировщика, публикация изменений, управление проектом и пр.
Цена на проект по итеративной модели в Москве у агентств разработки будет стоить дороже.
Заключение
Цель итеративной модели — создание базового продукта и в дальнейшем шаги по его совершенствованию. Этот подход поднимает итоговую стоимость проекта для бизнеса. Но он хорошо подходит для крупных продуктов, стартапов, которые спешат выйти на рынок и начать привлекать клиентов.
Итеративная модель проста и легка в освоении и использовании. Она имеет свои плюсы и минусы.