10.4

Tazama kwa Kiingereza

10.4 Kudumisha mifumo mikubwa na ya muda mrefu

Muhtasari na msukumo

Maandishi mengi kuhusu uhandisi wa programu yanahusu kujenga vitu vipya. Lakini programu nyingi muhimu za dunia ni za zamani, kubwa, na bado zinaendesha: mifumo ya kodi, malipo ya mafao, udhibiti wa trafiki ya anga, benki kuu, udhibiti wa viwanda, na miundombinu ya maisha ya kila siku. Mifumo hii kwa kawaida huendesha kwa miaka kumi, ishirini, au thelathini. Hiyo ni muda mrefu zaidi sana kuliko muda wa kazi wa yeyote aliyeijenga, na mara nyingi mrefu kuliko makampuni na lugha zilizoizalisha. Kudumisha mifumo kama hiyo kunamaanisha kuiweka ikitegemewa, salama, ikieleweka, na yenye uwezo wa kubadilika, kuvuka miongo na vizazi vya wafanyakazi. Ni mojawapo ya nidhamu ngumu zaidi na zisizo na mng’ao katika fani, na ambapo biashara kubwa na serikali hubeba mzigo mzito zaidi.

Kwa nini hili ni muhimu zaidi kwa mashirika makubwa? Mwendelezo wa wajibu. Kampuni changa inaweza kuandika upya au kuacha programu yake. Serikali ya taifa haiwezi kuacha kulipa pensheni wakati inarekebisha msimbo. Biashara kubwa na wakala humiliki mifumo ambayo kushindwa kwake kuna matokeo yanayopimwa kwa riziki, usalama, au uaminifu wa umma. Na humiliki mingi wakati mmoja, ikiwa na wafanyakazi wanaojiunga na kuondoka kwa miongo. Vitisho vikuu si vya ajabu. Ni mmomonyoko wa polepole wa watu wanaoielewa mfumo (hatari ya basi, watu wachache kiasi gani wangelazimika kuondoka kabla maarifa ya mfumo hayajapotea), kurundikana kwa maarifa yasiyoandikwa kwenye vichwa vichache, kuoza kwa mrundikano wa teknolojia kuelekea mwisho wa maisha, na kupooza kunakoingia mfumo unapokuwa muhimu mno kuguswa na kueleweka vibaya mno kubadilishwa kwa usalama.

Sura hii inahusu uangalizi: kazi ya makusudi, isiyo na mng’ao ya kusaidia mfumo kuwazidi waandishi wake kwa neema. Inafunika mwendelezo wa umiliki na kupunguza hatari ya basi, kustaafisha kwa mpango na kumaliza matumizi, uhamishaji wa maarifa, changamoto maalumu za mifumo ya miongo, na kitendo cha kudumu cha kusawazisha kati ya kubuni na kuhifadhi utulivu ambao raia na wateja wanautegemea.

Kanuni kuu

  • Kila mfumo muhimu unahitaji mmiliki, daima. Umiliki ni ugawaji endelevu, si kumbukumbu ya nani aliyeandika.
  • Maarifa yanayoishi kichwani mwa mtu mmoja ni hatari, si mali. Fanya uelewa uwe wa taasisi kabla mtu hajaondoka.
  • Kuchosha ni kipengele. Kwa mifumo muhimu ya muda mrefu, utulivu na kutabirika mara nyingi hushinda uvumbuzi.
  • Panga mwisho mwanzoni. Kila mfumo utastaafishwa au kubadilishwa; buni na uandike kwa siku hiyo.
  • Mabadiliko ndiyo jinsi unavyobaki salama. Mfumo wa kutisha mno kuuguswa tayari unashindwa; uwezo wa kubadilika ni sifa ya kuishi.
  • Mwendelezo unaishi kuliko watu mmoja mmoja. Buni timu, nyaraka, na michakato ili hakuna kuondoka kwa mtu mmoja kuwa mgogoro.
  • Uaminifu ndio bidhaa halisi. Kwa mifumo inayowakabili raia na wateja, kutegemewa na haki vinavyodumishwa kwa muda ndio dhamira.

Mapendekezo

Weka uangalizi na mwendelezo wa umiliki

Gawa umiliki wazi, wa sasa kwa kila mfumo unaojali. Miliki katika ngazi ya timu, si ya mtu mmoja, ili umiliki unusurike kuondoka. Dumisha katalogi ya huduma inayorekodi, kwa kila mfumo, nani anaumiliki, unafanya nini, unategemea nini, na ni muhimu kiasi gani. Pitia umiliki mara kwa mara, na usiruhusu kamwe mfumo uwe yatima. Mfumo muhimu usio na mmiliki ni dharura inayosubiri kutokea. Timu zinapopangwa upya, hamisha umiliki kwa makusudi, kwa makabidhiano, si kwa dhana. Kwa mifumo muhimu zaidi ya muda mrefu, hakikisha umiliki unajumuisha si uendeshaji tu bali uwezo wa kuelewa na kubadilisha mfumo, ili uangalizi usioze kuwa kulea tu.

