Ползучесть функций
Расползание функций — это постоянное чрезмерное расширение или добавление новых функций в продукт. [1] особенно в компьютерном программном обеспечении , видеоиграх (где его не следует путать с Power Creep ), а также в бытовой и деловой электронике . Эти дополнительные функции выходят за рамки основных функций продукта и могут привести к раздуванию и чрезмерному усложнению программного обеспечения, а не к простоте дизайна.
Определение того, что квалифицируется как «ползучесть функций», различается среди конечных пользователей : то, что воспринимается как таковое одними пользователями, может считаться практической функциональностью другими. [2] Расползание функций — один из наиболее распространенных источников перерасхода средств и сроков. [3] [ нужна проверка ] Таким образом, это ставит под угрозу и даже может уничтожить продукты и проекты.
Причины
[ редактировать ]Расширение возможностей может возникнуть из-за желания предоставить потребителю более полезный или желанный продукт с целью увеличения продаж или распространения. Как только продукт делает все, для чего он предназначен, производитель может добавить функции, которые некоторые пользователи могут счесть ненужными (иногда за счет эффективности), или продолжить работу с исходной версией (за счет предполагаемого отсутствия улучшений).
Расползание функций также может возникнуть в результате компромисса со стороны комитета, реализующего несколько разных точек зрения или вариантов использования в одном и том же продукте, даже по конъюнктурным причинам. [4] Поскольку для поддержки каждого подхода добавляется больше функций, функции перекрестного преобразования между несколькими парадигмами могут еще больше усложнить общие функции.
Контроль
[ редактировать ]Существует несколько методов контроля расползания функций, в том числе: строгие ограничения на допустимые функции, несколько вариантов и сокращение лишних функций.
Разделение
[ редактировать ]В дальнейшем можно избежать расползания функций, опираясь при первоначальном проектировании на прочные основы программного обеспечения, такие как логическое разделение функциональности и доступа к данным, например, используя подменю, которые опционально доступны опытным пользователям , которым требуется больше функциональности и более подробная информация. Его можно активно контролировать с помощью строгого управления изменениями и откладывания изменений на более поздние этапы реализации проекта. [5]
Вариации и варианты
[ редактировать ]Другой метод контроля расползания функций — это поддержка нескольких вариантов продуктов, при этом функции ограничены и сокращены в более простых вариантах, например, в выпусках Microsoft Windows . Для пользовательских интерфейсов программного обеспечения могут использоваться режимы просмотра или режимы работы (например, базовый режим или экспертный режим), между которыми пользователи могут выбирать в соответствии со своими потребностями.
Как во многих графических пользовательских интерфейсах , так и в интерфейсах командной строки пользователи могут вручную выбрать более высокую степень детализации. В последнем случае во многих программах командной строки добавление -v
или --verbose
опция вручную показывает более подробную информацию, которая может быть менее актуальной для обычных пользователей, но полезна для опытных пользователей или для целей отладки и устранения неполадок.
Поскольку постоянно растущее и постоянно расширяющееся добавление новых функций может превысить доступные ресурсы, минимальную базовую «базовую» версию продукта можно поддерживать отдельно, чтобы обеспечить работу в небольших операционных средах. Используя « правило 80/20 », более базовые варианты продукта могут удовлетворить потребности большинства (например, ~80%) пользователей, поэтому они не будут подвергаться сложности (или дополнительным затратам) функций, запрошенных пользователем. продвинутые 20% пользователей. Дополнительные функции по-прежнему доступны, но не являются обязательными и готовы к использованию теми, кто их запрашивает, но они не были реализованы в базовых версиях продуктов.
Модульность
[ редактировать ]Еще одним решением проблемы расползания функций является модульность . Опытные пользователи, которым требуется больше функций, могут модернизировать необходимые функции, загрузив программные модули, плагины , надстройки (также известные как надстройки) и пользовательские темы в соответствии со своими личными требованиями.
Обрезка
[ редактировать ]В какой-то момент стоимость поддержки определенного подмножества функций может стать непомерно высокой, и можно будет использовать сокращение. В новой версии продукта могут отсутствовать дополнительные функции или, возможно, будет использоваться переходный период, когда старые функции устареют до их возможного удаления из системы. Если существует несколько вариантов продуктов, некоторые из них могут быть выведены из употребления. Одним из основных примеров является Samsung Galaxy S6 , выпущенный в марте 2015 года, в котором были значительно урезаны многие функции программного обеспечения/меню, а также некоторые аппаратные функции. Более «функциональная» версия не была выпущена. [ нужна ссылка ]
Последствия
[ редактировать ]Расширение сферы применения
[ редактировать ]Иногда неконтролируемое расширение функций может привести к созданию продуктов, которые выходят за рамки первоначально задуманного; это известно как сползание области видимости . Распространенным последствием увеличения количества функций является задержка или отмена продукта, который может стать дороже, чем первоначально предполагалось. [ нужна ссылка ]
Задержки
[ редактировать ]Часто программный проект с достаточно полным набором функций или с умеренным количеством функций может выжить и даже процветать в течение многих итераций, но его последующий выпуск может столкнуться со значительными задержками, когда будет принято решение переписать всю базу кода в дополнение к внедрение новых технологий. Например, Windows Vista от Microsoft планировалась как второстепенная версия между Windows XP и ее преемником под кодовым названием Windows «Blackcomb» (выпущенная как Windows 7), но после адаптации все большего количества функций Blackcomb (многие из которых в конечном итоге были отменены), Vista оказался крупным релизом, на разработку которого ушло пять лет.
Похожая участь постигла Netscape 6 , который изначально должен был называться Netscape 5 . Решение Netscape Communications в 1998 году открыть исходный код своего браузера Netscape Navigator и интернет-пакета Communicator (оба под кодовым названием Mozilla) вскоре сделало очевидным, что базовый код слишком сложен и потребовал полного переписывания Mozilla, что способствовало созданию платформа приложений Mozilla . Это вызвало значительные задержки, Netscape 5 был пропущен, а компания была куплена AOL. Последующий выпуск Netscape 6.00 в 2000 году подвергся широкой критике как код альфа-уровня, и проект достиг стабильности в Netscape 6.1 в 2001 году, через три года после решения переработать пакет Интернета. К тому времени браузер Microsoft Internet Explorer уже давно затмил Netscape по доле использования, которая снизилась до однозначных цифр.
с открытым исходным кодом Даже после достижения стабильности и получения некоторых необходимых новых функций пакет приложений Mozilla (тогда называвшийся просто Mozilla), на основе которого AOL построила Netscape, считался « раздутым ». Всего год спустя группа разработчиков Mozilla решила отделить компонент браузера, который в итоге стал Firefox .
Double Fine Adventures на Kickstarter Проект Broken Age — еще один пример задержки проекта из-за увеличения количества функций. Первоначально предполагалось, что дата выпуска — октябрь 2012 года, первая половина игры была выпущена в январе 2014 года, а вторая половина — в конце апреля 2015 года, и для завершения потребовалось два отдельных раунда финансирования. [6]
Страшный креатуризм
[ редактировать ]Расползание функций в сочетании с короткими сроками часто приводит к «хакерскому решению» . Желаемые изменения могут быть достаточно значительными, чтобы оправдать перепроектирование существующей основы проекта, но вместо этого сжатые сроки вынуждают разработчиков спешить и выпускать менее усовершенствованный продукт. Спунеризм «плачущий креатуризм» был придуман , чтобы подчеркнуть неприязнь разработчика к этой ситуации. [7] олицетворяя продукт, выползший из сферы применения, как «уродливое существо хакеров… бродящее в темноте», [8] и предвестник еще большей ползучести. [9] («Пипинг» — это жаргонный синоним слова «пиканье».) [10]
См. также
[ редактировать ]- Ползущая элегантность
- Проектный документ
- Цифровой накопительный фонд
- Emacs , текстовый редактор , расширенный для выполнения многих других задач.
- Десятое правило Гринспена
- ПОЦЕЛУЙ принцип
- Минимализм в вычислениях
- Ползучесть миссии
- сверхинжиниринг
- Ползучесть масштаба
- Эффект второй системы
- Раздувание программного обеспечения
- Плагин (вычисления)
- Философия Unix
- Закон оболочки программного обеспечения Завинского.
- Эншиттификация , компонентом которой может быть ползучесть функций.
Ссылки
[ редактировать ]- ^ Дж. М. Салливан (8–10 июня 2005 г.). «Препятствия и стимулы для автоматизации в ВВС». Слушания. Международный симпозиум 2005 г. по технологиям и обществу, 2005 г. Оружие и провода: профилактика и безопасность во времена страха. ИСТАС 2005 . стр. 101–110. дои : 10.1109/ISTAS.2005.1452719 . ISBN 0-7803-9284-1 . S2CID 21079766 .
- ^ Фиатурит (или ползучий фиатуризм) . Январь 2024 г.
- ^ Дэвис, Флорида; Венкатеш, В. (февраль 2004 г.), «На пути к приемочному тестированию новых информационных систем пользователем перед прототипом: последствия для управления проектами программного обеспечения», IEEE Transactions on Engineering Management , 51, 51 (1): 31–46, doi : 10.1109/TEM. 2003.822468 , ISSN 0018-9391 , S2CID 1204079
- ^ Кристаллис, Илиас; Локателли, Джорджио (01 сентября 2022 г.). «Нормализация правонарушений «белых воротничков» в фирмах, оказывающих профессиональные услуги» . Журнал менеджмента в машиностроении . 38 (5): 04022049. doi : 10.1061/(ASCE)ME.1943-5479.0001079 . hdl : 11311/1228318 . ISSN 1943-5479 . S2CID 250326876 .
- ^ Кеннет С. Нортон (2001), «Применение межфункциональных эволюционных методологий к веб-разработке» , статья в журнале «Веб-инженерия: управление разнообразием и сложностью Интернета», опубликованная Springer, ISBN. 3-540-42130-0
- ^ Double Fine делит Broken Age пополам, чтобы профинансировать завершение , Крис Лигман, 2 июля 2013 г., Gamasutra
- ^ Feping Creaturism , 27 мая 2016 г., FOLDOC.org - Бесплатный онлайн-словарь по информатике
- ^ Раймонд, Эрик С.; и др. (29 декабря 2003 г.). «плачущий креатуризм» . Файл жаргона . Вер. 4.4.7 . Проверено 20 июня 2017 г.
- ^ Раймонд, Эрик С.; и др. (29 декабря 2003 г.). «плачущее существо» . Файл жаргона . Вер. 4.4.7 . Проверено 20 июня 2017 г.
- ^ Раймонд, Эрик С.; и др. (29 декабря 2003 г.). «фип» . Файл жаргона . Вер. 4.4.7 . Проверено 20 июня 2017 г.
Внешние ссылки
[ редактировать ]- Creeping Featuritis , ContentCreationWiki (зарегистрировано не позднее 23 октября 1995 г. )