Nga Anarkia për të Optimizuar

Origjinal: From Anarchy to Optimizing

Zhvillimi I “Software”, Korrik 1993

Më të vogël të projekteve softuerike, të programit të cilësisë është përcaktuar kryesisht ngaaftësitë e një apo dy programuesit që të ndërtuar programin. Në të mesme dhe të mëdhaprojektet, cilësia është edhe fort të prekur nga procesi i zhvillimit të në kuadër të të cilave programuesve aftësitë janë të punësuar. Ky artikull trajton një qasja për të përmirësuar software të cilësisë dhe produktivitetit, duke e bërë përmirësime në procesin e zhvillimit.

E SEI Procesin e Pjekurisë Model

Software Engineering Institute (SEI) u themelua nga Departamenti i Mbrojtjes për studim zhvillim software dhe për të shpërndarë informacion rreth efektiv i praktikave të zhvillimit. Pjesë e SEI ” kartës është të përpiqet të reja teknikat dhe të shohim se si ata shkallë deri në kërkimet e cilësimeve në të vërtetë projekte. Kur një teknikë punon, SEI e përshkruan atë kështu që ushtron programuesit mund të vënë atë në përdorim.

Një fushë e SEI ka studiuar është proceset e zhvillimit. Ajo ka identifikuar pesë nivelet e software procesin e pjekurisë, çdonjëra prej të cilave paraqet një të fuqishme rritjes në zhvillimin e aftësive mbi nivel më poshtë. Këtu është një joformale përshkrimi i niveleve:

Niveli 1 Anarki. Programuesit e bëjnë atë që individualisht mendoj se është e mirë dhe shpresoj që të gjithë punën e tyre do të vijnë së bashku në fund të projekti. Kosto, të planifikojë dhe të cilësisë në përgjithësi janë të paparashikueshme dhe nga e kontrollit. të programimit të praktikave. Projektet janë rrënuar nga dobët të ndryshojë kontrollit, dhe mjetet nuk janë të integruar në proces. Të nivelit të lartë drejtues nuk do të të kuptojnë programimit problemet apo çështjet. Zyrtare SEI afati për këtëniveli është “fillestare.”

Niveli 2 Folklorinorganizata kanë përvojë të mjaftueshme të zhvilluar lloje të caktuara të sistemeve që ata besojnë se ata kanë shpikur një mënyrë efektive procesin e zhvillimit të softuerit. Ata kanë mësuar për të bërë plane, ata takohen vlerësimet e tyre, dhe korporatave mitologjisë jozyrtarisht mishëron tyre të akumuluar urtësi. Eforca e një organizate në këtë nivel të varet në faqen e saj të përsëritet përvoja metodat, lloje të reja të software, ose të mëdha dhe ndryshimet organizative. Organizative njohuri në këtë nivel, mund të gjenden vetëm në mendjet e individuale programuesit, dhe kur një programues i lë një organizatë, në mënyrë a e dije. Zyrtare SEI afat për këtë nivel është “të jetë i përsëritshëm.”

Niveli 3 Standardet. Në këtë nivel, të korporatave mitologji është shkruhet në një grup të standardeve. Edhe pse procesi është repeatable në kjo fazë dhe më nuk varet nga individët për ruajtjen e tij, askush nuk ka mbledhur të dhëna për të matur efektivitetin e saj apo të krahasohet me të tjera proceset. Fakti që procesi ka qenë zyrtarizuar nuk do të do të thotë se procesi funksionon, kështu që programuesit debat vlera e software-proceset dhe të procesit të matjeve në përgjithësi, dhe ata argumentojnë për që të proceseve dhe të procesit të matjeve për të përdorur. Zyrtare SEI afatgjatë për ky nivel është “të përcaktuara.”

Niveli 4 Matjes. Në matjen e nivelit të, standardi i procesit të matet dhe të vështirë të dhënat të mblidhen për të vlerësuar procesin e efektivitetit. Mbledhja e vështirë të dhënat e eliminonargumentet që karakterizojnë Nivelin e 3-të-vështirë e të dhënave mund të përdoret për të gjykuar meritat e konkurrimit proceset objektive. Zyrtare SEI afat për Nivelin e 4-të “është e arritur.”