Punguza hatari ya basi na ya mtu muhimu

Pima na upunguze mkusanyiko wa maarifa kikamilifu. Ikiwa mtu mmoja tu anaweza kusambaza, kutatua, au kubadilisha mfumo, hiyo ni pointi pekee ya kushindwa halisi kama kifaa chochote. Ipunguze kupitia kufanya kazi wawili wawili na kuzunguka, mapitio ya msimbo ya lazima, simu ya dharura ya pamoja, na kanuni ya makusudi kwamba hakuna kazi muhimu yenye mtu mmoja tu mwenye uwezo. Fundisha mtambuka ili angalau watu wawili (ikiwezekana watatu) waweze kufanya kila kazi muhimu. Chukulia kuondoka kwa mtu muhimu kama tukio linalotabirika unalojiandaa kwalo mfululizo, si mshtuko unaoufyonza. Nyaraka zinasaidia. Lakini maarifa ya kufanya kazi yaliyoenea kwenye timu kupitia mazoea halisi ni ya kudumu zaidi sana kuliko nyaraka ambazo hakuna aliyezitumia.

Fanya uhamishaji wa maarifa kuwa wa taasisi

Nasa maarifa ambayo vinginevyo yangeondoka na watu. Lenga kwanza maarifa magumu kujenga upya: kwa nini maamuzi yalifanywa, ni njia mbadala zipi zilikataliwa na kwa nini, mahali ambapo kuna ukingo mkali na mbinu muhimu ambazo sehemu nyingine ya mfumo inazitegemea kimyakimya, na jinsi mfumo unavyofanya chini ya mkazo. Tumia rekodi za maamuzi ya usanifu kuhifadhi sababu nyuma ya chaguo, si chaguo tu. Weka vitabu vya mwongozo na nyaraka za uendeshaji karibu na mfumo, na uvitumie mara kwa mara ili vibaki vya kweli. Jenga njia za kuanza zinazowafikisha walezi wapya kwenye uwezo halisi. Chukulia kuondoka kama matukio ya uhamishaji wa maarifa yenye muda halisi wa makabidhiano. Kumbuka kwamba maarifa yasiyo wazi, hisia kwa mfumo, huhamishwa hasa kwa kufanya pamoja na mtu mwenye maarifa hayo, kwa hiyo wafanye walezi wanaoondoka na wanaowasili wapishane inapowezekana.

Simamia kustaafisha, kumaliza matumizi, na mwisho wa maisha

Panga miisho kwa makusudi. Mnapoamua kustaafisha au kubadilisha mfumo, chukulia kumaliza matumizi kama mradi wenyewe: tambua kila mtumiaji na utegemezi, toa njia ya uhamishaji na ratiba halisi, wasiliana wazi na mara kwa mara, na usaidie watumiaji kupitia mpito. Epuka mtego wa kuendesha mifumo ya zamani na mipya sambamba milele kwa sababu hakuna atakayefanya kazi ngumu ya kuzima ya zamani. Gawa uwajibikaji wazi wa kukamilisha kuondoa. Hifadhi data, rekodi, na uwezo wa kujibu maswali kuhusu mfumo uliostaafishwa muda mrefu baada ya kuacha kuendesha, hasa pale kanuni za kisheria za uhifadhi zinapotumika. Kumaliza matumizi vibaya huacha mifumo ya zombie isiyodumishwa lakini bado inategemewa: mbaya kuliko yote.

Dumisha mifumo kuvuka miongo

Kwa mifumo inayopaswa kuendesha miaka ishirini au thelathini, panga kuzidi kila kitu: timu ya awali, wauzaji, mfumo wa ikolojia wa lugha, na vifaa. Pendelea viwango wazi na violesura vilivyoandikwa kuliko masanduku meusi ya umiliki, ili wadumishaji wa baadaye wapate nafasi. Gawanya kwa moduli, ili sehemu zibadilishwe moja kwa moja badala ya kuandika upya kwa yote-au-hakuna ambako ni hatari mno kujaribu. Weka mfumo ukidumishwa mfululizo. Mfumo unaowekwa wa kisasa kwa hatua ndogo unabaki endelevu. Mfumo uliogandishwa “kwa sababu unafanya kazi” unakuwa kimyakimya usiodumishika mrundikano wake unapopitwa na msaada. Weka ujuzi wa kuuendesha pia: kwa teknolojia ya zamani kweli, fundisha warithi kwa makusudi badala ya kutumaini mtaalamu wa mwisho hatastaafu.

