hallottál már az eltűnő raktárról? Egy nap eltűnt—nem fizikai szempontból, hanem egy jól ismert kiskereskedő automatizált elosztórendszerének éber szeméből. Egy szoftverhiba valahogy kitörölte a raktár létezését, így a raktárba szánt árukat máshová irányították át, míg a raktárban lévő áruk elhalványultak. Mivel a vállalat pénzügyi nehézségekkel küzdött, és más raktárakat is bezárt, hogy pénzt takarítson meg, az “eltűnt” raktár alkalmazottai csendben maradtak. Három évig semmi sem érkezett vagy maradt. Az alkalmazottak még mindig megkapták a fizetésüket, azonban, mert egy másik számítógépes rendszer kezelte a bérszámfejtést. Amikor a szoftverhiba végül kiderült, a raktárban lévő árut eladták, a felső vezetés pedig azt mondta az alkalmazottaknak, hogy ne mondjanak semmit az epizódról.
ez a történet már lebeg az információs technológia ipar 20-néhány éve. Valószínűleg apokrif, de a szakmában lévők számára teljesen hihető. Miért? Mert az ilyen epizódok mindig megtörténnek. Tavaly októberben például az Óriás brit élelmiszer-kiskereskedő, A J Sainsbury PLC-nek le kellett írnia 526 millió dolláros beruházását egy automatizált ellátási lánc-irányítási rendszerbe. Úgy tűnik, hogy az áru elakadt a vállalat raktáraiban és raktáraiban, és nem jutott el sok üzletébe. Sainsbury kénytelen volt mintegy 3000 további ügyintézőt felvenni a polcok kézi feltöltésére .
ez csak az egyik legújabb a hosszú, szomorú története informatikai projektek félresikerült . A legtöbb informatikai szakértő egyetért abban, hogy az ilyen hibák sokkal gyakrabban fordulnak elő, mint kellene. Mi több, a kudarcok általánosan elfogulatlanok: minden országban előfordulnak; nagyvállalatoknál és kicsiknél; kereskedelmi, nonprofit és kormányzati szervezeteknél; és tekintet nélkül a státuszra vagy a hírnévre. Ezeknek a kudarcoknak az üzleti és társadalmi költségei—az adófizetők és a részvényesek elpazarolt dollárjai, valamint a nem megvalósítható beruházások tekintetében – most már több milliárd dollárt tesznek ki évente.
a probléma csak súlyosbodik, ahogy mindenütt növekszik. Ebben az évben a szervezetek és a kormányok becslések szerint 1 billió dollárt költenek informatikai hardverekre, szoftverekre és szolgáltatásokra világszerte. A megkezdett informatikai projektek közül 5-15% – ot elhagynak a szállítás előtt vagy röviddel a szállítás után, mivel reménytelenül nem megfelelőek. Sokan mások későn érkeznek, és meghaladják a költségvetést, vagy hatalmas átdolgozást igényelnek. Kevés informatikai projekt, más szóval, valóban sikeres.
a legnagyobb tragédia az, hogy a szoftverhiba nagyrészt kiszámítható és elkerülhető. Sajnos a legtöbb szervezet nem látja sürgősnek a kudarc megelőzését, annak ellenére, hogy ez a nézet károsíthatja a szervezetet, sőt akár el is pusztíthatja. Annak megértése, hogy ez a hozzáállás miért marad fenn, nem csak tudományos gyakorlat; óriási következményekkel jár az üzleti élet és a társadalom számára.
SZOFTVER MINDENHOL. Ez az, ami lehetővé teszi számunkra, hogy készpénzt kapjunk egy ATM-ből, telefonáljunk, és vezessük az autónkat. Egy tipikus mobiltelefon most 2 millió sornyi szoftverkódot tartalmaz; 2010-re valószínűleg 10-szer annyi lesz. General Motors Corp. becslések szerint addigra az autók mindegyike 100 millió sornyi kóddal rendelkezik.
egy átlagos vállalat a bevétel 4-5 százalékát költi az informatikára, míg az erősen IT—függő cégek—például a pénzügyi és távközlési vállalatok-több mint 10 százalékot költenek rá. Más szavakkal, ez ma az egyik legnagyobb vállalati költség a munkavállalói költségeken kívül. Ennek a pénznek a nagy része hardver-és szoftverfrissítésekre, szoftverlicenc-díjakra és így tovább megy, de egy nagy darab az új szoftverprojektekre vonatkozik, amelyek célja a szervezet és ügyfelei jobb jövőjének megteremtése.
a kormányok is nagy szoftverfogyasztók. 2003-ban az Egyesült Királyságban több mint 100 nagy kormányzati informatikai projekt volt folyamatban, amelyek összege 20,3 milliárd dollár volt. 2004-ben az Egyesült Államok kormánya 1200 polgári informatikai projektet katalogizált, amelyek több mint 60 milliárd dollárba kerültek, plusz további 16 milliárd dollár katonai szoftverekre.
ezen projektek bármelyike több mint 1 milliárd dollárba kerülhet. Hogy két jelenlegi példát vegyünk, az Egyesült Államok Veteránügyi Minisztériumának számítógépes modernizációs erőfeszítései az előrejelzések szerint 3,5 milliárd dollárt fognak futtatni, míg az Egyesült Királyság Nemzeti Egészségügyi Szolgálatának egészségügyi nyilvántartásainak automatizálása valószínűleg több mint 14,3 milliárd dollárba kerül a fejlesztéshez, és további 50,8 milliárd dollárba kerül a telepítéshez.
az ilyen megasoftware projektek, amelyek egyszer ritkák, ma már sokkal gyakoribbak, mivel a kisebb informatikai műveletek “rendszerek rendszereibe” kapcsolódnak.”A légiforgalmi irányítás kiváló példa erre, mivel több tucat hálózat közötti kapcsolatokra támaszkodik, amelyek kommunikációt, időjárást, navigációt és egyéb adatokat szolgáltatnak. De az integráció trükkje sok informatikai fejlesztőt megzavart, arra a pontra, hogy az akadémiai kutatók egyre inkább úgy vélik, hogy a számítástechnikát is át kell gondolni ezeknek a masszívan összetett rendszereknek a fényében.
ha egy projekt kudarcot vall , veszélyezteti a szervezet kilátásait. Ha a hiba elég nagy, ellophatja a vállalat teljes jövőjét. Egy csillagolvadás során egy rosszul megvalósított erőforrás-tervezési rendszer vezette a FoxMeyer Drug Co. – t., egy 5 milliárd dolláros nagykereskedelmi kábítószer-forgalmazó vállalat a Texasi Carrolltonban, amely 1996-ban csődbe ment.
a kormány informatikai kudarca veszélyeztetheti a nemzetbiztonságot, amint azt az FBI virtuális Ügyfájlja is megmutatta. A 170 millió dolláros VCF rendszer, egy kereshető adatbázis, amely lehetővé teszi az ügynökök számára, hogy “összekapcsolják a pontokat” és nyomon kövessék az eltérő hírszerzési darabokat, ehelyett öt hónappal ezelőtt véget ért anélkül, hogy bármilyen rendszert telepítettek volna .
az informatikai kudarcok a gazdasági növekedést és az életminőséget is gátolhatják. 1981-ben az Egyesült Államok Szövetségi Légiközlekedési Igazgatósága megkezdte elavult légiforgalmi irányítási rendszerének korszerűsítését, de a csere kiépítésére irányuló erőfeszítés hamarosan problémákkal teli lett . 1994-re, amikor az ügynökség végül feladta a projektet, az előre jelzett költségek megháromszorozódtak, több mint 2,6 milliárd dollárt költöttek el, a várható szállítási határidő pedig több évvel csúszott. Minden repülőgép-utas, aki késik a rácsos skyways miatt, továbbra is érzi ezt a törlést; az összes késés kumulatív gazdasági hatása csak az amerikai légitársaságokra (ne törődj az utasokkal) megközelíti az 50 milliárd dollárt.
világszerte nehéz megmondani, hogy hány szoftverprojekt kudarcot vall, vagy mennyi pénzt pazarolnak el ennek eredményeként. Ha a kudarcot úgy definiáljuk, mint egy projekt teljes elhagyását a szállítás előtt vagy röviddel azután, és ha elfogadjuk az 5 százalékos konzervatív hibaarányt, akkor évente dollármilliárdokat pazarolunk rossz szoftverekre.
például 2004-ben az Egyesült Államok. a kormány 60 milliárd dollárt költött szoftverekre (nem számítva a fegyverrendszerekbe beágyazott szoftvereket); az 5 százalékos meghibásodási arány azt jelenti, hogy valószínűleg 3 milliárd dollárt pazaroltak el. Több évtizedes informatikai tanácsadó után azonban meg vagyok győződve arról, hogy a kudarcok aránya 15-20 százalék azoknál a projekteknél, amelyek költségvetése legalább 10 millió dollár. Az elmúlt öt évben az új szoftverprojektekbe—mind kormányzati, mind vállalati—történő teljes beruházást tekintve úgy becsülöm, hogy a projekt kudarcai valószínűleg legalább 25 milliárd dollárba, talán 75 milliárd dollárba kerültek az Egyesült Államok gazdaságának.
természetesen ez a 75 milliárd dollár nem tükrözi azokat a projekteket, amelyek meghaladják a költségvetésüket—ami a legtöbb projekt. Nem tükrözi a késedelmesen teljesített projekteket sem-amelyek többsége. Nem veszi figyelembe az alternatív költségeket is, ha egy projektet el kell kezdeni, vagy a hibákkal sújtott rendszerek költségeit, amelyeket ismételten át kell dolgozni.
akkor is ott van a költségek peres dühös ügyfelek bepereli szállítók rosszul megvalósított rendszerek. Ha összeadjuk ezeket a többletköltségeket, a sikertelen és problémás szoftverek éves lapja konzervatív módon valahol 60 milliárd dollárról 70 milliárd dollárra fut csak az Egyesült Államokban. Ebből a pénzből 100-szor indíthatja el az űrsiklót, építheti és telepítheti a teljes 24 műholdas globális helymeghatározó rendszert, és fejlesztheti a Boeing 777-et a semmiből—és még mindig van néhány milliárdja.
miért buknak el olyan gyakran a projektek?
a leggyakoribb tényezők között:
- irreális vagy nem megfogalmazott projektcélok
- a szükséges erőforrások pontatlan becslése
- rosszul meghatározott rendszerkövetelmények
- a projekt állapotának rossz jelentése
- nem kezelt kockázatok
- gyenge kommunikáció az ügyfelek, fejlesztők és felhasználók között
- éretlen technológia használata
- képtelenség kezelni a projekt összetettségét
- hanyag fejlesztési gyakorlatok
- gyenge projektmenedzsment
- érdekelt felek politikája
- kereskedelmi nyomás
természetesen az informatikai projektek ritkán csak egy vagy két okból kudarcot vall. Az FBI VCF projektje a fent felsorolt problémák közül sokat szenvedett. A legtöbb hiba valójában technikai, projektmenedzsment és üzleti döntések kombinációjára vezethető vissza. Minden dimenzió bonyolult módon kölcsönhatásba lép a többiekkel, amelyek súlyosbítják a projekt kockázatait és problémáit, és növelik a kudarc valószínűségét.
Vegyünk egy egyszerű szoftver házimunka: olyan beszerzési rendszer, amely automatizálja az alkatrészek megrendelését, számlázását és szállítását, hogy az eladó beírhassa az Ügyfél megrendelését, automatikusan ellenőrizhesse az árképzési és szerződéses követelményeket, és gondoskodjon arról, hogy az alkatrészeket és a számlát a raktárból küldje el az ügyfélnek.
a rendszer követelményei négy alapvető lépést határoznak meg. Először is ott van az értékesítési folyamat, amely létrehozza az eladási számlát. Ezt a számlát ezután egy jogi eljárás útján küldik el, amely felülvizsgálja a potenciális értékesítés szerződéses feltételeit és jóváhagyja azokat. A harmadik sorban az ellátási folyamat, amely elküldi a szerződött részeket, majd a finanszírozási folyamat, amely számlát küld.
tegyük fel, hogy az első értékesítési folyamat megírásakor a programozók minden megrendelést úgy kezelnek, mintha a vállalat fő helyszínén helyeznék el, annak ellenére, hogy a vállalatnak több államban és országban vannak fiókjai. Ez a hiba viszont befolyásolja az adó kiszámításának módját, milyen szerződést bocsátanak ki stb.
minél hamarabb észleljük és korrigáljuk a mulasztást, annál jobb. Olyan, mint egy pulóvert kötni. Ha észrevesz egy kihagyott öltést, miután elkészítette, egyszerűen kibonthat egy kis fonalat, és továbbléphet. De ha a végéig nem kapja el a hibát, akkor lehet, hogy ki kell bontania az egész pulóvert, csak hogy újra elvégezze ezt az egy öltést.
ha a szoftverkódolók nem kapják el mulasztásukat a rendszer végső teszteléséig—vagy ami még rosszabb, a rendszer bevezetéséig -, akkor a hiba kijavításának költségei valószínűleg sokszor nagyobbak lesznek, mint ha a hibát akkor kapták volna el, amikor még a kezdeti értékesítési folyamaton dolgoztak.
és ellentétben a pulóver kihagyott öltésével, ezt a problémát sokkal nehezebb pontosan meghatározni; a programozók csak azt látják, hogy hibák jelennek meg, és ezeknek több oka lehet. Még az eredeti hiba kijavítása után is meg kell változtatniuk a többi számítást és dokumentációt, majd minden lépést újra tesztelniük kell.
valójában tanulmányok kimutatták, hogy a szoftverszakemberek idejük körülbelül 40-50%-át elkerülhető átdolgozásra fordítják, nem pedig arra, amit hozzáadott értéknek neveznek, ami alapvetően olyan munka, amelyet először végeznek el. Amint egy szoftver bekerül a mezőbe, a hiba kijavításának költsége 100-szor olyan magas lehet, mint a fejlesztési szakaszban.
ha hibák bővelkednek, akkor az átdolgozás megkezdheti a projekt elárasztását, mint egy gumicsónak a viharban. Ami még rosszabb, a hiba kijavítására tett kísérletek gyakran újakat vezetnek be. Olyan, mintha kihúznád azt a gumicsónakot, de közben szivárogtatsz is. Ha túl sok hiba keletkezik, a rendszer befejezéséhez szükséges költség és idő olyan nagy lesz, hogy nincs értelme.
a legegyszerűbben fogalmazva: egy informatikai projekt általában akkor bukik meg, ha az átdolgozás meghaladja a költségvetésben szereplő hozzáadott értékű munkát. Ez történt Ausztrália legnagyobb vízszolgáltatójával, a Sydney Water Corp. – val, amikor 2002-ben megpróbált bevezetni egy automatizált ügyfélinformációs és számlázási rendszert . Az Ausztrál könyvvizsgáló által végzett vizsgálat szerint a projektet elítélő tényezők között szerepelt a nem megfelelő tervezés és specifikáció, ami viszont számos változtatási kérelemhez, jelentős többletköltségekhez és késedelmekhez vezetett. A Sydney Water félúton megszakította a projektet, miután 61 millió AU dollárt (33,2 millió USD) költött.
mindez a nyilvánvaló kérdéshez vezet: miért fordul elő annyi hiba?
a szoftverprojektek hibáinak sok közös vonása van a repülőgép-összeomlásokkal. Ahogy a pilóták soha nem szándékoznak összeomlani, a szoftverfejlesztők nem törekednek a kudarcra. Amikor egy kereskedelmi repülőgép összeomlik, a nyomozók számos tényezőt vizsgálnak, például az időjárást, a karbantartási nyilvántartásokat, a pilóta hajlamát és képzését, valamint a légitársaságon belüli kulturális tényezőket. Hasonlóképpen meg kell vizsgálnunk az üzleti környezetet, a műszaki menedzsmentet, a projektmenedzsmentet és a szervezeti kultúrát, hogy eljussunk a szoftverhibák gyökereihez.
az üzleti tényezők közül a legfontosabb a verseny és a költségek csökkentésének szükségessége. A felsővezetők egyre inkább elvárják, hogy az informatikai részlegek kevesebbet tegyenek, és gyorsabban végezzék el, mint korábban; a szoftverprojekteket nem befektetéseknek, hanem tiszta költségeknek tekintik, amelyeket ellenőrizni kell.
a politikai szükségletek pusztítást okozhatnak az informatikai projektek ütemezésében, költségében és minőségében is. Amikor a Denveri nemzetközi repülőtér megpróbálta bevezetni az automatizált poggyászkezelő rendszerét, az állami és helyi politikai vezetők a projektet irreális ütemterv szerint tartották a másik után. A rendszer időben történő átadásának elmulasztása késleltette a repülőtér (akkor az Egyesült Államok legnagyobb) 1995-ös megnyitását, ami sokszorosára növelte a pénzügyi hatást.
még a rendszer befejezése után sem működött megbízhatóan: megrágta a poggyászokat, és a poggyász szállítására használt szekerek gyakran kisiklottak. Végül a United Airlines, a repülőtér fő bérlője beperelte a rendszer kivitelezőjét, és az epizód a politikai célszerűség veszélyeinek bizonyságává vált.
a felső vezetés támogatásának hiánya egy informatikai vállalkozást is átkozhat. Ez a skála attól függ, hogy nem sikerül-e elegendő pénzt és munkaerőt elkülöníteni, hogy nem egyértelműen megalapozza az informatikai projekt kapcsolatát a szervezet üzleti tevékenységével. 2000-ben kiskereskedő Kmart Corp., ban ben Troy, Mich., elindított egy $1.4 milliárd informatikai korszerűsítési erőfeszítés, amelynek célja az értékesítési, marketing, ellátási és logisztikai rendszerek összekapcsolása, hogy jobban versenyezzenek a rivális Wal-Mart corp. – vel, Bentonville-ben, Ark. A Wal-Mart azonban túl félelmetesnek bizonyult, és 18 hónappal később a pénzhiányos Kmart csökkentette a modernizációt, leírva a már befektetett 130 millió dollárt. Négy hónappal később csődöt jelentett; a társaság ma is küzd.
gyakran előfordul, hogy az informatikai projektmenedzserek, akik alig várják, hogy finanszírozást kapjanak, a liar ‘ s poker egyik formájához folyamodnak, túlígérve, hogy a projektük mit fog tenni, mennyibe fog kerülni, és mikor fejeződik be. Sok, ha nem a legtöbb szoftverprojekt túl kicsi költségvetéssel indul. Amikor ez megtörténik, a fejlesztőknek valahogy pótolniuk kell a hiányt, jellemzően a termelékenység növelésével, az erőfeszítések hatókörének csökkentésével vagy kockázatos rövidítésekkel a felülvizsgálati és tesztelési szakaszokban. Ezek mind növelik a hiba és végső soron a kudarc valószínűségét.
a state-of-the-art utazási foglalási rendszer által vezetett konzorcium költségvetési Rent-A-Car, Hilton Hotels, Marriott, és AMR, a szülő American Airlines, egy példa erre. 1992-ben, három és fél év és 165 millió dollár után a csoport felhagyott a projekttel, két fő okra hivatkozva: a túlságosan optimista fejlesztési ütemtervre és az ezzel járó technikai nehézségek alulbecslésére. Ez ugyanaz a csoport volt, amely korábban felépítette a rendkívül sikeres Sabre foglalási rendszert, bizonyítva, hogy a múltbeli teljesítmény nem garantálja a jövőbeli eredményeket.
miután a baleseti nyomozók az időjárást a repülőgép-baleset tényezőjének tekintik, magát a repülőgépet vizsgálják. Volt valami a gép tervezésében, ami a balesetet okozta? Túl nagy volt a súlya?
az informatikai projektek kudarcaiban mindig hasonló kérdések merülnek fel a projekt technikai összetevőivel kapcsolatban: a rendszer fejlesztéséhez használt hardver és szoftver, valamint maguk a fejlesztési gyakorlatok. A szervezeteket gyakran elcsábítja a technológiai szükségszerűség szirénája – az ellenőrizhetetlen késztetés a legújabb technológia használatára a versenyelőny megszerzésének reményében. A technológia gyorsan változik és fantasztikus új képességeket ígér, így könnyen megadható. De az éretlen vagy nem tesztelt technológia használata biztos út a kudarchoz.
1997-ben, 40 millió dollár elköltése után Washington állam leállított egy informatikai projektet, amely feldolgozta volna a vezetői engedélyeket és a járműnyilvántartásokat. A gépjármű-tisztviselők beismerték, hogy felzárkóztak a technológia üldözésébe, ahelyett, hogy a követelményeiknek megfelelő rendszer megvalósítására koncentráltak volna. Az informatikai összeomlás, amely egy évvel korábban lehozta a FoxMeyer drogot, szintén a legkorszerűbb erőforrás-tervezési rendszer elfogadásából fakadt, majd túlmutatott azon, amit megvalósíthat.
egy projekt puszta mérete a kudarc forrása. A tanulmányok azt mutatják, hogy a nagyszabású projektek háromszor-ötször gyakrabban buknak meg, mint a kicsik. Minél nagyobb a projekt, annál komplexebb mind a statikus elemei (a különálló szoftverek, hardverek stb.), mind a dinamikus elemei (a hardverek, szoftverek és felhasználók közötti kapcsolatok és kölcsönhatások; más rendszerekkel való kapcsolatok stb.). A nagyobb komplexitás növeli a hibák lehetőségét, mert senki sem érti igazán az egész kölcsönhatásban lévő részeit, vagy nem képes tesztelni őket.
kijózanító, de igaz: lehetetlen egy valós méretű informatikai rendszert alaposan tesztelni. Roger S. Pressman a szoftverfejlesztés című könyvében rámutatott, amely a terület egyik klasszikus szövege, hogy ” a kimerítő tesztelés bizonyos logisztikai problémákat vet fel….Még egy kis 100 soros program néhány beágyazott utak és egy hurok végrehajtó kevesebb, mint húsz alkalommal lehet szükség 10 a hatalom 14 lehetséges utak kell végrehajtani.”Mind a 100 trillió út tesztelése, megjegyezte, feltételezve, hogy mindegyiket milliszekundum alatt ki lehet értékelni, 3170 évet vesz igénybe.
minden informatikai rendszer eredendően törékeny. Egy nagy téglaépületben több száz stratégiailag elhelyezett téglát kell eltávolítania a fal összeomlásához. De egy 100 000 soros szoftverprogramban csak egy vagy két rossz vonal szükséges a nagyobb problémák előidézéséhez. 1991-ben az ATandamp;T telefonhálózata kialudt, 12 millió előfizetőt hagyva szolgáltatás nélkül, mindezt egyetlen kódsor egyetlen elgépelt karaktere miatt.
a hanyag fejlesztési gyakorlatok a kudarcok gazdag forrását jelentik, és hibákat okozhatnak az informatikai projekt bármely szakaszában. Annak érdekében, hogy segítse a szervezeteket szoftverfejlesztési gyakorlataik értékelésében, az Egyesült Államok. A pittsburghi Software Engineering Institute létrehozta a Capability Maturity Model (CMM) modellt. A vállalat gyakorlatait a növekvő érettség öt szintjéhez viszonyítja. Az 1. szint azt jelenti, hogy a szervezet ad hoc és esetleg kaotikus fejlesztési gyakorlatokat alkalmaz. A 3. szint azt jelenti, hogy a vállalat jellemezte gyakorlatait, és most megérti azokat. Az 5. szint azt jelenti, hogy a szervezet mennyiségileg megérti az általa alkalmazott folyamatok és gyakorlatok változásait.
január óta közel 2000 kormányzati és kereskedelmi szervezet önként jelentette be a CMM szintjét. Több mint fele elismerte, hogy az 1.vagy a 2. szinten van, 30 százalékuk a 3. szinten volt, és csak 17 százalékuk érte el a 4. vagy az 5. szintet. A százalékok még szomorúbbak, ha rájössz, hogy ez egy önálló kiválasztott csoport; nyilvánvaló, hogy a legrosszabb informatikai gyakorlatokkal rendelkező vállalatok nem vetik alá magukat CMM értékelésnek. (A CMM-et felváltja a CMM-integráció, amelynek célja a szervezet szoftverintenzív rendszerek létrehozásának képességének szélesebb körű értékelése.)
az éretlen informatikai gyakorlatok halálra ítélték az Egyesült Államokat. Az Internal Revenue Service 4 milliárd dolláros modernizációs erőfeszítései 1997-ben, és továbbra is sújtják az IRS jelenlegi 8 milliárd dolláros modernizációját. Lehet, hogy önmagában lehetetlen lefordítani az adótörvényt szoftverkódra—az adójog összetett és gyakran homályos jogszabályokon alapul, és folyamatosan változik. Egy IT fejlesztő szemszögéből, ez egy követelmény rémálom. De az IRS-t nem segítette a házon belüli és a külső programozók közötti nyílt ellenségeskedés, a munka nevetséges alábecsülése és sok más rossz gyakorlat.
a pilóta cselekedetei közvetlenül a repülőgép lezuhanása előtt mindig nagy érdeklődést mutatnak a nyomozók számára. Ez azért van, mert a pilóta a végső döntéshozó, felelős a vízi jármű biztonságos üzemeltetéséért. Hasonlóképpen, a projektmenedzserek döntő szerepet játszanak a szoftverprojektekben, és a hibákhoz vezető hibák fő forrása lehet.
1986-ban a Londoni Tőzsde úgy döntött, hogy automatizálja a tőzsdei tranzakciók elszámolására szolgáló rendszerét. Hét évvel később, miután 600 millió dollárt költött, megszüntette a Taurus rendszer fejlesztését, nem csak azért, mert a tervezés túlságosan bonyolult és nehézkes volt, hanem azért is, mert a projekt vezetése az volt, hogy az egyik saját felső vezetőjének szavát használja, “téveszmés.”Mint a vizsgálatok kiderítették, úgy tűnt, senki sem akarja tudni a projekt valódi helyzetét, még akkor sem, ha egyre több probléma merült fel, a határidőket elmulasztották, a költségek pedig megugrottak .
az informatikai projektmenedzser legfontosabb funkciója az erőforrások különféle tevékenységekhez való hozzárendelése. Ezen túlmenően a projektmenedzser felelős a projekttervezésért és becslésért, az ellenőrzésért, a szervezésért, a szerződéskezelésért, a minőségirányításért, a kockázatkezelésért, a kommunikációért és az emberi erőforrás menedzsmentért.
a projektmenedzserek rossz döntései ma valószínűleg a szoftverhibák legfőbb okai. A rossz műszaki irányítás ezzel szemben technikai hibákhoz vezethet, de ezek általában elkülöníthetők és kijavíthatók. Azonban egy rossz projektmenedzsment döntés—például túl kevés programozó felvétele vagy rossz típusú szerződés kiválasztása-pusztítást okozhat. Például a ítélve utazási foglalási rendszer fejlesztői azt állítják,hogy részben rögzített árú szerződés alkalmazásával bicegtek. Egy ilyen szerződés feltételezi, hogy a munka rutinszerű lesz, a foglalási rendszer kiderült, hogy nem más.
a Projektvezetési döntések gyakran bonyolultak éppen azért, mert homályos vagy hiányos ismereteken alapuló kompromisszumokat tartalmaznak. Annak becslése, hogy egy informatikai projekt mennyibe kerül és mennyi ideig tart, ugyanolyan művészet, mint a tudomány. Minél nagyobb vagy újszerűbb a projekt, annál kevésbé pontosak a becslések. Ez egy futó vicc az iparban, hogy az informatikai projekt becslései a legjobb esetben belül vannak 25 valódi értékük százaléka 75 az idő százaléka.
vannak más módszerek is, amelyekkel a rossz projektmenedzsment felgyorsíthatja a szoftverprojekt pusztulását. A projektmenedzsment Intézet tanulmánya, Newton téren, Pa., megmutatta, hogy a kockázatkezelés az összes projektmenedzsment tudományág közül a legkevésbé gyakorlott az összes iparágban, és sehol sem alkalmazzák ritkábban, mint az informatikai iparban. Hatékony kockázatkezelés nélkül a szoftverfejlesztőknek kevés rálátásuk van arra, hogy mi romolhat el, miért romolhat el, és mit lehet tenni a kockázatok kiküszöbölése vagy enyhítése érdekében. Azt sem lehet meghatározni, hogy milyen kockázatok elfogadhatók, viszont szinte lehetetlenné teszi a kompromisszumokkal kapcsolatos projektdöntéseket.
a rossz projektmenedzsment számos más formát ölthet, beleértve a rossz kommunikációt is, amely barátságtalan légkört teremt, amely növeli a forgalmat; nem fektet be a személyzet képzésébe; és nem vizsgálja meg rendszeres időközönként a projekt előrehaladását. Ezek bármelyike segíthet egy szoftverprojekt kisiklásában.
az utolsó terület, amelyet a nyomozók megvizsgálnak egy repülőgép-baleset után, a szervezeti környezet. Van-e a légitársaságnak erős biztonsági kultúrája, vagy mindenekelőtt a repülési menetrend betartását hangsúlyozza? Az informatikai projektekben egy olyan szervezet, amely értékeli a nyitottságot, az őszinteséget, a kommunikációt és az együttműködést, alkalmasabb arra, hogy elég korán megtalálja és megoldja a hibákat, hogy az átdolgozás ne váljon elsöprővé.
ha van olyan téma, amely végigfut a rossz szoftverek megkínzott történetén, akkor az a valósággal való szembenézés kudarca. Számos alkalommal az Egyesült Államok Igazságügyi Minisztériumának főfelügyelője, egy külső szakértői testület és mások azt mondták az FBI vezetőjének, hogy a VCF rendszer lehetetlen a meghatározás szerint, és a projekt mégis folytatódott. Ugyanez a hozzáállás állt fenn az utazási foglalási rendszerért, a Londoni Tőzsde Taurus rendszeréért és az FAA légiforgalmi irányítási projektjéért felelős személyek körében is-mindez a félelem és az arrogancia által vezérelt szervezeti kultúrára utal.
az Egyesült Királyság Nemzeti Számvevőszékének közelmúltbeli jelentése számos olyan esetet talált, amikor a kormányzati informatikai projekteket nem javasolták, hogy folytassák. Az Egyesült Királyságnak még egy kormányzati osztálya is van, amelynek feladata az informatikai kudarcok megelőzése, de amint azt a jelentés megjegyezte, az osztály által felügyelt ügynökségek több mint fele rutinszerűen figyelmen kívül hagyja tanácsát. Ezt a fajta viselkedést irracionális projekt eszkalációnak nevezem—a projekt leállításának képtelensége még akkor is, ha nyilvánvaló, hogy a siker valószínűsége gyorsan megközelíti a nullát. Sajnos az ilyen viselkedés semmiképpen sem egyedi.
végső soron a nagy szoftverhibák általában az elképzelhető legrosszabb Repülőgép-balesetre hasonlítanak , ahol a pilóta tapasztalatlan volt, de rendkívül meggondolatlan, egy nem tesztelt repülőgépen jégviharba repült, és egy olyan légitársaságnak dolgozott, amely a biztonságot szolgálta, miközben csökkentette a képzést és a karbantartást. Ha utána elolvassa a nyomozó jelentését, megrázza a fejét, és azt kérdezi: “nem volt elkerülhetetlen egy ilyen baleset?”
tehát a szoftverprojektek kudarcának okai is jól ismertek, és számtalan cikkben, jelentésben és könyvben részletesen dokumentáltak . És mégis, a kudarcok, a Közel-kudarcok és az egyszerű régi rossz szoftverek továbbra is sújtanak minket, miközben a hibák elkerülésére ismert gyakorlatokat elkerülik. Úgy tűnik, hogy a minőségi szoftverek időben és költségvetésen belüli beszerzése a legtöbb szervezetnél nem sürgős prioritás.
nem úgy tűnt, hogy az Oxford Health Plans Inc., Trumbullban, Conn., 1997-ben. A vállalat automatizált számlázási rendszere létfontosságú volt a lényegéhez, mégis a felső vezetők jobban érdekeltek Oxford üzleti tevékenységének bővítésében, mint annak biztosításában, hogy számlázási rendszere megfeleljen a jelenlegi igényeinek . Még akkor is, amikor problémák merültek fel, például a számlák hónapokkal késve történő kiküldése, a vezetők kevés figyelmet fordítottak. Amikor a számlázási rendszer gyakorlatilag összeomlott, a vállalat több tízmillió dollárt veszített, részvényei részvényenként 68 dollárról 26 dollárra estek egy nap alatt, 3,4 milliárd dollár vállalati értéket törölve el. A részvényesek pert indítottak, és több kormányzati ügynökség is kivizsgálta a társaságot, amelyet végül 3 millió dolláros bírsággal sújtottak a szabályozási jogsértések miatt.
még azok a szervezetek is, amelyek a rossz szoftveres tapasztalatok miatt megégnek, úgy tűnik, hogy képtelenek vagy nem akarnak tanulni a hibáikból. Egy 2000-es jelentésben az Egyesült Államok Védelmi tudományos testülete, a Védelmi Minisztérium tanácsadó testülete megjegyezte, hogy a DOD által megrendelt különféle tanulmányok 134 ajánlást tettek a szoftverfejlesztés javítására, de ezek közül az ajánlások közül csak 21-et hajtottak végre. A többi 113 továbbra is érvényes volt, a testület megjegyezte, de figyelmen kívül hagyták őket, még akkor is, amikor a DOD panaszkodott a védelmi szoftverfejlesztés rossz állapotára!
egyes szervezetek törődnek a szoftver minőségével, amint azt az angliai Bath-ban található Praxis High Integrity Systems szoftverfejlesztő cég tapasztalata bizonyítja. A Praxis megköveteli, hogy ügyfelei elkötelezettek legyenek a projekt iránt, nemcsak pénzügyileg, hanem az informatikai rendszer létrehozásának aktív résztvevőiként is. A vállalat rengeteg időt tölt az ügyfelek igényeinek megértésével és meghatározásával, és arra kéri az ügyfeleket, hogy magyarázzák el, mit akarnak és miért. Mielőtt egy sor kódot írnánk, mind az ügyfél, mind a Praxis egyetért abban, hogy mi a kívánt, mi megvalósítható, és milyen kockázatokkal jár, figyelembe véve a rendelkezésre álló erőforrásokat.
ezt követően a Praxis szigorú fejlesztési megközelítést alkalmaz, amely korlátozza a hibák számát. Ennek a modellnek az egyik nagy előnye, hogy kiszűri a sok leendő ügyfelet, akik nem hajlandók vállalni az informatikai igényeik megfogalmazásának felelősségét, és időt és pénzt költenek azok megfelelő végrehajtására.
valamilyen szintű szoftverhiba mindig velünk lesz. Valóban, valódi kudarcokra van szükségünk-szemben az elkerülhető baklövésekkel-ahhoz, hogy továbbra is technikai és gazdasági fejlődést érjünk el. De a ma előforduló kudarcok közül túl sok elkerülhető. És ahogy társadalmunk egyre nagyobb, integráltabb és drágább informatikai rendszerekre támaszkodik, a kudarc költségei katasztrofálisan magasak lehetnek.
még most is lehet fogadni arra, hogy hol fog bekövetkezni a következő nagy szoftverhiba. Az egyik vezető jelöltem az informatikai rendszerek, amelyek az Egyesült Államok kormányának Amerikai Egészségügyi Információs közösségéből származnak, egy köz-magán együttműködés, amely az elektronikus orvosi nyilvántartások adatszabványainak meghatározására törekszik. Az ötlet az, hogy a szabványok meghatározása után informatikai rendszereket építenek ki, amelyek lehetővé teszik az egészségügyi szakemberek számára, hogy az ország egész területén digitálisan beírják a betegnyilvántartásokat, így az orvosok, kórházak, biztosítók és más egészségügyi szakemberek azonnali hozzáférést biztosítanak a beteg teljes kórtörténetéhez. Az egészségügyi szakemberek úgy vélik, hogy egy ilyen rendszer javítja a betegellátást, évente becslések szerint 78 milliárd dollárral csökkenti a költségeket, és csökkenti az orvosi hibákat, több tízezer életet mentve meg.
de ez a megközelítés csak vágyálom, ha a szoftveres gyakorlatok és a hibaszázalékok megmaradnak a mai szinten. Még a legoptimistább becslések szerint is egy elektronikus egészségügyi nyilvántartási rendszer létrehozásához 10 év erőfeszítésre, 320 milliárd dolláros fejlesztési költségre és évi 20 milliárd dolláros működési költségre lesz szükség—feltételezve, hogy nincsenek hibák, túllépések, ütemterv-csúszások, biztonsági problémák vagy silány szoftverek. Ez aligha reális forgatókönyv, különösen azért, mert a legtöbb informatikai szakértő úgy véli, hogy az orvosi közösség az összes szakmai vállalkozás legkevésbé számítógépes hozzáértése.
végül a betegek és az adófizetők fogják megfizetni az ilyen boondoggles fejlesztésének vagy kudarcának az árát. A mai informatikai gyakorlat alapján a kudarc egyértelmű lehetőség, és soha nem látott mértékű veszteség lenne. De aztán a világ országai sok hasonló méretű és hatású kezdeményezést fontolgatnak, vagy már dolgoznak rajta-többek között a repülés, a Nemzetbiztonság és a katonaság területén.
mint a villamos energia, a víz, a közlekedés és az infrastruktúra más kritikus részei, ez is gyorsan a mindennapi létünk szerves részévé válik. Néhány évtized alatt a nagyszabású informatikai kudarc több lesz, mint egy drága kellemetlenség: veszélybe sodorja az életmódunkat. Olyan iparági változások hiányában, amelyek enyhítik a szoftverhibákat, a jövőnk mekkora részét vagyunk hajlandóak kockáztatni ezekre a rendkívül költséges és összetett rendszerekre?
már tudjuk, hogyan kell jól csinálni a szoftvert. Talán itt az ideje, hogy cselekedjünk azon, amit tudunk.