Programvara Peter princip

Software Peter-principen används inom mjukvaruteknik för att beskriva ett döende projekt som har blivit för komplext för att förstås även av sina egna utvecklare.

Det är välkänt i branschen [ citat behövs ] som en tyst mördare av projekt, men när symptomen uppstår är det ofta för sent att göra något åt ​​det [ citat behövs ] . Bra chefer kan undvika denna katastrof genom att etablera tydliga kodningsmetoder där onödigt komplicerad kod och design undviks.

Namnet används i boken C++ FAQs (se nedan), och kommer från Peterprincipen – en teori om inkompetens i hierarkiska organisationer.

Orsaker

Förlust av konceptuell integritet

Programvarans konceptuella integritet är ett mått på hur väl den överensstämmer med en enda, enkel uppsättning designprinciper, enligt The Mythical Man Month av Fred Brooks [ citat behövs ] . När det görs på rätt sätt ger det mest funktionalitet med de enklaste formspråken . Det gör programvaran enklare att använda genom att göra den enkel att skapa och lära sig [ citat behövs ] .

citat behövs] integritet uppnås när programvarans design utgår från ett litet antal överenskomna individer [ . För att mjukvara ska bibehålla konceptuell integritet måste designen kontrolleras av en enda liten grupp människor som förstår koden (inklusive karaktären på hur alla subrutiner och variabler interagerar) på djupet [ citat behövs ] .

I projekt utan ett starkt programvaruarkitekturteam kombineras designuppgiften ofta [ vässelord ] med implementeringsuppgiften och delegeras underförstått mellan de enskilda mjukvaruutvecklarna [ citat behövs ] . Under dessa omständigheter är det mindre benägna att utvecklare offra personliga intressen till förmån för produktens intressen [ citat behövs ] . Produktens komplexitet växer som ett resultat av att utvecklare lägger till ny design och ändrar tidigare för att återspegla förändringar i mode och individuell smak [ citat behövs ] .

Programmerare inkompetens

Bra mjukvaruutvecklare förstår vikten av att kommunicera med människor framför att kommunicera med datorn, enligt Code Complete av Steve McConnell . I genomsnitt går 85 procent av en programmerares tid åt att kommunicera med människor, medan endast 15 procent går åt till att kommunicera med datorn. [ citat behövs ] Underhållsprogrammerare spenderar 50 till 60 procent av sin tid på att försöka förstå koden de måste underhålla och ett program kommer att ha i genomsnitt 10 generationer underhållsprogrammerare under sin livstid [ citat behövs ] .

Programmerar oerfarenhet

Programmerare gör ibland implementeringsval som fungerar men som har oavsiktliga negativa konsekvenser. De vanligaste av dessa misstag är katalogiserade och refererade till som lukter i boken Refactoring av Martin Fowler . Med tiden försämrar många sådana implementeringsval programvarans design, vilket gör den allt svårare att förstå.

Se även

  •   C++ vanliga frågor av Cline, Lomow och Girou, Addison-Wesley 1999 ISBN 0-201-30983-1
  • Brooks, F., The Mythical Man-Month , Addison-Wesley Longman Inc., 1995.
  • McConnell, S., Code Complete , Microsoft Press, 1993
  • Fowler, M., Refactoring , Addison-Wesley, 2000