Niveli 5 Optimization. Në nivelet më të ulëta në procesin e e pjekurisë, një organizatë fokusohet në repeatability dhe matjet kryesisht në mënyrë që të përmirësojnë cilësinë e produktit. Ajo mund të matet numri e defekte në mijë rreshta të kodit në mënyrë që ajo mund të dini se sa mirë e saj kodi. Në optimizuar nivel, një organizatë fokusohet në repeatability dhe matjes në mënyrë që ajo mund të përmirësojë procesin e zhvillimit. Ajo do të të matur numrin e defekteve në mijë rreshta të kodit në mënyrë që ajo të mund të të vlerësuar se sa mirë procesit të saj punon. Ajo ka aftësinë për të ndryshojë procesit të saj, të matur rezultatet e ndryshim, dhe për të krijuar ndryshim si një i ri standarde kur ndryshim rezulton në një proces përmirësimi. Ajo ka mjete në vend që automatikisht mbledhjen e të dhënave ajo ka nevojë për të analizuar procesin dhe për të përmirësuar atë. Zyrtare SEI afat për këtë nivel është “optimizmin.”

Përfitimet për të Përmirësuar Procesin Tuaj të Maturimit

Organizata juaj mund të korrin të konsiderueshme, përfitime të prekshme për përmirësimin e sajprocesin dhe për të lëvizur nga Niveli 1 në një nivel më të lartë. Lockheed hyrë në një programi për përmirësimin e software të procesit të zhvillimit të disa viteve më parë, dhe ajo tashmë ka arritur në Nivelin e 3-të. Këtu janë rezultatet e saj për një tipike 500,000 linjë projekti:

SEI Nivel

Zhvillimi Kosto ($milionë)

Zhvillimi Kohë (muaj)

Cilësinë e produktit (Defekte / KLOC)

Produktivitetin (LOC/Orë)

Produktivitetin ($/LOC)

1

33

40

9

1

66

2

15

32

3

3

30

3

7

25

1

5

14

4*

3

19

0.3

8

6

5*

1

16

0.1

12

2

* Parashikuar Rezultatet

Burimi: “Një Strategji për Software Përmirësimin e Procesit” (Pietrasanta 1991a).

Në pesë vitet e nevojshme për të lëvizur nga Niveli 1 në Nivelin 3, Lockheed përmirësuarproduktivitetin e saj nga një faktor i 5 dhe i ka ulur shkalla e defekt nga një faktor i pothuajse 10. Në Nivelin e 5-të, ajo do të ketë përmirësuar produktivitetin e saj nga një faktor i 12 dhe i ka ulur shkalla e defekt me një faktor prej pothuajse 100. Lockheed e shifrave për Nivelet 4 dhe 5 janë parashikime, por ato janë të ngjashme me shifrat aktuale raportohet për një IBM grupi që është përgjegjës për fluturim space-shuttle kodi dhe për të cilat është vlerësuar në Nivelin e 5-të (Pietrasanta 1991b). Rezultatet të ngjashme me Lockheed-së kanë qenë të raportuara nga Motorola, Xerox, dhe të tjera kompanitë (Myers 1992). Hughes Avion raporton se një kohë, $400mijë e investimeve në përmirësimin e procesit për një 500-person i stafit është tani të paguar jashtë në normë prej $2 milionë në vit (Humphrey, Snyder, dhe Willis 1991).

Përveç cilësisë dhe produktivitetit përmirësime, disa software furnizuesit e kanë përmirësuar proceset e tyre në mënyrë që të tregojnë aftësitë e tyre përkushtimi ndaj cilësisë. Qeveria dhe private blerësit janë duke filluar që të kërkojë një e furnizuesit SEI pjekurisë vlerësim si pjesë e tyre e produktit të blerë proceset. Sepse nivelet e pjekurisë lidhen me nivelet e produktit e cilësisë dhe për shkak të cilësisë së paketave software ndryshon në masë të madhe,kompanitë që së shpejti mund të refuzojë për të blerë produkte nga furnizues që nuk e kanë e arritur nivele të larta të maturisë.

Anketa e Organizatave Ekzistuese të Procesit të Pjekurisë