Sawazisha ubunifu na utulivu na uaminifu

Tofautisha sehemu za eneo lenu ambapo uvumbuzi huunda thamani na sehemu ambapo utulivu ndiyo thamani. Mifumo mikuu ambayo raia na wateja wanaitegemea kila siku kwa kawaida inazawadia kutegemewa, kuoana nyuma, na mabadiliko ya tahadhari kuliko kuandika upya kwa kusisimua. Wekeza ubunifu pembezoni (njia mpya, vipengele vipya, violesura vipya) huku mkiweka kiini cha kudumu kikiwa thabiti na kinachoeleweka vizuri. Badilisha kiini, ndiyo, lakini kwa nyongeza ndogo, zinazoweza kutenduliwa, zilizojaribiwa vizuri badala ya miruko ya kishujaa. Lengo ni mfumo unaotegemewa na unaoweza kubadilika: kamwe haujagandishwa mno hivi kwamba unaoza, kamwe haubadilishwi mno hivi kwamba hautegemewi.

Mabadilishano: faida na hasara

MbinuFaidaHasara
Weka na dumisha mfumo wa zamaniHuhifadhi maarifa ya taasisi; usumbufu mdogo; kutegemewa kulikothibitishwaMrundikano unaozeeka; ujuzi adimu; hatari inayoongezeka bila matengenezo
Kuandika upya kwa mlipuko mmojaMrundikano mpya; huondoa takataka zilizokusanyikaKiwango cha juu sana cha kushindwa; hupoteza maarifa ya kesi za pembeni yaliyopatikana kwa shida
Usasishaji wa nyongezaKupunguza hatari mfululizo; unaendelea kuendeshaPolepole; unahitaji ufadhili na nidhamu endelevu
Uhamishaji unaotegemea nyarakaRekodi wazi inayotafutikaHuoza isipodumishwa; hukosa maarifa yasiyo wazi
Uhamishaji unaotegemea watu (kufanya wawili wawili/kuzunguka)Maarifa ya kufanya kazi ya kudumu; timu zenye ustahimilivuHugharimu tija ya sasa; inahitaji ratiba ya makusudi
Gandisha kiini muhimuUtulivu wa juu kabisa wa muda mfupiMrundikano unazeeka hadi kutodumishika; unakuwa wa kutisha mno kuguswa

Mabadilishano yanayofafanua ni utulivu dhidi ya mageuzi, na suluhisho zote mbili za kijinga zinashindwa. Gandisha mfumo muhimu kuulinda, na mnahakikisha hatimaye unakuwa usiodumishika na si salama. Uandike upya kwa ujumla kusasisha, na mnaalika kiwango cha juu cha kushindwa ambacho uingizwaji wa mlipuko mmoja unajulikana nacho, na mnatupa miongo ya maarifa ya kesi za pembeni yaliyosimbwa ambayo hakuna anayekumbuka yapo. Njia ya kudumu ni mabadiliko endelevu, ya nyongeza: weka mfumo hai na ukisonga kwa hatua ndogo, ili usipitwe na msaada kamwe na usihitaji mruko wa kutisha. Uhamishaji wa maarifa ni mabadilishano kama hayo, kati ya urahisi wa nyaraka na uimara wa uzoefu ulioishi. Jibu ni vyote viwili: maarifa yaliyoishi, yanayoshikiliwa na timu kama uti wa mgongo, na nyaraka kama marejeo.

