Кіріспе

Күрделі, сәтсіз жобаны сипаттау үшін қолданылатын инженерлік термин. Бағдарламалық жасақтамадағы Питер принципі жобаның өліміне сипаттама береді, ол тіпті оны жасаған бағдарламашылардың өзіне түсініксіз болып кеткен. Бұл салада жобаларды жайсыз өлтіретін жағдай ретінде танымал, бірақ белгілері байқалғанда, әрекет ету үшін әдетте кеш болады. Жақсы менеджерлер қажетсіз күрделі код пен дизайннан сақтау үшін нақты кодтау талаптарын белгілеп, осы апатты болдырмауға тырысуы керек. Аталған принцип C++ Сұрақ-жауаптар кітабында (төменде қараңыз) қолданылады және иерархиялық ұйымдардағы біліксіздік туралы теория – Питер принципінен алынған.

Тұжырымдамалық тұтастықтың жоғалуы

"Мифтік адам-ай" еңбегінде жазылғандай, бағдарламалық қамтамасының тұтастығы – оның бір жай ғана жобалау қағидаларына қаншалықты сәйкес келетінін көрсететін өлшем. Дұрыс жасалғанда, ол ең қарапайым тәсілдерді пайдаланып, ең көп мүмкіндіктерді ұсынады. Бағдарламалық қамтамасының жасалуын және оқуын оңайлату арқылы пайдалануды жеңілдетеді. Тұжырымдық тұтастыққа бағдарламалық қамтамасының жобасы бір-бірімен келісетін шағын топтың еңбегінен бастағанда қол жеткізіледі. Бағдарламалық қамтамасының тұжырымдық тұтастығын сақтау үшін, жобаны кодты (барлық кіші бағдарламалар мен айнымалылардың өзара әрекеттесу ерекшеліктерін қоса алғанда) терең түсінетін бір, шағын топтың бақылауында ұстау қажет. Мықты бағдарламалық архитектура тобы жоқ жобаларда, жобалау міндеті көбінесе іске асырумен біріктіріліп, жеке бағдарламалық қамтамасы дамытушыларына жүктеледі. Мұндай жағдайларда, дамытушылар өнімнің мүддесі үшін жеке мүдделерінен бас тартуға бейім емес. Өнімнің күрделілігі дамытушылардың жаңа жобаларды қосуы және сән мен жеке талғам өзгергенде бұрынғыларын өзгерткенінің нәтижесінде өседі.

Бағдарламашының қабілетсіздігі

Code Complete сайтында жазылғандай, жақсы бағдарламашылар компьютермен емес, адамдармен байланыс жасаудың маңызды екенін түсінеді. Зерттеулер көрсеткендей, бағдарламашылар уақытының 50% астамын адамдармен байланысқа жұмсайды, ал нақты бағдарламалау олардың еңбек тәжірибесіне қарай 10-15% ғана уақыт алады. Қолдау бағдарламашылар өздері қолдау көрсетуге тиіс кодты түсінуге уақытының 50-60% жұмсайды, ал бір бағдарламалық жасақтаманың өмірінде орташа есеппен 10 буын қолдау бағдарламашылары болады.

Бағдарламашы тәжірибесіз

Кейде бағдарламашылар жұмыс істейтін, бірақ күтпеген жағымсыз салдарлары бар іске асыру таңдауларын жасайды. Мұндай қателіктердің ең көп кездесетіні "Refactoring" кітабында тізімделген және "иіс" деп аталады. Уақыт өте келе, мұндай іске асыру таңдауларының көптегені бағдарламалық құралдың дизайнын нашарлатады, оны түсінуді қыйындатады.