Вопрос

Если вам знакома фраза «сделай один, чтобы выбросить», что ж, похоже, мы это сделали;мы достигаем пределов версии 1 нашего онлайн-приложения.Пришло время навести порядок:

  • Реорганизация кода и пользовательского интерфейса
  • Унификация процессов пользовательского интерфейса
  • Добавление большего функционала
  • Строительство будущего
  • Изменение структуры нашей базы данных для обработки всего вышеперечисленного.

Как лучше всего осуществить этот переход?

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

Должны ли мы начать новую «установку» нашей системы и постепенно переводить на нее пользователей после того, как убедимся, что новый дизайн в достаточной степени решает достаточное количество проблем версии 1?

Должны ли мы (каким-то образом) постепенно и поэтапно менять каждый модуль нашей системы?Это может быть сложно, поскольку структура базы данных изменится, что приведет к необходимости настройки «основного кода» и кода нескольких окружающих модулей.

Часто ли есть группа надежных, терпеливых клиентов-бета-тестеров, использующих новейшую версию приложения?(Целью здесь будет получение отзывов и тестирование новой системы на наличие ошибок)

Есть еще какие-нибудь советы?Опыт из первых рук?

Это было полезно?

Решение

Боюсь, ответ: это зависит.Это зависит от типа приложения и типа ваших пользователей.Не зная, что это за система и масштабы изменений в версии, сложно дать ответ.

Тем не менее, есть некоторые практические правила.

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

Чтобы сделать проблемы прорезывания зубов управляемыми, вам нужно сначала работать с небольшим количеством пользователей, а затем постепенно увеличивать их количество.

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

Это означает, что если вы решите медленно мигрировать пользователей из одной системы в другую, ты несут ответственность за обеспечение переноса всех своих данных и настроек.Например, не делайте глупостей, например, не говорите пользователю, что он должен использовать версию V1 для всех записей до 09.12.2008 и версию V2 для всех записей после.

Цель выпуска V2 должна заключаться в том, чтобы облегчить жизнь пользователей, а не усложнять ее без необходимости.

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

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

Другие советы

Мы только что закончили внедрение совершенно новой CRM-системы для наших пользователей, и позвольте мне сказать вам, что это была УЖАСНАЯ идея сделать это таким образом:Это было чрезвычайно болезненно для моей команды и для наших клиентов.

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

Надеюсь, это поможет!

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

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

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

Это звучит как поэтапная реструктуризация должна быть вашей любимой фразой.

Я никогда не делал этого в веб-приложении, но мне довелось пройти через некоторые довольно радикальные изменения в клиентских приложениях, которые вносились постепенно.Если вы заранее потратите немного времени на то, чтобы убедиться, что части работы расположены достаточно разумно, это может сработать хорошо.Небольшие инвестиции в хорошие средства рефакторинга будут очень полезны, если у вас их еще нет.Я могу лично рекомендовать jetBrains Resharper если вы используете .NET и используете Java, я считаю, что IntelliJ IDEA включает аналогичные функции.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top