Maswali ya kujadili na timu yako

  1. Mifumo yenu muhimu ipi haina mmiliki wa timu aliyetajwa, wa sasa, hivi sasa? Umiliki ni ugawaji endelevu, si kumbukumbu ya nani aliyeandika msimbo, na mfumo muhimu usio na mmiliki ni dharura inayosubiri kutokea, inayogunduliwa tu unapovunjika. Pitia katalogi yenu ya huduma (au ijenge) na uhakikishe kila mfumo unarekodi nani anaumiliki, unategemea nini, na ni muhimu kiasi gani. Leta ushahidi: chagua mifumo mitatu muhimu na ujaribu kutaja timu inayowajibika na mara ya mwisho umiliki ulipopitiwa. Pale mfumo ni yatima, au upangaji upya ukiuondoa kimyakimya, gawa umiliki kwa makusudi kwa makabidhiano halisi badala ya dhana. Hakikisha umiliki unajumuisha uwezo wa kuelewa na kubadilisha mfumo, ili uangalizi usioze kuwa kulea tu.

  2. Mnapobadilisha mfumo, nani anawajibika kuzima wa zamani kweli? Uendeshaji sambamba wa milele ni kushindwa kwa kawaida na ghali: mifumo ya zamani na mipya inaendesha pamoja bila mwisho kwa sababu hakuna anayemiliki kuzima, ikiwaacha mkidumisha mifumo miwili na kupata usalama wa hakuna. Chukulia kila kumaliza matumizi kama mradi unaosimamiwa wenye uwajibikaji uliotajwa wa kukamilisha kuondoa, orodha iliyochorwa ya watumiaji, njia ya uhamishaji, na ratiba halisi. Leta ushahidi: mioendesho ya “muda” sambamba ngapi au mifumo iliyostaafishwa nusu bado inavuta matengenezo kwenye eneo lenu leo? Hifadhi data na rekodi kutimiza kanuni za kisheria za uhifadhi muda mrefu baada ya mfumo kuacha kuendesha, lakini usiruhusu uhifadhi uwe kisingizio cha kutomaliza kamwe. Kumaliza matumizi vibaya huacha mifumo ya zombie isiyodumishwa lakini bado inategemewa, mbaya kuliko yote.

  3. Ujuzi gani kwa mifumo yenu ya muda mrefu soko la ajira litaacha kutoa, na mpango wenu wa urithi ni upi? Mifumo inayoendesha miaka ishirini au thelathini huzidi mifumo ya ikolojia ya lugha zake, wauzaji wake, na taaluma za watu wanaoelewa mrundikano wa zamani, na soko halitakupa warithi kwa kutegemewa. Punguza hatari ya basi kwa makusudi ili hakuna kazi muhimu yenye mtu mmoja tu mwenye uwezo, na fundisha mtambuka ili angalau watu wawili, ikiwezekana watatu, waweze kufanya kila kazi muhimu. Leta ushahidi: kwa kila mfumo muhimu unaozeeka, hesabu watu wangapi wanaweza kuubadilisha kwa usalama na wenye maarifa zaidi wako karibu kiasi gani na kustaafu. Jibu linapaswa kuendesha mafunzo ya makusudi ya warithi na mwingiliano halisi kati ya walezi wanaoondoka na wanaowasili, kwa sababu maarifa yasiyo wazi (hisia kwa mfumo) huhamishwa hasa kwa kufanya pamoja na mtu mwenye maarifa hayo. Nyaraka ni marejeo; maarifa yaliyoishi, yanayoshikiliwa na timu ni uti wa mgongo.

  4. Lini mlibadilisha mfumo wenu muhimu zaidi wa muda mrefu mwisho, na je, yeyote bado anathubutu? Mfumo ambao hakuna aliyeugusa kwa mwaka si thabiti, unaelekea kwenye mtego wa “wa kutisha mno kuguswa,” ambapo kila mabadiliko yanaogopwa kwa hiyo mrundikano unazeeka kimyakimya hadi kupitwa na msaada. Kwa shirika kubwa hili ni muhimu kwa sababu kupooza kunajilimbikiza: kadiri ugandishaji unavyodumu, ndivyo maarifa yanavyofifia na ndivyo mabadiliko yasiyoepukika ya mwisho yanavyokuwa hatari zaidi. Leta ushahidi: kwa kila mfumo muhimu, tarehe ya mabadiliko ya makusudi ya mwisho, ukubwa wa badiliko dogo zaidi ambalo yeyote angejaribu leo, na kama utegemezi wa kawaida au kiraka cha usalama kingeweza kusafirishwa wiki hii bila ushujaa. Mazingatio yanayoshindana ni halisi, kwa sababu mabadiliko pia huleta hatari, kwa hiyo lengo si mabadiliko ya mara kwa mara bali mdundo thabiti wa hatua ndogo, zinazoweza kutenduliwa, zilizojaribiwa vizuri. Katika maeneo ya mashirika makubwa na serikali, ambapo kiini kilichogandishwa kinaweza kukaa chini ya huduma ya raia kwa muongo, chukulia “hatulibadilishi kamwe” kama bendera nyekundu badala ya faraja, na fadhili matengenezo endelevu yanayoweka chaguo la kubadilisha hai.

  5. Sehemu gani ya eneo lenu inaendesha kwenye teknolojia iliyo kwenye au karibu na mwisho wa maisha, na nani anafuatilia saa hiyo? Muda wa kuendesha unaozeeka, hifadhidata zisizoungwa mkono, na mifumo ya kazi isiyodumishwa ni njia ya polepole ya kushindwa inayogeuka mgogoro wa ghafla siku kiraka cha usalama kinapoacha kufika. Kwa timu kubwa hatari ni kwamba hakuna anayemiliki upeo: timu mmoja mmoja hupachika kinachovunjika, lakini hakuna anayedumisha mtazamo wa jalada wa mirundikano ipi inapoteza msaada wa muuzaji na lini. Leta ushahidi: orodha ya teknolojia kuu za kila mfumo muhimu, tarehe zao zilizochapishwa za mwisho wa maisha au mwisho wa msaada, na pengo la sasa kati ya mnachoendesha na kile kinachoungwa mkono bado. Mvutano ni kati ya gharama ya kuboresha mfululizo na hatari ya kuahirisha, na kuahirisha kwa kawaida hushinda hadi kunaposhindwa kwa maafa. Katika mazingira ya mashirika makubwa na serikali, ambapo mizunguko ya ununuzi na idhini inaweza kuchukua mwaka au zaidi, tarehe ya mwisho wa maisha inayoonekana ya mbali mara nyingi tayari iko ndani ya muda wenu wa kuongoza, kwa hiyo kazi ya urithi na uboreshaji lazima ianze mapema kabla saa haijaisha.

  6. Wapi katika eneo lenu utulivu ndiyo thamani na uvumbuzi ni dhima, na mnaiwekaje mpaka huo kuwa wa uaminifu? Si kila mfumo unazawadiwa matibabu yaleyale: mifumo mikuu ambayo raia na wateja wanaitegemea kila siku kwa kawaida inazawadia kutegemewa na mabadiliko ya tahadhari, wakati pembezoni zinazawadia majaribio, na kuchanganya viwili hupoteza fedha au kualika kukatika. Kwa shirika kubwa hatari ni kwamba tamaa na motisha za kazi husukuma kuandika upya kwa kusisimua kwenye kiini cha kudumu ambacho kingebaki cha kuchosha. Leta ushahidi: ramani ya eneo lenu inayoonyesha mahali kutegemewa ndiyo dhamira na mahali uvumbuzi unaunda thamani, pamoja na mabadiliko ya hivi karibuni yaliyovuka mstari huo pande zote mbili na yaligharimu nini. Mazingatio yanayoshindana ni kwamba hata kiini thabiti lazima bado kibadilike, kwa hiyo “thabiti” haiwezi kuwa kisingizio cha kugandisha. Katika mazingira ya mashirika makubwa na serikali, funga mpaka huu na madaraja wazi ya umuhimu na mamlaka iliyotajwa inayoweza kupinga uandishi upya hatari wa mfumo ambao umma hauwezi kumudu kuuona ukishindwa, ili hukumu isihame na yeyote mwenye sauti kubwa robo hii.

