Кіріспе
Өнімге қатысты үздіксіз кеңейту немесе жаңа мүмкіндіктерді қосу – жобаны басқару концепциясы. Функциялық икемсіздік – бұл өнімге, әсіресе компьютерлік бағдарламалық құралдарға, бейне ойындарға (оны күштілікпен шатастыруға болмайды) және тұтынушылық және бизнес электроникасына жаңа мүмкіндіктерді артық қосу. Бұл қосымша мүмкіндіктер өнімнің негізгі қызметтерінен асып түседі және қарапайым дизайнның орнына бағдарламалық құралдардың ауырлауына және күрделенуіне әкелуі мүмкін. "Функциялық икемсіздік" деген анықтама соңғы пайдаланушылар арасында әртүрлі болады, кейбір пайдаланушылар үшін осыған ұқсас нәрсе басқалары үшін пайдалы функционал ретінде қарастырылуы мүмкін. Функциялық икемсіздік – шығындар мен жоспардан шығудың ең көп кездесетін себептерінің бірі. Осылайша, ол өнімдер мен жобаларға қауіп төндіреді, тіпті оларды жоюы мүмкін.
the project management conceptFeature creep is the excessive ongoing expansion or addition of new features in a product, especially in computer software, video games (where it should not be confused with Power creep) and consumer and business electronics. These extra features go beyond the basic function of the product and can result in software bloat and over complication, rather than simple design. The definition of what qualifies as "feature creep" varies among end users, where what is perceived as such by some users may be considered practical functionality by others. Feature creep is one of the most common sources of cost and schedule overruns. It thus endangers and can even kill products and projects.
Себептер
Құрамындағы мүмкіндіктердің артуы сатылым мен таратуды ұлғайту мақсатында тұтынушыға көбірек пайдалы немесе қажетті өнім ұсыну ниетінен туындауы мүмкін. Өнім өз мақсатына сай барлық функцияларды орындағаннан кейін, өндіруші кейбір пайдаланушыларға қажетсіз көрінетін (кейде тиімділіктің төмендеуіне алып келетін) функцияларды қосуы немесе бастапқы нұсқасын жаңартусыз қалдыруы мүмкін (бұл жағдайда жаңарудың болмауы сезіледі). Мүмкіндіктердің артуы бірнеше түрлі көзқарас пен қолдану сценарийлерін бір өнімге енгізуге тырысатын комитеттердің келісімдерінен немесе тіпті мүмкіндікті пайдалану ниетінен де туындауы мүмкін. Әрбір тәсілді қолдау үшін жаңа мүмкіндіктер қосылғанда, әртүрлі парадигмалар арасындағы өзара айналыс мүмкіндіктері жалпы мүмкіндіктерді одан әрі күрделендіруі мүмкін.
Бақылау
Құралымның кеңеюін бақылаудың бірнеше әдісі бар, оның ішінде: рұқсат етілген мүмкіндіктерге қатаң шектеулер, түрлі нұсқалар және артық мүмкіндіктерді алып тастау.
Бөлу
Кейінгі уақытта пайда болатын қосымша мүмкіндіктердің артығын болдырмау үшін бастапқы дизайнды берік бағдарламалық негіздерге негіздеу қажет, мысалы, функционалдылықтың және деректерге қол жеткізудің логиялық ажыратылуы. Атап айтқанда, күшті пайдаланушыларға қажетті қосымша функционалдылық пен толымды ақпаратты ұсынатын, қосымша мәзірлерді пайдалану арқылы. Бұл өзгерістерді қатаң басқару және жобаның кезеңдеріне өзгерістерді кейінге шегеріп, белсенді түрде бақылауға болады.
Өзгерістер мен нұсқалар
Құралымдардың ауысуын бақылаудың тағы бір әдісі – өнімдердің бірнеше түрін ұстау, онда мүмкіндіктер шектеулі және қарапайым нұсқаларда азайтылады, мысалы, Microsoft Windows басылымдарында. Бағдарламалық қамтамасының пайдаланушы интерфейстерінде қарау режимдері немесе жұмыс режимдері қолданылуы мүмкін (мысалы, қарапайым режим немесе сарапшы режим), олардың арасынан пайдаланушылар өздерінің қажеттіліктеріне сәйкес таңдауға болады. Көптеген графикалық пайдаланушы интерфейстерінде де, командалық қатар интерфейстерінде де пайдаланушылар қолмен жоғары толымдылықты (verbosity) таңдай алады. Соңғы жағдайда, көптеген командалық қатар бағдарламаларында v немесе verbose опциясын қолмен қосу арқылы, минималды пайдаланушылар үшін аса қажет емес, бірақ күшті пайдаланушылар үшін немесе жөндеу және ақауларды жою мақсатында пайдалы болатын толыққанды ақпарат көрсетіледі. Жаңа мүмкіндіктердің үнемі өсіп, кеңеюі қолданыстағы ресурстардан асып кетуі мүмкін болғандықтан, өнімнің ең негізгі "базалық" нұсқасы кішігірім операциялық ортада жұмыс істеуін қамтамасыз ету үшін жеке ұсталуы мүмкін. "80/20 ережесін" қолдану арқылы өнімнің қарапайым түрі пайдаланушылардың көпшілігінің (мысалы, ~80%) қажеттіліктерін қанағаттандыруы мүмкін, сондықтан олар озық 20% пайдаланушылардың сұраған мүмкіндіктерінің күрделілігіне (немесе қосымша шығындарына) ұшырамайды. Қосымша мүмкіндіктер әлі де қол жетімді, бірақ олар оларды қалаушыларға қолдануға дайын, бірақ өнімдердің базалық нұсқаларына енгізілмеген.
Модульділік
Басқа бір шешім – модулдік құрылым. Көбірек мүмкіндік қажет ететін тәжірибелі пайдаланушылар өздеріне қажетті функцияларды бағдарламалық модульдерді, плагиндерді, қосымшаларды (немесе қосымша түрде) және жеке талаптарына сай келетін сыртқы көріністерді жүктеп қосып, жаңарта алады.
Кесу
Кейбір жағдайларда, белгілі бір мүмкіндіктерді сақтауға кететін шығын тым жоғары болуы мүмкін, сондықтан оларды алып тастауға болады. Жаңа өнім нұсқасында артық мүмкіндіктер болмауы мүмкін, немесе ескі мүмкіндіктер тоқтатылып, кейін жүйеден алынып тасталғанға дейін аралық кезең қарастырылуы мүмкін. Егер өнімнің бірнеше түрі болса, олардың кейбіреулері қолданыстан шығарылуы мүмкін. Мысалы, 2015 жылдың наурызында шыққан Samsung Galaxy S6 телефонында көптеген бағдарламалық және мәзірлік мүмкіндіктері, сондай-ақ кейбір аппараттық мүмкіндіктері де қысқартылды. Оның одан да жақсырақ мүмкіндіктерге ие нұсқасы шығарылмады.
Қолданылу аясының кеңейтілуі
Кейде бақылаусыз мүмкіндіктердің артуы бастапқы ниеттен тысқары өнімдерге әкелуі мүмкін; мұны көлемнің кеңеюі деп атайды. Мүмкіндіктердің жиі қосылуы өнімнің кешігуіне немесе жобаның тоқтатылуына соқтыруы мүмкін, бұл бастапқыда жоспарланғаннан қымбатқа түсуі мүмкін.
Келесі:
Көбінесе, жеткілікті мүмкіндіктерге ие бағдарламалық жасақтама жобасы немесе орташа деңгейдегі жаңа мүмкіндіктердің қосылуымен дамыған жоба көптеген итерациялар арқылы өмір сүріп, тіпті өркендеуі мүмкін. Бірақ, жаңа технологияларды енгізумен қатар, бүкіл код базасын қайта жазу туралы шешім қабылданған жағдайда, оның келесі нұсқасы айтарлықтай кешігулерге тап болуы мүмкін. Мысалы, Microsoft-тың Windows Vista Windows XP мен Windows "Blackcomb" (Windows 7 ретінде шығарылған) арасындағы шағын жаңарту ретінде жоспарланған еді. Бірақ, Blackcomb-тан көбірек мүмкіндіктерді қабылдағаннан кейін (олардың көпшілігі кейін тоқтатылды), Vista бес жылдық дамуды қажет еткен маңызды жаңартуға айналды. Netscape 6 да осындай тағдырға ұшырады, ол бастапқыда Netscape 5 болуы керек еді. 1998 жылы Netscape Communications компаниясының Netscape Navigator браузерін және Communicator Internet Suite-ті (екісі де Mozilla деп аталды) ашық кодқа шығару туралы шешімі, негізгі кодтың тым күрделі екенін және Mozilla-ны толық қайта жазу қажеттігін көрсетті, бұл Mozilla қолданбалық платформасын құруға себеп болды. Бұл айтарлықтай кешігулерге әкелді, Netscape 5 жобасы өткізіліп, компания AOL-мен сатып алынды. 2000 жылы шығарылған Netscape 6.00 нұсқасы альфа деңгейіндегі код деп сынға ұшырады, ал жоба 2001 жылы Netscape 6.1 нұсқасымен тұрақтылыққа жетті, бұл Интернет жиынтығын қайта өңдеу туралы шешімнен үш жыл өткен соң болды. Ол кезде Microsoft-тың Internet Explorer браузері пайдалану көрсеткіштері бойынша Netscape-ті ұзақтан бері басып тастаған, оның үлесі бір цифраға дейін төмендеген еді. Тұрақтылыққа жеткенімен және қажетті жаңа мүмкіндіктерді алғанымен де, AOL Netscape-ті құраған ашық кодты Mozilla Application Suite (кейіннен жай ғана Mozilla деп аталды) "көп артық мүмкіндіктерге ие" деп есептелді. Бір жыл өткен соң, Mozilla әзірлеушілерінің тобы браузер компонентін бөліп, оны Firefox деп атады. Double Fine Adventures компаниясының Kickstarter жобасы – Broken Age тағы бір мысал, мұнда жаңа мүмкіндіктердің қосылуы жобаның кешігуіне себеп болды. Бастапқыда 2012 жылдың қазанында шығарылуы жоспарланған ойынның бірінші бөлігі 2014 жылдың қаңтарында, ал екінші бөлігі 2015 жылдың сәуір айының соңында жарық көрді, оны аяқтау үшін екі қаржыландыру раундысы қажет болды.
Құрбыларды тамақтандыру
Функционалдық кеңею және қысқа мерзімдер жиі "жедел шешімге" алып келеді. Қалаған өзгеріс жобаның негізін қайта құруды қажет етуі мүмкін, бірақ мерзімге қатысты қысым әзірлеушілерді асығыс жұмыс істеуге және жетілмеген өнімді шығаруға мәжбүр етеді. "Қоңыршықты жаратылыс" деген сөз тіркесі осы жағдайға әзірлеушінің наразылығын күшейту үшін ойлап табылды, бұл кеңейтілген көлемді өнімді "хактардың бұзық жаратылысы ретінде қараңғыда қыбырлап жүрген" деп бейнелейді және одан да көп кеңеюдің алға тартушысы болып табылады. ("Қоңыршықты" – "биптеудің" жаргондық синонимі.)