Если вы можете превратить пользовательские требования во что-то, что будет полезно всем, отлично. Если клиент готов оплатить текущие расходы на поддержку этой функции, также отлично. Но если вы небольшая команда и вам трудно поддерживать все свои функции, вам ничего не остается, кроме как принять какие-то жесткие решения о функциях, которые вам требуются меньше всего, а затем потратить некоторое время на их удаление из своей базы кода.
SaaS дает вам хорошие возможности для сбора статистики использования. Если вам еще не пришло в голову, вы должны рассмотреть возможность усовершенствования своих функций, чтобы вы могли отслеживать, кто чем пользуется. Наш опыт показывает, что большинство идиоматических клиентов обычно также являются самыми неблагополучными; тот парень, который топнул ногами и задержал дыхание, пока вы не дали ему кнопку экспорта в MS-Access, вероятно, не использовал ее более года. Некоторые функции сохраняются, даже если их использует только один клиент, потому что этот клиент громкий и угрожает заняться своим делом в любое время, когда что-то его не устраивает. Прекращение использования этой функции может стоить вам сейчас клиента, но время, затрачиваемое на поддержку этой функции, может обойтись десяткам клиентов за эти годы. Это показатель качества вашей управленческой команды,
Когда вы прекращаете работу какой-либо функции, не забудьте заранее объявить о своем решении своим клиентам (или, по крайней мере, тем, кого они затронули), в любом месте от шести месяцев до трех лет. На самом деле, если вы соглашаетесь создавать специфичные для пользователя функции, вы можете попытаться заставить своих сотрудников по продажам определить дату окончания срока действия с самого начала. Назовите это «сроком службы поддержки» и дайте понять, что чем дольше они этого хотят, тем больше денег это будет стоить. Попытайтесь предоставить обходные пути для своих клиентов, чтобы они не колебались при запуске функции, например, скрипт, который преобразует ваши экспортированные файлы XML в формат MS-access, или несколько советов по выбору лучшей СУБД.
Что-то, что сработало для нас в качестве превентивной меры, - это ежемесячное получение отчета от нашего отдела продаж нашей команде разработчиков и руководству. В этом отчете рассматриваются отзывы клиентов - какие функции наиболее популярны, какие функции наиболее востребованы, какие предлагаемые функции вызывают наибольшее внимание. Это интересно, если вы разработчик, но реальная выгода - для отдела продаж, который теперь немного больше думает о каждой функции в контексте общей картины, вместо того, чтобы отправлять бесконечный поток запросов функций и определять приоритеты на основе на котором клиент был самый громкий. Это привело к тому, что наш торговый персонал стал более твердым, когда речь заходит о новых запросах функций в ходе переговоров, потому что они лучше понимают, где каждая функция может вписаться в общее ценностное предложение нашего продукта.
Наличие модульного кода с большим количеством автоматических тестов поможет вам, когда вы взламываете функции в своем продукте и снова взламываете их, но в конечном итоге это не вопрос программирования, а вопрос управления. Написание кода для продажи - дурацкая игра.