Mtazamo wa sekta

Kampuni changa. Ukiwa na wahandisi wachache na njia fupi ya kukimbia, hatari yako ya uangalizi imekusanyika kwa mtu mmoja au wawili walioandika mifumo usiyoweza kumudu kupoteza, kama utozaji au uthibitishaji. Tumia karibu hakuna kwenye mchakato, lakini fanya mambo ya bei nafuu, yenye thamani kubwa sasa: mpe mtu wa pili njia kupitia kila mfumo muhimu, andika rekodi ya uamuzi wa usanifu ya ukurasa mmoja kwa sehemu za kushangaza, na uweke kitabu cha mwongozo unachotumia kweli. Pinga hamu ya kuandika upya kitu kwa sababu tu ni cha zamani, kwa sababu kwa ukubwa wako uandishi upya ulioshindwa wa mfumo mkuu unaweza kumaliza kampuni.

Biashara ndogo. Huna timu ya matengenezo maalumu na bajeti ni finyu, kwa hiyo pendelea kununua na kupangisha kuliko kujenga chochote ambacho ungelazimika kukidumisha mwenyewe. Pendelea wauzaji na viwango wazi vinavyokuruhusu kuondoka, na uweke rekodi rahisi ya mfumo gani wa nje unaendesha kazi gani muhimu na nani wa kumpigia unapovunjika. Pale unapomiliki msimbo maalumu, hakikisha angalau watu wawili (au mkandarasi anayeaminika pamoja na mwajiriwa mmoja) wanauelewa, ili kuondoka kwa mtu mmoja au mkataba wa msaada uliopitwa usikuache ukiwa umekwama.

Biashara kubwa. Changamoto yako ni ukubwa wa jalada: mifumo mingi ya muda mrefu, timu nyingi, na wafanyakazi wanaozunguka kwa miongo. Sawazisha umiliki wa ngazi ya timu katika katalogi ya huduma, pima hatari ya basi kuvuka eneo, na ufadhili usasishaji wa nyongeza endelevu badala ya kuweka dau kwenye uandishi upya wa mlipuko mmoja. Tawala upeo wa mwisho wa maisha kati ili hakuna mrundikano muhimu unaopitwa na msaada kimyakimya, na uendeshe kila kumaliza matumizi kama mradi uliokaguliwa wenye uwajibikaji uliotajwa wa kukamilisha kuondoa.

