Ползучесть характеристик - Feature creep

Ползучесть характеристик чрезмерное постоянное расширение или добавление новых Особенности в продукте,[1] особенно в программное обеспечение, видеоигры и бытовая и бизнес-электроника. Эти дополнительные функции выходят за рамки основных функций продукта и могут привести к раздувание программного обеспечения и чрезмерное усложнение, а не простой дизайн.

Причины

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

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

Характеристики

Ползучесть характеристик - один из наиболее распространенных источников Стоимость и график перерасхода.[2][требуется проверка ] Таким образом, он подвергает опасности и даже может убить продукты и проекты.

Контроль

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

Разделение

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

Варианты и варианты

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

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

Поскольку постоянно растущее, постоянно расширяющееся добавление новых функций может превышать доступные ресурсы, минимальная основная «базовая» версия продукта может поддерживаться отдельно, чтобы обеспечить работу в небольших операционных средах. С использованием "Правило 80/20 ", более простые варианты продукта могут удовлетворить потребности большинства (например, ~ 80%) пользователей, поэтому они не будут подвергаться сложности (или дополнительным расходам) функций, запрошенных 20% продвинутых пользователей. дополнительные функции по-прежнему доступны, но являются необязательными и готовы к использованию теми, кто их запрашивает, но они не были реализованы в базовых версиях продуктов.

Модульность

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

Обрезка

В какой-то момент стоимость поддержки определенного подмножества функций может стать непомерно высокой, и можно будет использовать сокращение. В новой версии продукта можно было бы просто опустить дополнительные функции, или, возможно, был бы использован переходный период, когда старые функции были устарел перед возможным удалением из системы. Если существует несколько вариантов продуктов, некоторые из них могут быть выведены из употребления. Одним из основных примеров является Samsung Galaxy S6, выпущенный в марте 2015 года, из которого были сокращены многие функции программного обеспечения / меню, а также некоторые аппаратные функции. Его «более функциональный» вариант не выпущен.

Последствия

Расширение сферы применения

Иногда неконтролируемое распространение функций может привести к выпуску продуктов, выходящих далеко за рамки того, что было задумано изначально; это известно как ползучесть прицела. Однако более частым последствием потери функций является задержка или отмена продукта, что может стать дороже, чем предполагалось изначально.[нужна цитата ]

Задержки

Часто программный проект с достаточно полным набором функций или проект с умеренным количеством расползающихся функций может выжить и даже преуспеть в течение многих итераций, но его последующий выпуск может испытывать значительные задержки после того, как будет принято решение переписать всю базу кода в дополнение к внедрение новых технологий. Например, Microsoft Виндоус виста планировалось сделать второстепенным релизом между Windows XP и его преемник под кодовым названием Окна "Блэккомб", но после адаптации все большего числа функций Blackcomb (многие из которых в конечном итоге были отменены), Vista превратилась в крупный выпуск, разработка которого заняла пять лет.

Похожая судьба постигла Netscape 6, который изначально должен был быть Netscape 5. Решение компании Netscape Communications в 1998 году об открытии исходного кода своего браузера Netscape Navigator и пакета Communicator Internet (оба под кодовым названием Mozilla) вскоре сделало очевидным, что лежащий в основе код был слишком сложным и потребовал полного переписывания Mozilla, что способствовало созданию то Фреймворк приложения Mozilla. Это вызвало значительные задержки, Netscape 5 был пропущен, и компания была куплена AOL. Последующий выпуск Netscape 6.00 в 2000 году был широко раскритикован как код альфа-уровня, и проект достиг стабильности в Netscape 6.1 в 2001 году, через три года после решения о переработке пакета Internet. К тому времени браузер Microsoft Internet Explorer уже давно затмил Netscape по доле использования, которая сократилась до однозначных цифр.

Даже после достижения стабильности и некоторых необходимых новых функций, открытый исходный код Пакет приложений Mozilla (тогда называлась просто Mozilla), на которой AOL построила Netscape, рассматривалась как "раздутый ". Всего через год группа разработчиков Mozilla решила отделить компонент браузера, который в итоге стал Fire Fox.

Double Fine Adventures ' Kickstarter проект Сломанный возраст - еще один пример задержки проекта из-за расползания функций. Первоначально предполагалось, что дата выхода игры - октябрь 2012 года, первая половина игры была выпущена в январе 2014 года, а вторая половина последовала за концом апреля 2015 года, и для завершения потребовалось два отдельных раунда финансирования.[4]

Кормление крестьян

Расползание функций в сочетании с короткими сроками часто приводит к "хакерское решение". Желаемое изменение может быть достаточно большим, чтобы оправдать переработку существующей основы проекта, но давление крайних сроков вместо этого требует, чтобы разработчики просто «заставили его работать» с менее элегантным подходом. Юмористический ложечка «питающий креатуризм» был придуман, чтобы подчеркнуть неприязнь разработчиков к этой ситуации,[5] олицетворение продукта с прицелом как «деформированное создание хакеров ... бродящих в темноте»,[6] и предвестник новых подлостей.[7] («Пить» - это жаргонный синоним «писк».)[8]

Смотрите также

использованная литература

  1. ^ Дж. М. Салливан (8–10 июня 2005 г.). «Препятствия и стимулы для автоматизации в ВВС». Ход работы. 2005 Международный симпозиум по технологиям и обществу, 2005. Оружие и провода: предотвращение и безопасность во время страха. ИСТАС 2005. 2005 Международный симпозиум по технологиям и обществу. С. 101–110. Дои:10.1109 / ISTAS.2005.1452719. ISBN  0-7803-9284-1.
  2. ^ Дэвис, Ф.Д .; Венкатеш, В. (февраль 2004 г.), «К тестированию допрототипа пользователей новых информационных систем: значение для управления проектами программного обеспечения», IEEE Transactions по инженерному менеджменту, 51, 51 (1): 31–46, Дои:10.1109 / TEM.2003.822468, ISSN  0018-9391
  3. ^ Кеннет С. Нортон (2001), Применение кросс-функциональных эволюционных методологий к веб-разработке, статья по веб-инженерии: управление разнообразием и сложностью Интернета, опубликованная Springer, ISBN  3-540-42130-0
  4. ^ Double Fine делит Broken Age пополам, чтобы получить финансирование, Автор Крис Лигман, 2013-07-02, Гамасутра
  5. ^ питающееся творчество, 2016-05-27, FOLDOC.org - Бесплатный онлайн-словарь по вычислительной технике
  6. ^ Раймонд, Эрик С .; и другие. (29 декабря 2003 г.). "питающееся творчество". Файл жаргона. Вер. 4.4.7. Получено 20 июня, 2017.
  7. ^ Раймонд, Эрик С .; и другие. (29 декабря 2003 г.). "кормящееся существо". Файл жаргона. Вер. 4.4.7. Получено 20 июня, 2017.
  8. ^ Раймонд, Эрик С .; и другие. (29 декабря 2003 г.). "feep". Файл жаргона. Вер. 4.4.7. Получено 20 июня, 2017.

внешние ссылки