Duke pasur parasysh të konsiderueshme përfitimet nga duke bërë kështu, ju do të presin mëorganizatat për të përpiqen për Nivelin e 5-të. Në fjalimin kryesor në Paqësor Në veriperëndim të programeve të Cilësisë Konferencë në fund të vitit 1991, Alfred Pietrasanta raportuar në vijim të dhëna për numrin e organizatave në çdo nivel e pjekurisë:

SEI Nivel

Organizatat në këtë Nivel

1

85%

2

14%

3-5

1%

Burimi: “Implementimi i Inxhinierisë Softuerike në IBM” (Pietrasanta 1991b).

Si e vonë të vitit 1991, vetëm rreth një për qind e të gjitha organizatave u kryen më mirë se sa Nivelin e 2-të. Një arsye është se cilësia dhe produktiviteti proceset janë më pak çështje teknike se ata janë të organizative ato. Për të arritur përfitime të mëdha, në tërë organizatën duhet të të kuptojnë rëndësinë e procesit të zhvillimit dhe të jetë i dedikuar për përmirësimin e saj.

Nëse ju doni të përmirësuar tuaj organizimin e procesit të pjekurisë, ju duhet të konsideratë tre faktorë që e dallojnë më të ulët-nivelit të organizatave nga ata në nivele më të larta. Tre seksione skicë të tre këta faktorë: repeatability (metodologjia), measurability (matësit), dhe reagime (optimization).

Metodologjia

Zyrtarisht standardizimit procesin e zhvillimit është çelësi për përmirësimin e nga Nivelin e 2-të të Nivelit të 3-të. Ju mund të standardizohet në disa mënyra të ndryshme. Më organizatat e kodojnë proces që është tashmë duke u përdorur nga më të mirën e tyre programuesit. Organizata të tjera të përpiqen për të imponuar një cookie-prerës metodologjia të tilla si “të strukturuar metodat” ose “object-oriented metodat,” por anekdotike raportet sugjerojnë se për shqiptimin e një krejtësisht të re procesit është më pak efektive se duke filluar me një ekzistues.

Programuesit të cilët nuk janë të njohur me përfitimet e përdorimit të një formale metodologjia ndonjëherë rezistuar atë. Një metodologji e kufizon gamën e plotë të një programues të krijimtarisë dhe shpesh shton shpenzimet për procesin e zhvillimit. Nëse e vetmja gjë që një programues të di është se një metodologji është në të njëjtën kohë kufizuar dhe joefikase, askush nuk duhet të jetë i habitur se programues ankohet ajo. Por në një kontekst më të mëdha ngurtësi dhe dilema një procesi të përcaktuar kanë vlerë. Programuesit duhet të bëhet për të kuptuar se vlera në mënyrë që ata të mund të merren në konsideratë përfitimet e tij para se ata të ankohen rreth saj kufizimet.

Duke e bërë procesin të jetë i përsëritshëm gjithashtu vë themelet për matjen kjo është e nevojshme në nivelet më të larta. Kur ju të matur proceset me të gjerë variacione, ju nuk jeni të sigurt se në cilën faktorë janë përgjegjës për dallimet në cilësinë dhe produktivitetin. Kur procesi është bërë refugjatët nga përdorimi i një standard i metodologjisë, ju mund të jenë të arsyeshme të sigurt që matet dallimet të lindin nga faktori ju të ndryshme, jo nga faktorë të tjerë që nuk janë nën kontrollin tuaj.

Metrics

Zyrtarisht matjen procesin tuaj është çelësi për të lëvizur nga Niveli 3 deri në Nivelin 4. Termi “certifikatë lindjeje” i referohet çdo matje të lidhura me software zhvillim. Rreshta të kodit, numrin e defekteve, defekte në mijë linjat e kodi, numri i variablat globale, orë për të përfunduar një projekt–të gjitha këto janë quhet metrics si janë të gjithë të tjera të matshme aspektet e software proces.

Këtu janë tre të ngurta arsye për të matur procesin tuaj:

1. Ju mund të masë çdo pjesë e software proces në një mënyrë që është e eprori për të mos matur atë në të gjitha. E matjes mund të mos jetë e përkryer të saktë, por mund të jetë e vështirë për të bërë; duhet të jetë i rafinuar me kalimin e kohës; por çdo matje ju jep një trajtuar në procesin e juaj se ju nuk keni pa atë.