Serikali. Mwendelezo wa wajibu ni kamili: huwezi kuacha kulipa mafao au kuendesha udhibiti wa trafiki ya anga wakati unarekebisha, na kushindwa ni kwa umma na kwa matokeo. Kanuni za ununuzi zinakusukuma kuelekea viwango wazi, uhamishikaji wa data, na violesura vilivyoandikwa ili wadumishaji wa baadaye na wauzaji wa baadaye wapate nafasi. Fadhili mafunzo ya makusudi ya urithi kwa teknolojia za zamani ambazo soko la ajira halizitoi tena, hifadhi rekodi za mifumo iliyostaafishwa kutimiza uhifadhi wa kisheria, na uchukulie kutegemewa endelevu kwa huduma za raia kama dhamira inayowajibikiwa badala ya gharama ya ziada.

Mifano

Kampuni changa. Kampuni changa ya watu watano tayari ina mfumo ambao hauwezi kumudu kuupoteza: huduma ya utozaji ambayo mwanzilishi mmoja aliandika mwezi wa kwanza na sasa inaendesha kila malipo ya mteja. Ni mwanzilishi huyo tu anayeielewa, kwa hiyo timu inachukulia hatari ya basi kama hatari halisi badala ya pongezi. Wanampa mhandisi wa pili njia kupitia mzunguko mzima wa utozaji, wanaandika rekodi fupi ya uamuzi wa usanifu inayoeleza kwa nini mantiki ya ajabu ya kujaribu tena ipo, na kuweka kitabu cha mwongozo kando ya msimbo wanachokitumia kweli wakati wa tukio. Wanapinga kuuandika upya kwa sababu tu ni wa zamani na usio na mng’ao, na badala yake wanauboresha kwa hatua ndogo zinazoweza kutenduliwa, ili huduma inayoweka kampuni hai ieleweke na zaidi ya kichwa kimoja.

Biashara kubwa. Kampuni kubwa ya bima inaendesha mfumo wa usimamizi wa sera ulioandikwa kwanza miongo iliyopita na bado ni kiini cha biashara yake. Badala ya kujaribu uandishi upya hatari wa jumla, iliugawanya mfumo kwa moduli nyuma ya violesura vilivyofafanuliwa vizuri na sasa inabadilisha kijenzi kimoja kwa wakati, kila badiliko dogo na linaloweza kutenduliwa. Kila kazi muhimu ina angalau watu watatu wanaoweza kuifanya. Simu ya dharura inashirikiwa. Rekodi za maamuzi ya usanifu zinanasa kwa nini mfumo unafanya kazi kama unavyofanya. Kozi ya ndani iliyochaguliwa inawafikisha wahandisi wapya kwenye uwezo kwenye mrundikano wa urithi, na wataalamu wanaoondoka wanapishana na warithi ili maarifa yasiyo wazi yahamie kwa kufanya.

Serikali. Wakala wa kitaifa wa hifadhi ya jamii unaendesha mifumo ya malipo ya mafao iliyoendesha kwa zaidi ya miaka thelathini na isiyoweza kusimama. Unarekodi umiliki wazi wa timu katika katalogi ya huduma. Unafadhili matengenezo endelevu badala ya kugandisha mifumo. Unafundisha warithi kwa teknolojia za zamani kwa makusudi, kwa sababu soko la ajira halitazitoa. Unapostaafisha mfumo mdogo uliopitwa, unaendesha kumaliza matumizi kama mradi unaosimamiwa: kuchora ramani ya kila mtumiaji, kutoa msaada wa uhamishaji, kuhifadhi rekodi kutimiza kanuni za kisheria za uhifadhi, na kugawa uwajibikaji wa kukamilisha kuondoa kweli, ili hakuna mfumo wa zombie unaobaki.

Kesi ya biashara: sababu, ROI, na TCO

Faida ya kudumisha mifumo ya muda mrefu inatokana na kuepuka njia mbili za maafa za kushindwa zinazotawala jumla ya gharama yao ya umiliki. Ya kwanza ni mgogoro wa ghafla: mtu muhimu anaondoka, kijenzi kisichoungwa mkono kinavunjwa, au mfumo yatima unashindwa bila mtu anayeuelewa. Ya pili ni mradi mkuu ulioshindwa: uandishi upya wa haraka wa jumla unaozidi bajeti, unaotoa pungufu, au unaoporomoka. Yote mawili ni ghali sana, na yote mawili yanazuilika kwa kiasi kikubwa kwa uangalizi thabiti. Gharama ya kushindwa mara moja kwa uandishi upya kulikoepukwa, au kukatika kwa muda mrefu kulikoepukwa kwa huduma muhimu ya raia, kwa kawaida inazidi miaka ya uwekezaji wa matengenezo endelevu.

