Читаем Agile: оценка и планирование проектов полностью

Эти истории практически совпадают с операциями создания, редактирования и удаления. Разбивка большой истории на эти три более мелкие истории представляет очень распространенную модель и дает нам следующее правило:

Разбивайте большие истории на отдельные CRUD-операции.

<p>Удаление сквозной функциональности</p>

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

Так, многие приложения содержат окна, которые ведут себя по-разному в зависимости от привилегий текущего пользователя. Если это слишком сложно реализовать за одну итерацию, разработайте окно за первую итерацию и добавьте поддержку привилегий конкретных пользователей в последующей итерации.

В одном из моих проектов клиенту нужно было разбить историю, которая предполагала поиск данных и отображение результатов. Поиск каждый раз проводился по всей базе данных, однако отображаться должны были только те результаты, к которым пользователь имел право доступа. Команда решила игнорировать это ограничение, связанное с безопасностью, и позволить пользователям видеть весь набор результатов после первой итерации.

В качестве другого примера предположим, что команда планирует работу над историей, в которой говорится: «Как пользователь я должен зарегистрироваться с использованием своих имени и пароля, чтобы войти в систему». Команда обсуждает эту историю и предлагает перечень ограничений на пароли: они должны иметь не менее восьми символов, содержать как минимум одну цифру, не должны содержать три и более повтора одного символа, должны шифроваться при передаче и т. д.

Ни одно из этих требований не является слишком трудоемким, однако в сумме они могут сделать историю слишком большой, чтобы она уложилась в одну итерацию. Проблему можно устранить путем удаления мер безопасности из истории, предусматривающей регистрацию, и создания незащищенной и защищенной версий истории. Вторая история может содержать перечень запланированных мер безопасности, таких как длина пароля, ограничения на использование символов и пр. Возможно, вы не решитесь на выпуск релиза только с первой, незащищенной версией истории, однако разбивка первоначальной, большой истории таким образом создает определенную стоимость.

Это подводит нас к следующему правилу:

Попробуйте удалить сквозные функции (такие как безопасность, регистрация и обработка ошибок) и создать две версии истории: одну с поддержкой сквозных функций, а другую без поддержки.

<p>Несоблюдение требований к быстродействию</p>

При разработке программного обеспечения мы нередко забываем (или игнорируем) совет Кернигана и Плоджера: «Сделайте это работоспособным, а затем повышайте быстродействие» (Kernighan and Plauger, 1974). Несколько лет назад я работал над проектом по воспроизведению графиков цен фондового рынка. Веб-пользователи должны были запрашивать график по биржевому символу (тикеру) акции. Наша программа должна была затем загружать исторические цены этой акции (за разные периоды от текущего дня до последних пяти лет) и строить линейный график движения акции. В число условий удовлетворенности, связанных с этой функцией, входили точность линии, восполнение пропусков данных и быстродействие. Для достижения целевого быстродействия мы должны были кэшировать наиболее часто запрашиваемые графики и перезаписывать каждый из них раз в минуту. Поскольку кэширование составляло значительную часть трудозатрат на разработку этой новой функции, мы выделили его в новую пользовательскую историю и включили в план следующей итерации. В общем смысле этот подход можно применять к любому нефункциональному требованию, в результате мы получаем следующее правило:

Попробуйте разбивать большие истории, разделяя функциональные и нефункциональные аспекты на отдельные истории.

Например, этот подход можно применить, если новая функция должна занимать менее установленного объема памяти, выстраивать линию, имеющую меньше определенного числа форм, или занимать критические ресурсы менее определенного количества времени.

<p>Разбивка историй со смешанным приоритетом</p>
Перейти на страницу:

Похожие книги

Свой путь
Свой путь

Стать студентом Университета магии легко. Куда тяжелее учиться, сдавать экзамены, выполнять практические работы… и не отказывать себе в радостях студенческой жизни. Нетрудно следовать моде, труднее найти свой собственный стиль. Элементарно молча сносить оскорбления, сложнее противостоять обидчику. Легко прятаться от проблем, куда тяжелее их решать. Очень просто обзавестись знакомыми, не шутка – найти верного друга. Нехитро найти парня, мудреней сохранить отношения. Легче быть рядовым магом, другое дело – стать настоящим профессионалом…Все это решаемо, если есть здравый смысл, практичность, чувство юмора… и бутыль успокаивающей гномьей настойки!

Александра Руда , Андрей В. Гаврилов , Константин Николаевич Якименко , Константин Якименко , Николай Валентинович Куценко , Юрий Борисович Корнеев

Фантастика / Современная русская и зарубежная проза / Попаданцы / Юмористическая фантастика / Юмористическое фэнтези / Деловая литература
42 истории для менеджера, или Сказки на ночь от Генри Минцберга
42 истории для менеджера, или Сказки на ночь от Генри Минцберга

В своей новой книге выдающийся теоретик менеджмента Генри Минцберг предлагает радикально переосмыслить существующие стратегии управления организацией. Противник формального подхода в любой работе, автор рассуждает на «неудобные» темы: отсутствие «души» в современных компаниях; важность традиций перед лицом инноваций; ответственность за качество товаров и услуг; контроль над положением дел на «низших» уровнях иерархии.Как всегда, Минцберг предлагает дерзкие и резонансные решения, иллюстрирующие извечную мудрость: «Всё гениальное – просто». А предложенная автором стратегия «сообщественности» – шанс для многих руководителей вдохнуть в свою компанию новую жизнь.Адресовано менеджерам любого звена, государственным служащим на руководящих должностях и всем, кому небезразлична судьба команды, в которой они работают.В формате a4.pdf сохранен издательский макет.

Генри Минцберг

Деловая литература / Зарубежная деловая литература / Финансы и бизнес