Шаг первый, поговорите с очень широким кругом потенциальных клиентов и выясните их потребности, то, что они используют в настоящее время и что они хотят, чтобы их текущий продукт (ы) мог сделать. Потратьте на это в 10 раз больше времени, чем считаете нужным прямо сейчас. Нарисуйте потенциальные графические интерфейсы на бумаге и попросите людей, с которыми вы проводите собеседование, взглянуть на чертежи и внести предложения. Если это вообще возможно, нанять несколько человек в отрасли в качестве бизнес-аналитиков, чтобы помочь с этим шагом. Спросите о юридических требованиях. В некоторых отраслях есть много проблем с юридическими проблемами, а в других нет. Все, что связано каким-либо образом с медицинским миром, и вам нужно будет, например, изучить и полностью понять требования HIPPA.
Разработайте структуру базы данных и графический интерфейс, а затем заставьте некоторых реальных пользователей поиграть с ней. Рефакторинг, основанный на том, что они говорят (просто удивительно, сколько вещей пользователи не учитывают при сборе требований, о которых они не задумываются, пока не столкнутся с реальным GUI).
Подумайте о том, что должно быть общим для всех потенциальных клиентов и где вам может потребоваться настройка - ваши собеседования должны помочь вам в этом. Решите, как обрабатывать настройки. Или даже если вы позволите это. Это может сильно зависеть от отрасли и от того, насколько стандартны их методы.
Если это коробочное программное обеспечение, часто в дизайн входит таблица с настраиваемыми полями, которые пользователь может добавлять в формы и отчеты.
В веб-решении часто у каждого пользователя, желающего настройки, может быть своя собственная база данных, где хранится пользовательская информация (и центральная стандартная база данных для ненастраиваемых вещей), и программисты вносят изменения на основе запросов от клиентов. Если вы выберете этот путь, во второй раз, когда вы будете настраивать симлиар для второго клиента, подумайте, нужно ли вам провести рефакторинг, чтобы сделать эту новую функцию программного обеспечения доступной для всех. Нет необходимости писать 17 пользовательских отчетов о посещаемости, которые различаются только одним или двумя полями, когда клиент может за меньшие деньги иметь стандартный отчет.
В веб-модели вы также можете создать группу модулей, и клиенты будут выбирать, какие из них добавлять в свое решение. Они будут платить в зависимости от количества и сложности модулей, которые они выбирают. Таким образом, клиент, которому нужны только три стандартных отчета, заплатил бы меньше, чем клиент, которому нужны все 27. Когда предлагается новая настройка, клиент платит за разработку, если предложение, по-видимому, не относится непосредственно к другим, но к модулю сделано так, чтобы другие могли купить это также. Если другие купят его, первоначальный клиент, попросивший об изменении, может получить часть денег до тех пор, пока не будут оплачены их затраты на разработку. Они также могут потребовать, чтобы что-то осталось в виде пользовательского модуля и заплатило за эту работу гораздо более высокую цену. У нас есть клиенты, которые даже не хотят, чтобы их данные находились на тех же серверах, что и другие клиенты. Само собой разумеется, мы взимаем огромную премию за то, что сделали что-то подобное.
Настройка дорогостоящая и может привести к необходимости в большем количестве программистов. Очень внимательно рассмотрите, прежде чем идти по пути настройки. Это действительно может быть то, что продает ваше программное решение, но оно плохо масштабируется. Это неплохо, когда у вас есть десять человек, но когда у вас есть пара сотен, он может очень быстро выйти из-под контроля. Намного сложнее отказаться от настройки, как только вы ее предложите, чем добавить настройку позже из стандартного пакета. Часто потребность в настройке больше в организации корпоративной отчетности. Если вы сможете создать интерфейс отчетности, где люди смогут выбирать, какую информацию они хотят, и сохранять свои собственные настраиваемые отчеты, вы можете справиться с большинством потребностей в настройке в своей отрасли без необходимости полной настройки.