Për të dhënat për t’u përdorur në një eksperiment shkencor, duhet të përcaktohet. Mund tëimagjinoni një FDA shkencëtar, duke i rekomanduar një ndalim në një re të produkteve ushqimore sepse një grup i bardhë minjtë “vetëm dukej sicker pasi hëngrën atë?” Jo, ju do të insistojmë që ata japin një arsye të tilla si “Minjtë që hëngrën ushqim të ri ishin të sëmurë 3.7 herë më shumë sa minjtë që nuk kanë.” Për të vlerësuar software-i zhvillimit të metodave, ju duhet gjithashtu të matur. Deklaratat si “Kjo metodë e re duket shumë produktiv” nuk janë mjaft të mira.

2. Çfarë merr matur, merr bërë. Kur ju të matur një aspekt i juaj zhvillimit të procesit të, ju jeni në mënyrë të nënkuptuar duke u thënë njerëzve se ata duhet të punojnë për të përmirësuar këtë aspekt, dhe njerëzit do të përgjigjet për objektivat e keni vendosur për ta.

3. Për të argumentuar kundër metrics është për të argumentuar se është më mirë të mos e dinë se çfarë është me të vërtetë ndodh në projektin tuaj. Kur ju të matur një aspekt të një projekti, ju e dini diçka në lidhje me atë që ju nuk e dini se përpara. Ju mund të shihni nëse aspekti ju merr masa më të mëdha ose më të vogla ose të mbetet e njëjta. E matja ju jep një dritare në atë aspekt të projektit tuaj. Dritare mund të jetë i vogël dhe i vrenjtur deri sa ju mund të pastrojë matjet e juaj, por atë e më mirë se asnjë dritarja në të gjitha.

Ju mund të masë pothuajse çdo aspekt të software-procesin e zhvillimit. Këtu janë disa matësit e tjera praktikuesit kanë gjetur të dobishme:

E Dobishme Metrics
Madhësia
Gjithsej rreshta të kodit të shkruar
Gjithsej koment linjat
Total të deklaratave
Gjithsej rreshta bosh
Produktivitetin
Numri i orëve të punës e shpenzuar në projekt
Numri i orëve të punës e shpenzuar në çdo rutinë
Numri i herë çdo rutinë është ndryshuar
Defekt Ndjekja E
Ashpërsia e çdo defekt
Vendndodhjen e çdo defekt
Mënyra në të cilën çdo defekt është korrigjuar
Personi përgjegjës për çdo defekt
Numri i linjave të prekur nga defekt korrigjim
Numri i orëve të punës e shpenzuar korrigjimin e çdo defekt
Sasinë e kohës që kërkohet për të gjetur një defekt
Sasinë e kohës që kërkohet për të rregulluar një defekt
Numri i bërë përpjekje për të korrigjuar çdo defekt
Numri i gabime të reja që rezultojnë nga çdo defekt korrigjim
Maintainability
Numri i parametrat e kaluar për çdo rutinë
Numri i rutinat e thirrur nga çdo rutinë
Numri i rutinat që e quajnë të çdo rutinë
Numri i vendimit pikë në çdo rutinë
Kontroll rrjedhën e kompleksitetit të çdo rutinë
Rreshta të kodit në çdo rutinë
Linjat e komenteve në çdo rutinë
Numri i të dhënave-deklaratat në çdo rutinë
Numri i shkos në çdo rutinë
Numri i input/output deklaratat në çdo rutinë
Cilësia E Përgjithshme
Numri i përgjithshëm i defekteve
Numri i defekteve në çdo rutinë
Mesatarja defekte në mijë rreshta të kodit
Ndërkohë midis dështimet
Numri i compiler-i zbuluar gabimet

Ju mund të mbledhin shumicën e këtyre matjeve me mjetet software që janë aktualisht në dispozicion. Në këtë kohë, shumica e matësit nuk janë të dobishme për duke e bërë gjobë dallimet mes programeve, moduleve, ose rutinat (Shepperd dhe Ince 1989). Ata janë të dobishme, kryesisht për identifikimin e rutinat që janë “bëjnë përjashtim jo vetëm”–parregullt matësit në një rutinë që janë një shenjë paralajmëruese se ju duhet të reexamine rutinë, për të kontrolluar jashtëzakonisht të ulët të cilësisë.