Gharama ya kupokea ni endelevu na isiyo na mng’ao: kufadhili matengenezo yasiyozaa vipengele vipya, kulipia muda wa mafunzo mtambuka na nyaraka unaopunguza pato la muda mfupi, na kuwekeza kwenye usasishaji wa nyongeza ambao haufikii vichwa vya habari kamwe. Gharama ya kutopokea imeahirishwa na kubwa zaidi: hatari inayoongezeka mrundikano unapozeeka, mfiduo wa mtu muhimu unaovimba, na hatimaye uingizwaji wa kulazimishwa, wa hatari kubwa, wa gharama kubwa chini ya hali za dharura. Mnapotoa hoja kwa uongozi, badilisha mtazamo wa matengenezo kutoka “kituo cha gharama” hadi “usimamizi wa hatari kwa mifumo ambayo shirika haliwezi kumudu kupoteza.” Wasilisha jumla ya gharama ya umiliki kuvuka maisha yote ya miongo mingi (ikijumuisha uangalizi na kuondoa mwishowe) badala ya ujenzi tu. Na sisitiza hili: kwa mifumo inayowakabili raia na wateja, kutegemewa endelevu si gharama ya ziada. Ni uaminifu ambao ndio bidhaa halisi.

Mifumo mibaya na mitego

  • Mdumishaji shujaa. Mtu mmoja asiyebadilishika anayeelewa mfumo; kuondoka kwake ni tukio la kuwepo.
  • Gandisha na usahau. Kutangaza mfumo muhimu “umekamilika,” kuacha matengenezo, na kutazama mrundikano wake ukizeeka hadi kutodumishika.
  • Uandishi upya uliolaaniwa. Kuweka dau shirika kwenye uingizwaji wa jumla unaotupa maarifa yaliyosimbwa na kwa kawaida kuzidi bajeti au kushindwa.
  • Mifumo yatima. Programu muhimu isiyo na mmiliki wa sasa, inayogunduliwa tu inapovunjika.
  • Maigizo ya nyaraka. Kiasi kikubwa cha nyaraka zilizopitwa na wakati, zisizotumika, na zisizoaminiwa na yeyote.
  • Uendeshaji sambamba wa milele. Mifumo ya zamani na mipya inayoendesha pamoja bila mwisho kwa sababu hakuna anayewajibika kwa kuzima.
  • Kupoteza maarifa yasiyo wazi. Kuwaacha wataalamu kuondoka bila kupishana, ili hisia kwa mfumo itoweke.
  • Wa kutisha mno kuguswa. Mfumo unaoeleweka vibaya mno hivi kwamba mabadiliko yoyote yanaogopwa, jambo linalohakikisha unaoza.

Kielelezo cha ukomavu

Ngazi ya 1: Kuanzisha. Uangalizi ni wa papo hapo na wa kuitikia. Mifumo inategemea mashujaa mmoja mmoja, umiliki unakumbukwa badala ya kugawiwa, na maarifa yanaishi bila kuandikwa kwenye vichwa vichache. Mifumo ya zamani inagandishwa hadi ivunjike, mirundikano inayozeeka inateleza kuelekea mwisho wa maisha bila kuonekana, na kustaafisha kunatangazwa lakini hakukamiliki kamwe.

Ngazi ya 2: Kuendeleza. Mazoea ya msingi yanaonekana lakini yanatofautiana timu kwa timu. Umiliki umeandikwa kwa mifumo mikuu dhahiri, baadhi ya vitabu vya mwongozo na nyaraka vipo, na kazi chache muhimu zina mtu wa pili mwenye uwezo. Matengenezo yanafadhiliwa lakini ya kuitikia, mafunzo mtambuka hutokea mtu anapokumbuka, na hakuna njia ya pamoja ya kufanya lolote kati ya haya kuvuka shirika.

Ngazi ya 3: Kusawazisha. Mazoea ya uangalizi yameandikwa na kutekelezwa kote shirikani. Umiliki wa ngazi ya timu umerekodiwa katika katalogi ya huduma na unanusurika upangaji upya. Kupunguza hatari ya basi kupitia kuzunguka na mafunzo mtambuka ni kanuni ya kudumu, rekodi za maamuzi ya usanifu na vitabu vya mwongozo vilivyotumiwa vinatarajiwa, usasishaji ni wa nyongeza kwa sera, na kila kumaliza matumizi kunaendeshwa kama mradi unaosimamiwa wenye uwajibikaji uliotajwa wa kukamilisha kuondoa.

