l-ați auzit pe cel despre depozitul care dispare? Într—o zi, a dispărut-nu din punct de vedere fizic, ci din ochii vigilenți ai sistemului de distribuție automatizat al unui cunoscut comerciant cu amănuntul. O eroare software a șters cumva existența depozitului, astfel încât mărfurile destinate depozitului au fost redirecționate în altă parte, în timp ce mărfurile din depozit au dispărut. Deoarece compania avea probleme financiare și închidea alte depozite pentru a economisi bani, angajații depozitului „dispărut” au tăcut. Timp de trei ani, nimic nu a sosit sau a plecat. Cu toate acestea, angajații își primeau încă salariile, deoarece un alt sistem informatic se ocupa de salarizare. Când eroarea software a ieșit la iveală, marfa din depozit a fost vândută, iar conducerea superioară le-a spus angajaților să nu spună nimic despre episod.
această poveste plutește în jurul industriei tehnologiei informației de 20 de ani. Este probabil apocrif, dar pentru cei dintre noi în afaceri, este în întregime plauzibil. De ce? Pentru că astfel de episoade se întâmplă tot timpul. În octombrie anul trecut, gigantul retailer britanic de produse alimentare J Sainsbury PLC a trebuit să anuleze investiția de 526 de milioane de dolari într-un sistem automat de gestionare a lanțului de aprovizionare. Se pare că marfa a fost blocată în depozitele și depozitele companiei și nu a ajuns la multe dintre magazinele sale. Sainsbury a fost forțat să angajeze aproximativ 3000 de funcționari suplimentari pentru a-și depozita rafturile manual .
acesta este doar unul dintre cele mai recente dintr-o lungă și sumbră istorie a proiectelor IT care au dispărut . Majoritatea experților IT sunt de acord că astfel de eșecuri apar mult mai des decât ar trebui. Mai mult, eșecurile sunt universal lipsite de prejudecăți: se întâmplă în fiecare țară; la companii mari și mici; în organizații comerciale, nonprofit și guvernamentale; și fără a ține cont de statut sau reputație. Costurile de afaceri și societale ale acestor eșecuri—în ceea ce privește banii contribuabililor și acționarilor irosiți, precum și investițiile care nu pot fi făcute—sunt acum în miliarde de dolari pe an.
problema se înrăutățește pe măsură ce crește omniprezent. În acest an, organizațiile și guvernele vor cheltui aproximativ 1 trilion de dolari pe hardware, software și servicii IT din întreaga lume. Dintre proiectele IT inițiate, de la 5 la 15 la sută vor fi abandonate înainte sau la scurt timp după livrare, deoarece sunt inadecvate fără speranță. Mulți alții vor ajunge cu întârziere și peste buget sau necesită o remaniere masivă. Puține proiecte IT, cu alte cuvinte, reușesc cu adevărat.
cea mai mare tragedie este că eșecul software-ului este în cea mai mare parte previzibil și evitabil. Din păcate, majoritatea organizațiilor nu văd prevenirea eșecului ca o problemă urgentă, chiar dacă această viziune riscă să dăuneze organizației și poate chiar să o distrugă. Înțelegerea motivului pentru care această atitudine persistă nu este doar un exercițiu academic; are implicații extraordinare pentru afaceri și societate.
SOFTWARE-UL ESTE PESTE TOT. Este ceea ce ne permite să luăm bani de la un bancomat, să dăm un telefon și să ne conducem mașinile. Un telefon mobil tipic conține acum 2 milioane de linii de cod software; până în 2010 va avea probabil de 10 ori mai multe. General Motors Corp. estimările că până atunci mașinile sale vor avea fiecare 100 de milioane de linii de cod.
compania medie cheltuiește aproximativ 4-5% din venituri pe tehnologia informației, iar cele care sunt foarte dependente de IT—cum ar fi companiile financiare și de telecomunicații—cheltuiesc mai mult de 10% pe it. Cu alte cuvinte, este acum una dintre cele mai mari cheltuieli corporative în afara costurilor angajaților. O mare parte din acești bani se duc în upgrade-uri hardware și software, taxe de licență software și așa mai departe, dar o mare parte este destinată noilor proiecte software menite să creeze un viitor mai bun pentru organizație și clienții săi.
și guvernele sunt mari consumatori de software. În 2003, Regatul Unit avea peste 100 de proiecte IT guvernamentale majore în curs de desfășurare, care au totalizat 20,3 miliarde de dolari. În 2004, guvernul SUA a catalogat 1200 de proiecte IT civile care costă peste 60 de miliarde de dolari, plus alte 16 miliarde de dolari pentru software militar.
oricare dintre aceste proiecte poate costa peste 1 miliard de dolari. Pentru a lua două exemple actuale, efortul de modernizare a calculatoarelor de la Departamentul Veteranilor din SUA este proiectat să ruleze 3,5 miliarde de dolari, în timp ce automatizarea dosarelor de sănătate ale Serviciului Național de sănătate din Marea Britanie va costa probabil peste 14,3 miliarde de dolari pentru dezvoltare și alte 50,8 miliarde de dolari pentru implementare.
astfel de proiecte megasoftware, cândva rare, sunt acum mult mai frecvente, deoarece operațiunile IT mai mici sunt unite în „sisteme de sisteme.”Controlul traficului aerian este un prim exemplu, deoarece se bazează pe conexiuni între zeci de rețele care furnizează comunicații, vreme, navigație și alte date. Dar trucul integrării a împiedicat mulți dezvoltatori IT, până la punctul în care cercetătorii academici cred din ce în ce mai mult că informatica însăși ar putea fi necesară regândirea în lumina acestor sisteme masiv complexe.
când un proiect eșuează , acesta pune în pericol perspectivele unei organizații. Dacă eșecul este suficient de mare, poate fura întregul viitor al companiei. Într-un colaps stelar, un sistem de planificare a resurselor prost implementat a condus FoxMeyer Drug Co., o companie de distribuție angro de droguri de 5 miliarde de dolari din Carrollton, Texas, care a intrat în faliment în 1996.
eșecul IT în guvern poate pune în pericol securitatea națională, așa cum a arătat dezastrul Virtual al dosarului FBI. Sistemul VCF de 170 de milioane de dolari, o bază de date care poate fi căutată destinată să permită agenților să „conecteze punctele” și să urmărească informații disparate, s-a încheiat în urmă cu cinci luni, fără ca niciun sistem să fie implementat .
eșecurile IT pot, de asemenea, să împiedice creșterea economică și calitatea vieții. În 1981, Administrația Federală a Aviației din SUA a început să analizeze modernizarea sistemului său învechit de control al traficului aerian, dar efortul de a construi un înlocuitor a devenit în curând plin de probleme . Până în 1994, când agenția a renunțat în cele din urmă la proiect, costul prevăzut s-a triplat, s-au cheltuit peste 2,6 miliarde de dolari, iar data preconizată de livrare a scăzut cu câțiva ani. Fiecare pasager al avionului care întârzie din cauza blocării Skyways simte încă această anulare; impactul economic cumulat al tuturor acestor întârzieri doar asupra companiilor aeriene americane (nu contează pasagerii) se apropie de 50 de miliarde de dolari.
la nivel mondial, este greu de spus câte proiecte software eșuează sau câți bani sunt irosiți ca urmare. Dacă definiți eșecul ca abandonarea totală a unui proiect înainte sau la scurt timp după livrare și dacă acceptați o rată de eșec conservatoare de 5 la sută, atunci miliarde de dolari sunt irosite în fiecare an pe software rău.
de exemplu, în 2004, SUA. guvernul a cheltuit 60 de miliarde de dolari pe software (fără a lua în considerare software-ul încorporat în sistemele de arme); o rată de eșec de 5% înseamnă că 3 miliarde de dolari au fost probabil irosite. Cu toate acestea, după câteva decenii în calitate de consultant IT, sunt convins că rata de eșec este de 15 până la 20 la sută pentru proiectele care au bugete de 10 milioane de dolari sau mai mult. Analizând investițiile totale în proiecte software noi-atât guvernamentale, cât și corporative—în ultimii cinci ani, estimez că eșecurile proiectelor au costat probabil economia SUA cel puțin 25 de miliarde de dolari și poate până la 75 de miliarde de dolari.
desigur, acele 75 de miliarde de dolari nu reflectă proiectele care le depășesc bugetele—ceea ce fac majoritatea proiectelor. Nici nu reflectă proiectele livrate târziu-ceea ce majoritatea sunt. De asemenea, nu ține cont de costurile de oportunitate de a începe din nou odată ce un proiect este abandonat sau de costurile sistemelor afectate de erori care trebuie refăcute în mod repetat.
apoi, de asemenea, există costul litigiilor de la clienții iritați care dau în judecată furnizorii pentru sisteme slab implementate. Când adăugați toate aceste costuri suplimentare, fila anuală pentru software-ul eșuat și tulburat rulează în mod conservator undeva de la 60 de miliarde de dolari la 70 de miliarde de dolari doar în Statele Unite. Pentru acești bani, ai putea lansa naveta spațială de 100 de ori, să construiești și să implementezi întregul sistem de poziționare globală cu 24 de sateliți și să dezvolți Boeing 777 de la zero-și mai ai câteva miliarde rămase.
de ce proiectele eșuează atât de des?
printre cei mai comuni factori:
- obiective nerealiste sau nearticulate ale proiectului
- estimări inexacte ale resurselor necesare
- cerințe de sistem prost definite
- raportare slabă a stării proiectului
- riscuri negestionate
- comunicare slabă între clienți, dezvoltatori și utilizatori
- utilizarea tehnologiei imature
- incapacitatea de a gestiona complexitatea proiectului
- practici de dezvoltare neglijent
- management de proiect săraci
- politica părților interesate
- presiunile comerciale
desigur, proiecte rareori fail pentru doar unul sau două motive. Proiectul VCF al FBI a suferit de multe dintre problemele enumerate mai sus. Majoritatea eșecurilor, de fapt, pot fi urmărite la o combinație de decizii tehnice, de management de proiect și de afaceri. Fiecare dimensiune interacționează cu celelalte în moduri complicate care exacerbează riscurile și problemele proiectului și cresc probabilitatea de eșec.
luați în considerare o simplă corvoadă software: un sistem de cumpărare care automatizează comanda, facturarea și expedierea pieselor, astfel încât un agent de vânzări să poată introduce comanda unui client, să o verifice automat în funcție de cerințele de preț și de contract și să aranjeze ca piesele și factura să fie trimise clientului din depozit.
cerințele pentru sistem specifică patru pași de bază. În primul rând, există procesul de vânzare, care creează o factură de vânzare. Acest proiect de lege este apoi trimis printr-un proces legal, care revizuiește termenii și condițiile contractuale ale vânzării potențiale și le aprobă. A treia linie este procesul de furnizare, care trimite părțile contractate, urmat de procesul de finanțare, care trimite o factură.
să spunem că pe măsură ce primul proces, pentru vânzări, este scris, programatorii tratează fiecare comandă ca și cum ar fi plasată în locația principală a companiei, chiar dacă compania are sucursale în mai multe state și țări. Această greșeală, la rândul său, afectează modul în care se calculează impozitul, ce fel de contract este emis și așa mai departe.
cu cât omisiunea este detectată și corectată mai repede, cu atât mai bine. E ca și cum ai tricota un pulover. Dacă observați o cusătură ratată imediat după ce o faceți, puteți pur și simplu să dezlegați un pic de fire și să mergeți mai departe. Dar dacă nu prindeți greșeala până la sfârșit, poate fi necesar să dezlegați întregul pulover doar pentru a reface acea cusătură.
dacă programatorii de software nu își prind omisiunea până la testarea finală a sistemului—sau mai rău, până după ce sistemul a fost lansat—costurile suportate pentru corectarea erorii vor fi probabil de multe ori mai mari decât dacă ar fi prins greșeala în timp ce încă lucrau la procesul inițial de vânzare.
și spre deosebire de o cusătură ratată într-un pulover, această problemă este mult mai greu de identificat; programatorii vor vedea doar că apar erori, iar acestea ar putea avea mai multe cauze. Chiar și după ce eroarea inițială este corectată, va trebui să schimbe alte calcule și documentație și apoi să retesteze fiecare pas.
de fapt, studiile au arătat că specialiștii în software își petrec aproximativ 40 până la 50% din timp pe reprelucrări evitabile, mai degrabă decât pe ceea ce ei numesc muncă cu valoare adăugată, care este practic o muncă care se face corect prima dată. Odată ce un software intră pe teren, costul remedierii unei erori poate fi de 100 de ori mai mare decât ar fi fost în etapa de dezvoltare.
dacă erorile abundă, atunci reprelucrarea poate începe să mlaștină un proiect, ca o barcă într-o furtună. Ce este mai rău, încercările de a remedia o eroare introduc adesea altele noi. E ca și cum ai salva șalupa, dar creezi și scurgeri. Dacă se produc prea multe erori, costul și timpul necesar pentru a finaliza sistemul devin atât de mari încât nu are sens să se întâmple.
în termeni simpli, un proiect IT eșuează de obicei atunci când reprelucrarea depășește valoarea adăugată pentru care a fost bugetat. Acest lucru s-a întâmplat cu Sydney Water corp., cel mai mare furnizor de apă din Australia, când a încercat să introducă un sistem automat de informare și facturare a clienților în 2002. Potrivit unei investigații efectuate de Auditorul General Australian, printre factorii care au condamnat proiectul s-au numărat planificarea și specificațiile inadecvate, ceea ce la rândul său a dus la numeroase cereri de modificare și la costuri și întârzieri suplimentare semnificative. Sydney Water a abandonat proiectul la jumătatea drumului, după ce a cheltuit 61 de milioane de dolari SUA (33,2 milioane de dolari SUA).
toate acestea ne conduc la întrebarea evidentă: de ce apar atât de multe erori?
eșecurile proiectelor Software au multe în comun cu accidentele de avion. Așa cum piloții nu intenționează niciodată să se prăbușească, dezvoltatorii de software nu urmăresc să eșueze. Când un avion comercial se prăbușește, anchetatorii analizează mulți factori, cum ar fi vremea, înregistrările de întreținere, dispoziția și pregătirea pilotului și factorii culturali din cadrul companiei aeriene. În mod similar, trebuie să ne uităm la mediul de afaceri, Managementul tehnic, managementul de proiect și cultura organizațională pentru a ajunge la rădăcinile eșecurilor software.
șef printre factorii de afaceri sunt concurența și necesitatea de a reduce costurile. Din ce în ce mai mult, managerii seniori se așteaptă ca departamentele IT să facă mai mult cu mai puțin și să o facă mai repede decât înainte; ei văd proiectele software nu ca investiții, ci ca Costuri pure care trebuie controlate.
exigențele politice pot, de asemenea, să facă ravagii în programul, costul și calitatea unui proiect IT. Când Aeroportul Internațional Denver a încercat să-și lanseze sistemul automat de manipulare a bagajelor, liderii politici de stat și locali au ținut proiectul la un program nerealist după altul. Eșecul de a livra sistemul la timp a întârziat deschiderea aeroportului din 1995 (pe atunci cel mai mare din Statele Unite), ceea ce a agravat impactul financiar de multe ori.
chiar și după ce sistemul a fost finalizat, acesta nu a funcționat niciodată în mod fiabil: a mestecat bagajele, iar căruțele folosite pentru transportul bagajelor au deraiat frecvent. În cele din urmă, United Airlines, principalul chiriaș al aeroportului, a dat în judecată contractantul sistemului, iar episodul a devenit o dovadă a pericolelor oportunității politice.
lipsa sprijinului din partea conducerii superioare poate, de asemenea, să ducă la naiba o întreprindere IT. Aceasta conduce gama de la eșecul de a aloca suficienți bani și forță de muncă pentru a nu stabili în mod clar relația proiectului IT cu afacerea organizației. În 2000, retailerul Kmart corp., în Troy, Mich., a lansat un $1.4 miliarde de eforturi de modernizare IT care vizează conectarea sistemelor sale de vânzări, marketing, aprovizionare și logistică, pentru a concura mai bine cu rivalul Wal-Mart corp., în Bentonville, Ark. Wal-Mart s-a dovedit însă prea formidabil, iar 18 luni mai târziu, Kmart, cu numerar, a redus modernizarea, anulând cele 130 de milioane de dolari pe care le investise deja în ea. Patru luni mai târziu, a declarat faliment; compania continuă să se lupte astăzi.
frecvent, managerii de proiecte IT dornici să obțină finanțare recurg la o formă de poker a mincinosului, promițând prea mult ce va face proiectul lor, cât va costa și când va fi finalizat. Multe, dacă nu chiar majoritatea, proiectele software încep cu bugete prea mici. Când se întâmplă acest lucru, dezvoltatorii trebuie să compenseze cumva deficitul, de obicei încercând să crească productivitatea, reducând sfera efortului sau luând comenzi rapide riscante în fazele de revizuire și testare. Toate acestea cresc probabilitatea de eroare și, în cele din urmă, de eșec.
un sistem de rezervare de călătorie de ultimă generație, condus de un consorțiu de buget Rent-A-Car, Hilton Hotels, Marriott și AMR, părintele American Airlines, este un caz în acest sens. În 1992, trei ani și jumătate și 165 de milioane de dolari în proiect, grupul l-a abandonat, invocând două motive principale: un program de dezvoltare prea optimist și o subestimare a dificultăților tehnice implicate. Acesta a fost același grup care a construit mai devreme sistemul de rezervare Sabre de mare succes, dovedind că performanța trecută nu este o garanție a rezultatelor viitoare.
după ce anchetatorii de accident consideră vremea ca un factor într-un accident de avion, se uită la avionul în sine. A fost ceva în planul avionului care a provocat prăbușirea? Avea prea multă greutate?
în eșecurile proiectului IT, întrebări similare apar invariabil cu privire la componentele tehnice ale proiectului: hardware-ul și software-ul utilizat pentru dezvoltarea sistemului și practicile de dezvoltare în sine. Organizațiile sunt adesea seduse de cântecul de sirenă al imperativului tehnologic—nevoia incontrolabilă de a folosi cea mai recentă tehnologie în speranța de a obține un avantaj competitiv. Cu tehnologia în schimbare rapidă și promițătoare noi capabilități fantastice, este ușor să cedeze. Dar folosirea tehnologiei imature sau netestate este o cale sigură spre eșec.
În 1997, după ce a cheltuit 40 de milioane de dolari, statul Washington a închis un proiect IT care ar fi procesat permisele de conducere și înmatriculările vehiculelor. Oficialii autovehiculelor au recunoscut că au fost prinși în urmărirea tehnologiei în loc să se concentreze pe implementarea unui sistem care să le îndeplinească cerințele. Dezastrul IT care a adus drogul FoxMeyer cu un an mai devreme a rezultat, de asemenea, din adoptarea unui sistem de planificare a resurselor de ultimă generație și apoi împingându-l dincolo de ceea ce ar putea face în mod fezabil.
dimensiunea pură a unui proiect este un izvor al eșecului. Studiile indică faptul că proiectele la scară largă eșuează de trei până la cinci ori mai des decât cele mici. Cu cât proiectul este mai mare, cu atât complexitatea este mai mare atât în elementele sale statice (piesele discrete de software, hardware și așa mai departe), cât și în elementele sale dinamice (cuplajele și interacțiunile dintre hardware, software și utilizatori; conexiuni la alte sisteme; și așa mai departe). O complexitate mai mare crește posibilitatea erorilor, deoarece nimeni nu înțelege cu adevărat toate părțile care interacționează ale întregului sau are capacitatea de a le testa.
sobru, dar adevărat: este imposibil să testezi temeinic un sistem IT de orice dimensiune reală. Roger S. Pressman a subliniat în cartea sa Inginerie Software, unul dintre textele clasice din domeniu, că „testarea exhaustivă prezintă anumite probleme logistice….Chiar și un mic program de 100 de linii cu unele căi imbricate și o singură buclă care execută mai puțin de douăzeci de ori poate necesita 10 la puterea a 14 căi posibile care trebuie executate.”Pentru a testa toate aceste 100 de trilioane de căi, a remarcat el, presupunând că fiecare ar putea fi evaluată într-o milisecundă, ar dura 3170 de ani.
toate sistemele IT sunt intrinsec fragile. Într-o clădire mare de cărămidă, ar trebui să eliminați sute de cărămizi plasate strategic pentru a face un colaps de perete. Dar într-un program software de 100 000 de linii, este nevoie doar de una sau două linii proaste pentru a produce probleme majore. În 1991, o parte din Rețeaua de telefonie ATandamp;T a ieșit, lăsând 12 milioane de abonați fără serviciu, totul din cauza unui singur caracter greșit într-o singură linie de cod.
practicile de dezvoltare necorespunzătoare sunt o sursă bogată de eșec și pot provoca erori în orice etapă a unui proiect IT. Pentru a ajuta organizațiile să-și evalueze practicile de dezvoltare software, SUA. Institutul de inginerie Software, în Pittsburgh, a creat Capability Maturity Model sau CMM. Evaluează practicile unei companii în funcție de cinci niveluri de maturitate în creștere. Nivelul 1 înseamnă că organizația folosește practici de dezvoltare ad-hoc și, eventual, haotice. Nivelul 3 înseamnă că compania și-a caracterizat practicile și le înțelege acum. Nivelul 5 înseamnă că organizația înțelege cantitativ variațiile proceselor și practicilor pe care le aplică.
În ianuarie, aproape 2000 de organizații guvernamentale și comerciale au raportat în mod voluntar nivelurile CMM. Peste jumătate au recunoscut că sunt la nivelul 1 sau 2, 30 la sută au fost la nivelul 3 și doar 17 la sută au ajuns la nivelul 4 sau 5. Procentele sunt și mai sumbre atunci când îți dai seama că acesta este un grup auto-selectat; evident, companiile cu cele mai proaste practici IT nu se vor supune unei evaluări CMM. (CMM este înlocuit de CMM-Integration, care vizează o evaluare mai largă a capacității unei organizații de a crea sisteme intensive de software.)
practicile IT imature au condamnat SUA. Internal Revenue Service 4 miliarde dolari efort de modernizare în 1997, și au continuat să ciuma curent IRS 8 miliarde dolari modernizare. Acesta poate fi pur și simplu intrinsec imposibil de a traduce codul fiscal în codul de software – legea fiscală este complexă și se bazează pe legislația de multe ori vag, și se schimbă tot timpul. Din punctul de vedere al unui Dezvoltator IT, este un coșmar al cerințelor. Dar IRS nu a fost ajutat de ostilitatea deschisă între programatorii interni și externi, de o subestimare ridicolă a muncii implicate și de multe alte practici proaste.
acțiunile pilotului chiar înainte de prăbușirea unui avion sunt întotdeauna de mare interes pentru anchetatori. Asta pentru că pilotul este factorul de decizie final, responsabil pentru funcționarea în siguranță a ambarcațiunii. În mod similar, managerii de proiect joacă un rol crucial în proiectele software și pot fi o sursă majoră de erori care duc la eșec.
În 1986, Bursa de Valori din Londra a decis să-și automatizeze sistemul de decontare a tranzacțiilor cu acțiuni. Șapte ani mai târziu, după ce a cheltuit 600 de milioane de dolari, a renunțat la dezvoltarea sistemului Taurus, nu numai pentru că designul a fost excesiv de complex și greoi, ci și pentru că managementul proiectului a fost, pentru a folosi cuvântul unuia dintre propriii manageri seniori, „delirant.”După cum au dezvăluit investigațiile, nimeni nu părea să vrea să știe adevăratul statut al proiectului, chiar dacă au apărut tot mai multe probleme, termenele au fost ratate și costurile au crescut .
cea mai importantă funcție a managerului de proiect IT este de a aloca resurse pentru diverse activități. Dincolo de aceasta, managerul de proiect este responsabil pentru planificarea și estimarea proiectului, controlul, organizarea, gestionarea contractelor, Managementul Calității, Managementul riscurilor, comunicațiile și managementul resurselor umane.
deciziile proaste ale managerilor de proiect sunt probabil cea mai mare cauză a eșecurilor software de astăzi. În schimb, gestionarea tehnică slabă poate duce la erori tehnice, dar acestea pot fi, în general, izolate și remediate. Cu toate acestea, o decizie proastă de management de proiect—cum ar fi angajarea prea puțini programatori sau alegerea unui tip greșit de contract—poate face ravagii. De exemplu, dezvoltatorii sistemului de rezervare a călătoriilor condamnate susțin că au fost împiedicați parțial prin utilizarea unui contract cu preț fix. Un astfel de contract presupune că munca va fi de rutină, sistemul de rezervare sa dovedit a fi altceva decât.
deciziile de management de Proiect sunt adesea dificile tocmai pentru că implică compromisuri bazate pe cunoștințe neclare sau incomplete. Estimarea cât de mult va costa un proiect IT și cât timp va dura este la fel de multă artă ca și știința. Cu cât proiectul este mai mare sau mai nou, cu atât estimările sunt mai puțin exacte. Este o glumă în industrie că estimările proiectelor IT sunt în cel mai bun caz în limita a 25% din valoarea lor reală, 75% din timp.
există și alte modalități prin care managementul slab al proiectului poate grăbi dispariția unui proiect software. Un studiu realizat de Institutul de Management de proiect, în Newton Square, Pa., a arătat că managementul riscului este cel mai puțin practicat dintre toate disciplinele de management de proiect din toate sectoarele industriale și nicăieri nu se aplică mai rar decât în industria IT. Fără o gestionare eficientă a riscurilor, dezvoltatorii de software au puține informații despre ceea ce poate merge prost, de ce poate merge prost și ce se poate face pentru a elimina sau atenua riscurile. De asemenea, nu există o modalitate de a determina ce riscuri sunt acceptabile, făcând la rândul lor deciziile de proiect cu privire la compromisuri aproape imposibile.
Managementul slab al proiectului ia multe alte forme, inclusiv comunicarea proastă, care creează o atmosferă inospitalieră care crește cifra de afaceri; nu investește în formarea personalului; și nu revizuiește progresul proiectului la intervale regulate. Oricare dintre acestea poate ajuta la deraierea unui proiect software.
ultima zonă pe care anchetatorii o analizează după un accident de avion este mediul organizațional. Compania aeriană are o cultură puternică de siguranță sau subliniază respectarea programului de zbor mai presus de toate? În proiectele IT, o organizație care apreciază deschiderea, onestitatea, comunicarea și colaborarea este mai aptă să găsească și să rezolve greșelile suficient de devreme încât reprelucrarea să nu devină copleșitoare.
dacă există o temă care trece prin istoria torturată a software-ului rău, este un eșec de a confrunta realitatea. În numeroase ocazii, Inspectorul General al Departamentului de Justiție al SUA, un grup extern de experți și alții i-au spus șefului FBI că sistemul VCF este imposibil așa cum este definit și totuși proiectul a continuat oricum. Aceleași atitudini au existat și în rândul celor responsabili pentru sistemul de rezervare a călătoriilor, sistemul Taurus al Bursei de Valori din Londra și proiectul de control al traficului aerian al FAA-toate indicative ale culturilor organizaționale conduse de frică și aroganță.
un raport recent al Oficiului Național de Audit din Marea Britanie a constatat că numeroase cazuri de proiecte IT guvernamentale sunt recomandate să nu meargă înainte, dar să continue oricum. Marea Britanie are chiar un departament guvernamental însărcinat cu prevenirea eșecurilor IT, dar, după cum a menționat raportul, mai mult de jumătate din agențiile pe care Departamentul le supraveghează ignoră în mod obișnuit sfaturile sale. Eu numesc acest tip de comportament irațional escaladarea proiectului-incapacitatea de a opri un proiect chiar și după ce este evident că probabilitatea de succes se apropie rapid de zero. Din păcate, un astfel de comportament nu este în niciun fel unic.
în analiza finală , eșecurile software mari tind să semene cu cel mai grav accident de avion imaginabil, în care pilotul era lipsit de experiență, dar extrem de pripit, a zburat într-o furtună de gheață într-o aeronavă netestată și a lucrat pentru o companie aeriană care a dat dovadă de siguranță în timp ce reducea instruirea și întreținerea. Dacă ați citi raportul investigatorului după aceea, ați clătina din cap și ați întreba: „nu a fost inevitabil un astfel de accident?”
deci, de asemenea, motivele pentru care proiectele software eșuează sunt bine cunoscute și au fost documentate pe larg în nenumărate articole, rapoarte și cărți . Și totuși, eșecurile, aproape eșecurile și software-ul rău vechi continuă să ne afecteze, în timp ce practicile cunoscute pentru a evita greșelile sunt evitate. S-ar părea că obținerea software-ului de calitate la timp și în limitele bugetului nu este o prioritate urgentă la majoritatea organizațiilor.
nu părea să fie la Oxford Health Plans Inc., în Trumbull, Conn., în 1997. Sistemul automat de facturare al companiei a fost vital pentru linia sa de jos și totuși managerii superiori erau mai interesați să extindă afacerea Oxford decât să se asigure că sistemul său de facturare ar putea satisface nevoile sale actuale . Chiar dacă au apărut probleme, cum ar fi trimiterea facturilor cu întârziere de câteva luni, managerii nu au acordat prea multă atenție. Când sistemul de facturare s-a prăbușit efectiv, compania a pierdut zeci de milioane de dolari, iar acțiunile sale au scăzut de la 68 la 26 de dolari pe acțiune într-o singură zi, ștergând 3,4 miliarde de dolari în valoare corporativă. Acționarii au intentat procese, iar mai multe agenții guvernamentale au investigat compania, care a fost în cele din urmă amendată cu 3 milioane de dolari pentru încălcări ale reglementărilor.
chiar și organizațiile care sunt arse de experiențe software proaste par incapabile sau nu doresc să învețe din greșelile lor. Într-un raport din 2000, Consiliul științific al Apărării din SUA, un organism consultativ al Departamentului Apărării, a menționat că diferite studii comandate de DOD au făcut 134 de recomandări pentru îmbunătățirea dezvoltării sale de software, dar doar 21 dintre aceste recomandări au fost acționate. Celelalte 113 erau încă valabile, a remarcat Consiliul, dar au fost ignorate, chiar dacă DOD s-a plâns de starea precară a dezvoltării software-ului de apărare!
unele organizații le pasă de calitatea software-ului, așa cum dovedește experiența firmei de dezvoltare software Praxis high Integrity Systems din Bath, Anglia. Praxis cere clienților săi să se angajeze în proiect, nu numai financiar, ci și ca participanți activi la crearea sistemului IT. Compania petrece, de asemenea, o cantitate imensă de timp înțelegând și definind cerințele clientului și îi provoacă pe clienți să explice ce doresc și de ce. Înainte de a scrie o singură linie de cod, atât clientul, cât și practica sunt de acord asupra a ceea ce se dorește, a ceea ce este fezabil și a riscurilor implicate, având în vedere resursele disponibile.
după aceea, Praxis aplică o abordare riguroasă de dezvoltare care limitează numărul de erori. Unul dintre marile avantaje ale acestui model este că filtrează mulți potențiali clienți care nu doresc să accepte responsabilitatea de a-și articula cerințele IT și de a cheltui timp și bani pentru a le implementa în mod corespunzător.
un anumit nivel de eșec al software-ului va fi întotdeauna cu noi. Într—adevăr, avem nevoie de eșecuri reale—spre deosebire de gafe evitabile-pentru a continua să progresăm tehnic și economic. Dar prea multe dintre eșecurile care apar astăzi sunt evitabile. Și pe măsură ce societatea noastră se bazează pe sisteme IT care sunt din ce în ce mai mari, mai integrate și mai scumpe, costul eșecului poate deveni dezastruos de mare.
chiar și acum, este posibil să se ia pariuri pe unde va avea loc următorul mare dezastru software. Unul dintre candidații mei de frunte este sistemele IT care vor rezulta din comunitatea americană de informații despre sănătate a Guvernului SUA, o colaborare public-privată care încearcă să definească standardele de date pentru dosarele medicale electronice. Ideea este că, odată ce standardele sunt definite, sistemele IT vor fi construite pentru a permite profesioniștilor din domeniul medical din întreaga țară să intre digital în înregistrările pacienților, oferind medicilor, spitalelor, asigurătorilor și altor specialiști în domeniul sănătății acces instantaneu la istoricul medical complet al pacientului. Experții în domeniul sănătății consideră că un astfel de sistem de sisteme va îmbunătăți îngrijirea pacienților, va reduce costurile cu aproximativ 78 de miliarde de dolari pe an și va reduce erorile medicale, salvând zeci de mii de vieți.
dar această abordare este doar un vis de țeavă dacă practicile software și ratele de eșec rămân așa cum sunt astăzi. Chiar și după cele mai optimiste estimări, crearea unui sistem electronic de înregistrare medicală va necesita 10 ani de efort, 320 de miliarde de dolari în costuri de dezvoltare și 20 de miliarde de dolari pe an în cheltuieli de operare—presupunând că nu există eșecuri, depășiri, fișe de program, probleme de securitate sau software de calitate inferioară. Acesta este cu greu un scenariu realist, mai ales că majoritatea experților IT consideră că comunitatea medicală este cea mai puțin experimentată de computer dintre toate întreprinderile profesionale.
pacienții și contribuabilii vor plăti în cele din urmă prețul pentru dezvoltarea sau eșecul unor astfel de boondoggles. Având în vedere practicile IT de astăzi, eșecul este o posibilitate distinctă și ar fi o pierdere de magnitudine fără precedent. Dar apoi, țările din întreaga lume se gândesc sau lucrează deja la multe inițiative de dimensiuni și impact similare—în aviație, securitate națională și armată, printre alte arene.
la fel ca electricitatea, apa, transportul și alte părți critice ale infrastructurii noastre, devine rapid intrinsecă existenței noastre zilnice. În câteva decenii, un eșec IT pe scară largă va deveni mai mult decât un inconvenient scump: ne va pune în pericol modul de viață. În absența tipului de schimbări la nivel industrial care vor atenua eșecurile software, cât de mult din viitorul nostru suntem dispuși să pariem pe aceste sisteme extrem de costisitoare și complexe?
știm deja cum să facem software-ul bine. S-ar putea să fie timpul să acționăm pe baza a ceea ce știm.