Как вы уравновешиваете противоречивые потребности обратной совместимости и инноваций? - PullRequest
11 голосов
/ 02 октября 2008

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

Во всех наших разработках и реализации у нас (по понятным причинам) очень строгое требование обеспечения 100% обратной совместимости . Сценарий, который запускался раньше, должен продолжать работать точно так же, без каких-либо изменений, когда мы представляем новую версию программного обеспечения.

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

Например, мы могли бы придумать лучший (и более удобный) способ решения задачи, которая уже возможна. Было бы желательно сделать этот способ лучше по умолчанию, но мы не можем этого сделать, поскольку это может иметь последствия обратной совместимости. Таким образом, мы застряли с выходом нового (лучшего) способа в качестве режима, при котором пользователь должен «включить», прежде чем он станет им доступен. Если они не прочитают документацию или интерактивную справку (чего не делают многие клиенты), эта новая функциональность останется скрытой навсегда.

Я знаю, что Windows Vista раздражала многих людей, когда она только появилась, из-за всего программного обеспечения и периферийных устройств, которые не работали на ней, даже когда они работали на XP. Из-за этого он получил довольно плохой прием. Но вы можете видеть, что Microsoft также преуспела в создании некоторых замечательных инноваций в Vista за счет обратной совместимости для многих пользователей. Они рискнули. Это окупилось? Правильно ли они приняли решение? Я думаю, только время покажет.

Вы находите баланс между противоречивыми потребностями инноваций и обратной совместимости? Как вы справляетесь с жонглированием?

Ответы [ 4 ]

5 голосов
/ 02 октября 2008

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

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

Я думаю, что здесь главное - тест, тест, тест. Обратная совместимость не должна препятствовать продвижению вперед.

Это просто мой 2с

1 голос
/ 02 октября 2008

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

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

1 голос
/ 02 октября 2008

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

0 голосов
/ 06 декабря 2008

Вы можете найти инновационные способы обеспечения обратной совместимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...