Ngazi ya 4: Kusimamia. Uangalizi unapimwa na kudhibitiwa kwa data dhidi ya vipimo vya msingi. Mnafuatilia hatari ya basi kwa kila mfumo muhimu, idadi ya watu wanaoweza kuubadilisha kwa usalama, umri wa kila teknolojia kuu dhidi ya tarehe yake ya mwisho wa maisha, sehemu ya eneo lililo chini ya matengenezo endelevu dhidi ya yaliyoahirishwa, na idadi ya mioendesho sambamba iliyokwama na kuondoa kusiko kamilika. Vipimo hivi vinabeba vizingiti vinavyochochea hatua: mfumo unaoshuka chini ya kikomo cha hatari ya basi au kuvuka upeo wa mwisho wa msaada unapata urekebishaji uliofadhiliwa, na afya ya uangalizi inaripotiwa kwa uongozi kando ya utoaji.

Ngazi ya 5: Kuratibu. Uangalizi unaboreshwa mfululizo na kuunganishwa kuvuka shirika. Hakuna mfumo muhimu ni pointi pekee ya kushindwa ya kibinadamu, uhamishaji wa maarifa ikijumuisha maarifa yasiyo wazi kupitia kupishana ni jambo la kawaida, na mifumo inabadilika kwa hatua ndogo zinazoweza kutenduliwa ili hakuna inayopitwa na msaada. Umiliki, ufuatiliaji wa mwisho wa maisha, urithi, na upangaji wa kumaliza matumizi vimefumwa kwenye upangaji wa jalada na hatari, eneo linasawazishwa upya teknolojia na wajibu vinapohama, na mifumo ya miongo mingi inadumishwa huku uaminifu wa watu wanaoitegemea ukihifadhiwa.

Mawazo ya kujadili

  • Mnapimaje hatari ya basi kwa maana, na lengo gani ni sahihi kwa viwango tofauti vya umuhimu?
  • Usasishaji wa nyongeza hauwezekani kweli lini, na kuufanya uandishi upya kuwa hatari ndogo zaidi?
  • Mnafadhili na kuzawadia kazi ya matengenezo vipi ili uangalizi uwe njia ya kazi inayoheshimika, si mwisho usio na njia?
  • Njia sahihi ya kuhifadhi maarifa yasiyo wazi mtaalamu wa mwisho anapokaribia kustaafu na hakuna kupishana kunakowezekana ni ipi?
  • Mnapaswa kubakiza uwezo wa kujibu maswali kuhusu mfumo uliostaafishwa kwa muda gani, na nani analipa hilo?
  • Wapi katika eneo lenu utulivu ndiyo thamani na uvumbuzi ni dhima, na mnaiwekaje hukumu hiyo kuwa ya uaminifu kwa muda?

Mambo muhimu ya kukumbuka

  • Programu nyingi muhimu ni za zamani na za muda mrefu; kuzidumisha kuvuka miongo na vizazi vya wafanyakazi ni nidhamu ya daraja la kwanza.
  • Kila mfumo muhimu unahitaji umiliki wa sasa, wa ngazi ya timu; mifumo muhimu yatima ni dharura zilizofichika.
  • Punguza hatari ya basi kwa makusudi (hakuna kazi muhimu inayopaswa kuwa na mtu mmoja tu mwenye uwezo) na uhamishe maarifa yasiyo wazi kupitia kupishana, si nyaraka tu.
  • Weka mifumo ya muda mrefu ikidumishwa mfululizo na kwa nyongeza; kuigandisha na kuweka dau kwenye uandishi upya wa jumla ni njia mbili za kushindwa.
  • Panga miisho kama miradi inayosimamiwa yenye ukamilishaji unaowajibikiwa, ukihifadhi data na rekodi kutimiza wajibu.
  • Kwa mifumo inayowakabili raia na wateja, kutegemewa endelevu na haki ndizo dhamira, na matengenezo ni usimamizi wa hatari kwa kile msichoweza kumudu kupoteza.

Marejeo na usomaji zaidi

  • Michael Feathers, Working Effectively with Legacy Code
  • Titus Winters, Tom Manshreck, and Hyrum Wright, Software Engineering at Google
  • Frederick P. Brooks Jr., The Mythical Man-Month
  • Nat Pryce and Steve Freeman, Growing Object-Oriented Software, Guided by Tests
  • Sam Newman, Monolith to Microservices
  • Martin Fowler, Refactoring and writings on the Strangler Fig pattern
  • Betsy Beyer et al., Site Reliability Engineering and The Site Reliability Workbook (Google)
  • Diomidis Spinellis, Code Reading: The Open Source Perspective
  • U.S. Government Accountability Office, reports on federal legacy IT modernization