Nuk do të fillojë me grumbullimin e të dhënave për të gjithë të jetë e mundur matësit. Ju do të varrosin veten në të dhëna kaq të ndërlikuar dhe jo të besueshme që ju nuk do të jetë në gjendje të kuptoj nga ajo çdo të thotë kjo. Filloni me një grup të thjeshtë të matësit të tilla si numri e defekte, në punë muaj, dollarë, dhe rreshta të kodit. Standardizimin e matjet e të gjithë projektet tuaja, dhe pastaj e përsosin e tyre dhe të shtoni të tyre si ju fituar më shumë njohuri në atë që ju duhet të matur.

Sigurohuni se arsyeja pse ju jeni të mbledhjes së të dhënave është i mirë-përcaktuar. Matja një aspekt mund të jenë të rrezikshme nëse që një matje nuk është pjesë e një me kujdes të ndërtuara vendosur të matjeve. Në qoftë se ju të matur vetëm linjat e kodin, ju mund të papritmas gjeni programuesit krijimin e programeve shumë defekte. Përpjekje shtesë që shkon në pjesë të procesit që ju masa vjen nga pjesët e ju nuk keni. Një qasje të mirë është për të vendosur qëllimet, përcaktoni pyetjet që ju duhet të bëni për të përmbushur qëllimet, dhe pastaj zgjidhni matjet e juaj, të bazuar në atë që ju duhet të dini për t’u përgjigjen pyetjeve. Njërishikimi i mbledhjes së të dhënave në NASA e Inxhinierisë Softuerike Laborator arriti në përfundimin se mësimi më i rëndësishëm mësuar në 15 vjet, ishte që ju të duhet të përcaktoni qëllimet e matjes para se të matur (Valett dhe McGarry 1989).

Optimization

Siç është theksuar më herët, e spikatura karakteristikat e SEI organizative pjekuria model në nivelin më të lartë janë repeatability, measurability, dhe kontrolluar ndryshime dhe reagime. Në një kuptim, ky është një shembull i metoda shkencore. Para se ju mund të besimit të rezultateve të një eksperimenti, duhet të jetë i përsëritshëm. Ju duhet të matur rezultatet e të dinë se çfarë rezultatet janë. Kur eksperimenti është i matur dhe repeatable, atëherë ju mund të ndryshojë të parametrave të veçantë dhe të shikojë efektet. Sepse procesi është çka tash, ju e dini se çdo dallimet ju masa vijnë nga variant që ju prezantua. Software proceset e punës në të njëjtën mënyrë.

Supozoni se ju dëshironi për të vlerësuar efektin e përdorimit të inspektimeve në vend se tëwalkthroughs. E keni përdorur walkthroughs vazhdimisht dhe të dhënat e mbledhura në gabimi-shkalla e zbulimit dhe e përpjekjeve të nevojshme për çdo gabim të gjetura. Nëse ju jeni duke përdorur një i matur, refugjatët e procesit, kur ju zëvendësim inspektimet për walkthroughs ju mund të jenë të arsyeshme të sigurt se te gjitha ndryshimet e matur i atribuohen përdorimit të inspektimeve në vend se të walkthroughs. Në qoftë se ju masën 20 për qind përmirësim të gabimit të zbulimit dhe 50 për qind reduktimi në përpjekje në gabim të gjetur, ju mund të ushqyer që të rezultojë përsëri në procesin dhe për të ndryshuar nga walkthroughs për inspektimet. Kjo është mënyra në të cilat Niveli 5 organizata është e optimizuar–është vazhdimisht duke përdorur të dhëna të mbledh për përmirësimin e procesit të saj.

Përmbledhje

Mbi të gjithë, por më të vogël të projekteve softuerike, në procesin e zhvillimit të përdorni në thelb përcakton cilësinë e programeve tuaja. E SEI e procesit pjekuria model ju jep një të mirë-përcaktuar qasja për të përmirësuar software tuaj proces. E SEI model ka prodhuar dramatike përmirësime në cilësinë dhe produktiviteti për kompanitë, të cilat kanë provuar atë, dhe kjo duket të caktuara të bëhet e rëndësishme për kompanitë më në të ardhmen.

Për Lexim Të Mëtejshëm

