В любом бизнесе безоговорочно действуют два правила: пять долларов лучше трех долларов, а деньги, заработанные сегодня, дороже, чем деньги, заработанные завтра. Очевидно, что первый тезис не нуждается в комментариях, если только речь не идет о расходах компании. Второй говорит о том, что чем быстрее бизнес начинает получать прибыль, тем лучше.
Оба умозаключения справедливы и в случае приобретения заказного программного обеспечения. Снижение затрат и сроков исполнения любой работы – желанная цель любого бизнеса, ведь его конечной задачей всегда является получение прибыли. Поэтому чем быстрее заказчик получает средство для выполнения каких-то процессов, например, программу, автоматизирующую эти процессы, тем быстрее он начинает ощущать экономический эффект от ее использования, и тем быстрее программа себя окупает.
Эта простая идея лежит в основе концепции «визуального программирования» (его еще называют быстрым программированием), которая заключается в минимизации бюджета и сроков разработки продукта. Визуальное программирование подразумевает плотное взаимодействие с заказчиком на определенных этапах разработки, что позволяет в сжатые сроки создать, протестировать и внедрить программу, максимально отвечающую его требованиям.
Любая программа – сложная система, которую сложно обсуждать и оценивать абстрактно, удерживая в голове связи различных компонентов, блок-схемы и чертежи. А главное – заказчик и разработчик могут представлять себе готовую программу по-разному. Поэтому первое, на что направляют свои усилия разработчики софта, ограниченные сроками – естественно, сбор пожеланий и изучение особенностей организации, создание дизайн-макетов и рабочего прототипа программы. На стадии готового прототипа гораздо проще оценить соответствие будущего приложения пожеланиям, выявить плюсы и минусы интерфейса и расставить акценты в плане разработки. Программирование «от прототипа» - гибкий процесс, дающий заказчику возможность контролировать процесс создания программы и расходование бюджета.
В рамках этой концепции заказчик рассматривается не как человек, который оплачивает счет по завершению работы, а как конечный пользователь, ради которого и создается программа. Поэтому, отчасти, упрощается не только разработка, но и внедрение программы (сотрудники компании могут протестировать прототип и привыкнуть к нему еще до окончания работы) и сопровождение.
Метод визуального программирования ускоряет не только процесс создания финальной версии приложения, но и позволяет полноценно использовать отдельные его части до завершения разработки. То есть, позволяет ощутить экономический эффект сегодня, а не завтра. Дело в том, что наибольшее внимание уделяется самым важным и критичным компонентам программы, выполняющим самые важные функции. В процессе использования этих компонентов у заказчика могут появляться комментарии и корректировки, которые в дальнейшем учитываются при разработке остальных компонентов программы. Вообще, концепция визуального программирования подразумевает цикличный подход к работе – все изменения вносятся с учетом опыта тестирования предыдущей версии или отдельных модулей.
Таким образом, этот метод позволяет в сжатые сроки создать рабочий прототип программы, в целом устраивающий заказчика, и дорабатывать его так, как этого хочет заказчик.
В ходе работы над программой разработчики как правило руководствуются следующими принципами:
- Личность заказчика и взаимодействие с ним важнее, чем инструменты и процессы;
- работающее ПО важнее, чем наличие полной документации;
- реакции на изменения важнее, чем следование плану.
На самом деле, довольно сложно придумать иную форму работы, нежели метод визуального программирования, в которой команда разработчиков более нацелена на результат, а не на процесс.
Благодаря следованию принципам этой концепции достигается удовлетворение потребностей клиента за счет быстрой и регулярной поставки ценных элементов программы. Регулярность выдаваемых обновлений позволяет разработчику не только эффективно планировать этапы работы, но и непрерывно вносить улучшения в уже существующий код, повышая полезность и конкурентоспособность программы.