Отправляет email-рассылки с помощью сервиса Sendsay

Бизнес с нуля? Это возможно!

  Все выпуски  

Бизнес с нуля? Это возможно! Как разработать подробный и полный функционал программы


Не ошибусь, если скажу, что большинство программистов придумывают функционал своих программ “от балды”, т.е. не обосновывая его вообще никак. Процесс носит характер гадания на кофейной гуще: “А давайте сделаем то-то и то-то, ведь у наших конкурентов это есть”, или: “Ну как же нам без админки обойтись? Без админки никак!”. По сути, это гадания и догадки, не имеющие под собой никакого базиса.

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



Эта волшебная методика давно и хорошо известна, однако все её изложения, к несчастью, читаются довольно сложно и не рассчитаны на обычного читателя.

Главные элемент методики - т.н. “варианты использования” (прецеденты / use cases). Даже само название “вариант использования” не так просто понять сразу. На самом деле всё довольно просто, хотя и требуется определенных затрат времени и сил.

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

План действий:

  1. Определить цель программы в целом
  2. Описать основные бизнес-процессы
  3. Выделить т.н. “участки автоматизации”, т.е. места, где будет использоваться создаваемая нами программа.
  4. Описать работу каждого из участков.


1.Определите цель

Цель задает направление всей программе. Это направляющая, двигающая весь процесс разработки функционала в нужном направлении.

Что такое цель программы? Это назначение программы, её главная выгода и основные преимущества.

Цель можно определить по-разному, например, проанализировав предпосылки возникновения проекта.

Типичный пользователь программы учета времени - программист, участвующий в проекте по разработке программного обеспечения.

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

Таким образом, цель пр ограммы учета времени - максимально ускорить и упростить программисту регистрацию фактического времени, затраченного на разработку проекта.

Цель определена и теперь можно описать бизнес-процессы

2.Опишите бизнес-процессы

Схема процессов даёт общий взгляд на систему и именно она показывает полный перечень задач, которые она должна решать. Уделите схеме столько времени, сколько необходимо для ее полной проработки - результаты не заставят себя ждать.

Как составить схему? Очень просто: возьмите предназначение (цель) программы, определенную в разделе “1.Определите цель,” и задайте вопрос: “Что это такое?”.

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

Обычно в разработке программного проекта участвуют как минимум две роли: руководитель проекта и программист. Руководитель планирует (определяет плановую трудоемкость) и ставит задачи программисту, программист исполняет задачи и регистрир ует фактическое время исполнения.

Нарисуйте схему их взаимодействия:

 

 

 


Схема готова.

3.Выделите “участки автоматизации”


Теперь на схеме выделите все места, где человек будет соприкасаться с разрабатываемой системой (использовать систему). Это и будут т.н. “участки автоматизации” - тот самый функционал, который нужно будет создать.

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

 


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

Не очень понятно, что такое значимый для бизнеса результат? Мой самый любимый простой пример: представьте, что Ваш начальник спрашивает Вас, что было сделано за сегодня. И Вы отвечаете:

  1. Я 23 раза входил (логинился) в систему
  2. Я зарегистрировал 23 клиента


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

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

Программа по разработке проектов имеет три участка автоматизации (варианта использования):

  1. Руководитель проекта планирует задачи.
  2. Программист выбирает задачу для исполнения.
  3. Программист регистрирует завершение задачи.


Теперь у нас есть вся картина бизнес-процесса в целом и известны все без исключения автоматизируемые участки, т.е. определен основной функционал программы.

Каждый выделенный участок надо аккуратно описать.

4.Опишите работу каждого из участков

По сути, описание участков - это уже детальная проработка функционала программы. Это как раз то, над чем гадают сотни создателей программ. Гадать не надо! Надо просто описать участки автоматизации. Как это сделать? Очень просто!

Алистер Коберн в своей книге “Современные методы описания функциональных требований к системам” рекомендует методику, суть которой заключается в описании т.н. “успешного сценария” и альтернатив к нему. Успешный сценарий - последовательность шагов, ведущая к успешному завершению задачи.

Возьмем, например, вариант использования “Программист выбирает задачу к исполнению”.

Результатом (успешным завершением) варианта использования будет являться переход задачи, взято й Программистом, в состояние “Выполняется”.

Вот как будет выглядеть подробное описание варианта использования:

ВИ-2. Выбрать задачу к исполнению

Версия

Черновик

Основной исполнитель

Программист

Заинтересованные лица и их цели

Программист - хочет как можно быстрее и проще взять задачу на исполнение

Внешнее событие

  • Программист сделал все задачи хочет взять очередную задачу к исполнению

Краткое описание

Система выводит список задач, доступных к взятию на исполнение. Программист выбирает задачу и берет ее на исполнение. Система переводит задачу в состояние “Выполняется”

Предусловия

  • Имеется хотя бы одна задача, назначенная Руководителем проекта к исполнению Программистом


Постусловия (результаты)

  • Задача перешла в состояние “Выполняется”

Основной успешный сценарий

1.Система выводит список невыполненных задач на сегодня, назначенных на исполнителя. Каждая задача в списке представлена:

  • своим названием
  • описанием
  • плановой датой начала
  • плановой датой окончания

2.Программист выбирает задачу из списка и запрашивает взятие задачи на исполнение.



3.Система переводит задачу в состояние “Выполняется”.

Альтернативы

1а.На сегодня программисту не назначено ни одной задачи.
… (что делать в этом случае)

1б.Программист не завершил предыдущую выполняемую задачу.


1в.В задаче не указаны поля “название” или “описание”.


1г.В задаче не указаны поля дат начала или окончания.


и т.д.

Специальные требования

Нет

Список технологий и типов данных

нет

Частота использования

  • 2-3 раза в день

Открытые вопросы

Нет


Описанный таким способом вариант использования будет настолько подробен, насколько это вообще возможно. Можно даже сказать, что в мире не существует лучшего метода, способного описать задачу лучше.

Итог

Итак, для разработки функционала программы следует выполнить следующие 4 шага:

  1. Определить цель программы в целом
  2. Описать основные бизнес-процессы
  3. Выделить участки автоматизации
  4. Описать работу каждого из участков.


Составленное таким образом описание функционала будет настолько полным и подробным, насколько это только возможно.

Здесь можно оставить свои комментарии. Выпуск подготовленплагином wordpress для subscribe.ru


В избранное