Humphrey, Vat S. Menaxhimin e Software Proces. Duke lexuar, Massachusetts, Addison-Uesli, 1989. Humphrey është përgjegjës për SEI e pesë nivelet organizative e pjekurisë. Ky libër është i organizuar sipas procesi i pjekurisë nivelet dhe detaje hapat e nevojshme për të lëvizur nga njëri nivelin e ardhshëm. Ai jep më shumë rigoroz dhe të plotë përkufizimet e procesin e pjekurisë nivelet se unë kam dhënë këtu.

Paulk, Mark C., et al. “Aftësia e Pjekurisë Model për Software,” SEI-91-TR-24. Në dispozicion nga Hulumtimi Qasje, Inc., 3400 Forbes Avenue–Suite 302, Pittsburgh, PA 15213, 1-800-685-6510. Kjo është zyrtare SEI letër të bardhë, i cili percakton procesin e pjekurisë modelit të përshkruar në këtë artikull.

Humphrey, Vat S., Terry R. Snyder, dhe Ronald R. Willis, 1991. “Software Përmirësimin e procesit në Hughes Avion,” IEEE Software, vol. 8, nr. 4 (korrik 1991), f. 11-23. Ky interesante rast studimi i software procesin përmirësimi përfshin një diskutim i hapur i problemeve Hughes hasur në duke u përpjekur për të përmirësuar procesin dhe është e dobishme në listën e 11 mësimet e nxjerra në përmirësimi përpjekje.

Grady, Robert B. dhe Deborah L. Caswell. Software Metrics: Krijimin E një Kompani të Gjerë të Programit, Englewood Cliffs, NJ: Prentice Hall, 1987. Grady dhe Caswell përshkruajnë përvojën e tyre në krijimin e një software-matësit program në Hewlett-Packard dhe të tregojnë se si ju mund të themelojnë një në organizatën tuaj.

Jones, Capers. Aplikuar Software Matjes. New York: McGraw-Hill, 1991. Jones është një lider në software të matësit. Libri i tij jep definitive teoria dhe praktika e tanishme teknikat e matjes dhe përshkruan problemet me tradicionale të matësit. Ajo paraqet një programi të plotë përmbledhja e “funksion-pikë matësit,” llogaritje që ndoshta do të zëvendësojë rreshta të kodit, si standarde masën e programit madhësinë. Jones ka mbledhur dhe të analizohen edhe një sasi të madhe të cilësisë dhe produktivitetit të të dhënave, dhe këtë librin distills rezultatet në një vend.

Referencat E Tjera

Myers, I Ndërgjegjshëm, 1992. “Praktikat E Mira Software Të Paguar, Ose Mund Të Bëjnë Ata?” IEEE Software, në Mars 1992, f. 96-97.

Pietrasanta, Alfred M., 1991a. “Një Strategji për Software të Procesit Përmirësim,” Nëntë Vjetor Pacific Northwest E Programeve Të Cilësisë Konferencë, Tetor 7-8, 1991, Oregon Qendrën e Konventës, Portland, OSE.

Pietrasanta, Alfred M., 1991b. “Implementimi i Inxhinierisë Softuerike në IBM” (fjalimin kryesor), Nëntë Vjetor Pacific Northwest e programeve të Cilësisë Konferenca, 7-8 tetor, 1991, Oregon Qendrën e Konventës, Portland, OSE.

Shepperd, M. dhe D. Ince, 1989. “Matësit, Perjashtim Analiza dhe Software Procesi i projektimit,” Informacion dhe Teknologji Software, vol. 31, nr. 2 (Mars 1989), f. 91-98.

Valett, J. dhe F. E. McGarry, 1989. “Një Përmbledhje e Software Matjes Përvoja në Inxhinieri Softuerike të Laboratorit,” Gazeta e Sistemeve dhe Software, 9 (2), 137-148.

Rreth Autorit

Steve McConnell është një software të pavarur-zhvillimi konsulent në Puget Sound zonë dhe autor i Kodit të Plotë: Një Doracak Praktik e Software të Ndërtimit, të publikuara nga Microsoft për Shtyp në Maj të vitit 1993.

Email mua në stevemcc@construx.com.

Leave a Reply

Your email address will not be published. Required fields are marked *