3.6

Tazama kwa Kiingereza

3.6 Uboreshaji wa mifumo ya urithi

Muhtasari na msukumo

Mifumo ya urithi ndiyo mifumo inayoendesha dunia. Leja kuu za benki, injini za kodi na manufaa, mifumo ya usafiri wa anga na ulinzi, usimamizi wa sera za bima, na sajili za serikali ambazo jamii zinazitegemea mara nyingi ni za miongo. Nyingi zimeandikwa kwa COBOL (Common Business-Oriented Language) au teknolojia nyingine za zamani, na bado zinachakata miamala mingi muhimu. “Urithi” si tusi. Inamaanisha mfumo una thamani ya kutosha kunusurika, ni muhimu kiasi kwamba kushindwa kwake ni maafa, na wa zamani vya kutosha kwamba kuubadilisha kwa usalama ni vigumu. Uboreshaji wa mifumo ya urithi ni nidhamu ya kuboresha, kuhamisha, au kubadilisha mifumo hii bila kuvunja huduma muhimu inazotoa.

Hili kwa uwiano usio sawa ni tatizo la mashirika makubwa na serikali, na ndipo kushindwa kukubwa, kwa hadhi ya juu zaidi kwa TEHAMA hutokea. Sehemu kubwa ya miamala mikubwa ulimwenguni bado inagusa mifumo ya kompyuta kuu. Sehemu kubwa ya msimbo wa uzalishaji katika taasisi kubwa iko katika lugha za zamani zinazodumishwa na kundi linalozeeka, linalopungua la wataalamu. Serikali zinabeba mzigo mzito zaidi: wajibu wa kisheria uliowekwa kwenye misimbo kwa miongo, mizunguko ya ununuzi na bajeti inayodumu kuliko tawala, na huduma za raia ambazo haziwezi kukatizwa. Hatari kuu si kwamba mifumo hii ni ya zamani, kwa kuwa mingi inaendesha vizuri sana. Ni kwamba maarifa ya kuidumisha yanastaafu, majukwaa yanazidi kuwa ghali na yenye vikwazo, na kishawishi cha “tuiandike upya tu” kinaongoza kwa baadhi ya kushindwa kwa gharama kubwa zaidi katika historia ya uwanja huu.

Sura hii inashughulikia mifumo ya uboreshaji ya hatua kwa hatua inayofanya kazi kweli (mtini wa kunyonga na tawi-kwa-uondoaji-wa-maelezo), jinsi ya kutathmini na kuweka vipaumbele vya hatari ya urithi, uangalizi wa mali za kompyuta kuu na COBOL, nidhamu ya uhamishaji wa data na uendeshaji sambamba, na zaidi ya yote jinsi ya kupinga kishawishi cha uandishi upya mkubwa. Imani ya msingi ni kwamba uboreshaji uliofanikiwa karibu daima ni wa hatua kwa hatua, unaoendeshwa na ushahidi, na unaotoa thamani mfululizo. Kamwe si mlipuko mkubwa wa miaka mingi.

Kanuni kuu

  • Urithi unamaanisha wa thamani na wa msingi, si wa zamani tu. Heshimu kile mfumo unachofanya kabla ya kuugusa; unaweka kanuni za biashara zilizopatikana kwa shida za miongo.
  • Hatua kwa hatua hushinda mlipuko mkubwa, karibu daima. Badilisha kipande kwa kipande nyuma ya kiolesura thabiti; toa thamani mfululizo na uweke hatari ndogo.
  • Uandishi upya mkubwa ndiyo hali ya chaguo-msingi ya kushindwa. Uandishi upya kamili mara kwa mara huzidi bajeti, hutoa pungufu, na hughairiwa; chukulia hamu hiyo kwa mashaka makubwa.
  • Huwezi kuboresha usichokielewa. Fanya uhandisi kinyume na uandike tabia (ikijumuisha kanuni zisizoandikwa) kabla ya kuibadilisha.
  • Uhamishaji wa data ndipo miradi inapokufa. Data ni ya zamani zaidi, chafu zaidi, na iliyofungamana zaidi kuliko mtu yeyote anavyotarajia; ipange kama juhudi ya daraja la kwanza.
  • Endesha ya zamani na mpya sambamba kujenga imani. Uendeshaji sambamba na ulinganisho hunasa tofauti kabla ya kubadilisha.
  • Weka vipaumbele kwa hatari na thamani, si umri. Boresha kilicho hatari zaidi na chenye thamani zaidi kwanza, si kilicho cha zamani zaidi tu.
  • Weka taa zikiwaka huku unabadilisha injini. Huduma lazima iendelee kuendesha muda wote; hakuna kukatika kunakokubalika kwa mifumo muhimu ya raia au ya kifedha.

Mapendekezo

Boresha kwa hatua kwa hatua kwa muundo wa mtini wa kunyonga

Mtini wa kunyonga (uliopewa jina kutokana na mzabibu unaokua kuzunguka mti na kuubadilisha polepole) ndiyo zana kuu ya uboreshaji salama. Weka safu ya uelekezaji (lango la API, uso, au wakala) mbele ya mfumo wa urithi. Kisha, uwezo kwa uwezo, jenga mbadala katika mfumo wa kisasa na uelekeze kipande hicho cha trafiki kwake, ukiacha kilichobaki kwenye mfumo wa urithi. Kwa muda mfumo mpya unakua na wa zamani unapungua, hadi uweze kustaafishwa. Hii hutoa thamani mfululizo, huweka kila badiliko dogo na linalotenguka, huepuka kubadilisha kwa hatari, na hukuruhusu kusimama au kupanga upya vipaumbele wakati wowote. Ni kinyume cha mlipuko mkubwa. Mfumo wa urithi unaendelea kuendesha na kupata riziki yake huku unaubadilisha kuuzunguka.

Tumia tawi-kwa-uondoaji-wa-maelezo kwa viungo vya ndani

Pale unahitaji kubadilisha kijenzi ambacho sehemu nyingi za mfumo zinakitegemea, tumia tawi-kwa-uondoaji-wa-maelezo. Leta safu ya uondoaji wa maelezo (kiolesura) juu ya utekelezaji uliopo, hamisha wapigaji wategemee uondoaji huo, jenga utekelezaji mpya nyuma ya uondoaji uleule, badilisha (mara nyingi nyuma ya bendera ya kipengele, hatua kwa hatua), na hatimaye ondoa utekelezaji wa zamani. Hii inaruhusu kijenzi kikubwa kubadilishwa hatua kwa hatua kwenye mstari mkuu wa uendelezaji bila tawi la muda mrefu, kuweka mfumo ukiweza kutolewa muda wote. Huoana kwa asili na mtini wa kunyonga: uso hushughulikia viungo vya nje, tawi-kwa-uondoaji-wa-maelezo hushughulikia vya ndani.

Tathmini na uweke vipaumbele vya hatari ya urithi kwa makusudi

Kabla ya kuboresha, jenga orodha ya wazi na tathmini ya hatari ya eneo. Kwa kila mfumo, ukadirie kwa umuhimu wa biashara, hatari ya kiufundi (kupitwa na wakati, majukwaa yasiyosaidiwa, mfiduo wa usalama), marudio ya mabadiliko, na, muhimu, hatari ya maarifa (watu wangapi bado wanaweza kuudumisha, na wako karibu kiasi gani na kustaafu). Panga mifumo kwenye gridi ya hatari-dhidi-ya-thamani. Weka kipaumbele kuboresha kilicho na hatari kubwa na thamani kubwa. Fikiria kuacha mifumo thabiti, ya mabadiliko machache, inayoeleweka vizuri peke yake hata ikiwa ya zamani, kwa sababu mfumo unaofanya kazi ambao hakuna anayehitaji kuubadilisha si dharura. Tathmini hii hugeuza “kila kitu ni cha zamani na cha kutisha” kuwa ramani ya barabara inayoweza kutetewa, iliyopangwa kwa mfuatano.

Tunza mali za kompyuta kuu na COBOL, usibadilishe tu

Si kila mfumo wa kompyuta kuu au COBOL unapaswa, au unaweza kubadilishwa kwa usalama, hivi karibuni. Kipaumbele cha karibu mara nyingi ni uangalizi: nasa maarifa kabla hayajastaafu. Andika kanuni za biashara ambazo msimbo unaziweka (nyingi hazijaandikwa na haziwezi kubadilishwa), wekeza katika majaribio ya kiotomatiki yanayoweka tabia ya sasa ili mabadiliko ya baadaye yawe salama, ajiri na ufundishe wadumishaji kuvuka mifumo, na kuboresha mazoea ya utoaji yanayozunguka (udhibiti wa chanzo, ujumuishaji endelevu (CI), majaribio ya kiotomatiki) hata kiini kikibaki mahali pake. Pale unaboresha, pendelea kufichua uwezo wa urithi kupitia API za kisasa (ufungaji) kama hatua ya kwanza. Chukulia tafsiri ya kiotomatiki ya COBOL kwenda lugha ya kisasa kwa tahadhari, kwa sababu inazalisha msimbo unaoendesha lakini mara nyingi huzalisha kwa uaminifu mantiki isiyoeleweka. Rasilimali adimu zaidi ni uelewa, si kokotoo.

Chukulia uhamishaji wa data na uendeshaji sambamba kama kiini cha mradi

Sehemu ngumu zaidi na yenye hatari zaidi ya juhudi nyingi za uboreshaji ni data. Ni nyingi, ya ubora duni na usio thabiti, na imejaa maana zisizoandikwa zilizokusanyika kwa miongo. Ichunguze na uisafishe, oanisha miundo ya zamani na mipya waziwazi, na ujenge uhamishaji unaorudiwa, wa kiotomatiki wenye upatanisho kamili (hesabu, jumla za ukaguzi, jumla za biashara) ili uweze kuthibitisha hakuna kilichopotea au kubadilishwa. Punguza hatari ya kubadilisha kwa uendeshaji sambamba: endesha mifumo ya zamani na mpya kando kwa kando kwenye ingizo zilezile na ulinganishe pato hadi mfumo mpya ulingane na wa zamani kwa kizingiti chako cha imani. Ndipo tu ubadilishe, na uhifadhi uwezo wa kurudi nyuma. Kwa mifumo muhimu kweli, hamisha na ubadilishe kwa vipande badala ya yote kwa mara moja.

Simamia kishawishi cha uandishi upya mkubwa

Silika ya kutupa mfumo mchafu wa zamani na kujenga safi mpya kutoka mwanzo ina nguvu, na karibu daima ni sahihi vibaya kwa mifumo mikubwa, muhimu. Uandishi upya kamili hudharau thamani iliyofichika kwenye msimbo “mbaya” (kesi za pembeni, kanuni za udhibiti, tabia zinazooana na hitilafu ambazo watumiaji halisi wanazitegemea), huchukua muda mrefu zaidi ya ilivyotabiriwa, hautoi thamani hadi mwishoni, na mara nyingi hughairiwa baada ya matumizi makubwa. Chaguo-msingi ni uboreshaji wa hatua kwa hatua. Hifadhi uandishi upya kwa visa ambapo jukwaa halidumiki kweli na njia za hatua kwa hatua zimeisha. Hata hapo, gawanya uandishi upya kuwa vipande vinavyotolewa kwa kujitegemea kupitia muundo wa mtini wa kunyonga badala ya toleo moja la mlipuko mkubwa. Uongozi unaposukuma uandishi upya kamili, sisitiza swali: thamani gani inasafirishwa katika miezi mitatu ya kwanza, na nini kinatokea programu ikisimamishwa nusu njia?

Mabadilishano: faida na hasara

MbinuFaidaHasara
Mtini wa kunyonga (hatua kwa hatua)Thamani mfululizo, hatari ndogo, inatenguka, huweka huduma ikiendeshaRatiba ndefu zaidi kwa jumla, lazima kuendesha mifumo miwili sambamba, mzigo wa uunganishaji
Uandishi upya wa mlipuko mkubwaUkurasa safi, hakuna vikwazo vya urithi katika msimbo mpyaKiwango cha juu sana cha kushindwa, hakuna thamani hadi mwishoni, gharama kubwa, kanuni za biashara hupotea
Funga (zungusha kwa API)Haraka, hatari ndogo, huboresha ufikiaji bila kugusa kiiniKiini kinabaki urithi; huahirisha, hakitatui, hatari ya msingi
Acha kama ilivyo (tunza)Hakuna hatari ya mradi; nafuu zaidi kwa muda mfupiHatari ya maarifa na jukwaa inaendelea kukusanyika; hatua ya kulazimishwa hatimaye

Biashara ya msingi ni kasi ya mabadiliko dhidi ya hatari ya kushindwa, na uboreshaji wa urithi ndio kikoa ambapo biashara hiyo haina usawa zaidi. Uandishi upya wa mlipuko mkubwa “wa haraka, safi” ni ndoto ya jangwani inayozalisha mara kwa mara matokeo ya polepole na ghali zaidi ya yote: programu iliyoghairiwa na mfumo ambao bado haujaboreshwa. Njia za hatua kwa hatua huhisi polepole na zinahitaji kuendesha mifumo miwili sambamba, lakini hutoa thamani muda wote, huweka hatari ndogo na inayotenguka, na ndiyo njia inayotegemewa kwa uzoefu. Uamuzi wa busara wa kweli ni kati ya kutunza mfumo thabiti wa urithi kwa muda zaidi na kuanza kubadilisha hatua kwa hatua sasa. Acha mwelekeo wa hatari uendeshe uamuzi huo, hasa hatari ya maarifa, badala ya kutopenda teknolojia ya zamani.

Maswali ya kujadili na timu yako

  1. Je, mna mahali pa kuweka safu ya uelekezaji mbele ya mfumo wenu wa urithi, na kama sivyo, ingechukua nini kuunda? Mtini wa kunyonga unategemea kiungo: lango la API, uso, au wakala ambao kupitia huo unaweza kuelekeza uwezo mmoja kwa wakati kwenda utekelezaji mpya. Mifumo mingi ya zamani haina kiungo kama hicho, kwa hiyo ongezeko la kwanza la uboreshaji mara nyingi ni kujenga nukta ya kukatiza, na kazi hiyo ni rahisi kuidharau. Leta ramani ya sasa ya uunganishaji na uliza wapi trafiki ingeweza kukatizwa kwa kila uwezo bila kubadilisha kwa mlipuko mkubwa. Pale hakuna mahali, tawi-kwa-uondoaji-wa-maelezo kwenye kiungo cha ndani linaweza kuwa hatua ya kuanzia badala yake. Bila safu ya uelekezaji huna njia ya hatua kwa hatua, ndivyo hasa mashirika yanavyosukumwa kurudi kwenye uandishi upya unaoshindwa kwa kawaida.

  2. Mmeweka eneo lenu kwenye gridi ya hatari-dhidi-ya-thamani kweli, au ramani yenu ya barabara inaendeshwa na mfumo unaohisi wa zamani zaidi? Sura inasisitiza uboreshe kile chenye hatari kubwa na thamani kubwa kwanza, na uache kwa makusudi mifumo thabiti, ya mabadiliko machache, inayoeleweka vizuri peke yake hata ikiwa ya kale. Bila gridi wazi, umakini hutiririka kwenye malalamiko ya sauti kubwa zaidi au teknolojia isiyo ya mtindo, na mabomu halisi ya muda (mfumo muhimu wenye wadumishaji wawili karibu na kustaafu) yanasubiri. Kadiria kila mfumo kwa umuhimu wa biashara, hatari ya kiufundi, marudio ya mabadiliko, na hatari ya maarifa, kisha panga mfuatano kutoka kona ya juu-kulia. Leta gridi hiyo kwenye mkutano kama ramani ya pamoja. Hatari ya maarifa inastahili uzito mkubwa zaidi, kwa sababu ni ingizo moja linalozidi kuwa baya tu na haliwezi kununuliwa nyuma watu wanapoondoka.

  3. Mnapobadilisha, mtathibitishaje kwamba hakuna rekodi hata moja iliyopotea au kubadilishwa, na nani anaidhinisha ushahidi huo? Uhamishaji wa data ndipo miradi hii hufa, na imani hutokana na upatanisho: hesabu za safu, jumla za ukaguzi, na jumla za udhibiti wa biashara zinazolingana kati ya za zamani na mpya, pamoja na uendeshaji sambamba unaolinganisha pato kwenye ingizo zilezile hadi zikubaliane kwa kizingiti cha juu. Kwa mfumo wa manufaa au leja, tofauti ni raia aliyelipwa pungufu au senti iliyopotea, kwa hiyo ushahidi lazima umridhishe mkaguzi, si mhandisi tu. Amua sasa jumla zipi mtazipatanisha, kizingiti gani cha imani kinachochochea kubadilisha, na kwa muda gani mtaendesha ya zamani na mpya sambamba. Weka kurudi nyuma kikiwa kinapatikana muda wote, na ubadilishe kwa vipande badala ya yote kwa mara moja. Tofauti mnazozipata wakati wa uendeshaji sambamba kwa kawaida ni kanuni za urithi zisizoandikwa mnazopaswa kuzihifadhi, kwa hiyo chukulia kila moja kama ugunduzi, si kasoro tu.

  4. Ni mifumo ipi ya urithi mnaitunza dhidi ya kuibadilisha kikamilifu, na nani aliamua ipi ni ipi? Sura inachora mstari wa makusudi kati ya mifumo inayostahili kuimarishwa mahali pake (kuandika kanuni, kuongeza majaribio ya kubainisha tabia, kufundisha wadumishaji kuvuka mifumo) na mifumo inayostahili kubadilishwa hatua kwa hatua, na hizi mbili zinadai ufadhili na uajiri tofauti sana. Kwa shirika kubwa hatari ni kuteleza: mfumo uliowekewa lebo “tunza kwa sasa” kimyakimya unakuwa “tunza milele” hadi mdumishaji wa mwisho astaafu na uchaguzi ufanywe kwenu chini ya mgogoro. Mazingatio yanayoshindana ni gharama ya uangalizi na kupitwa na wakati kwa jukwaa upande mmoja dhidi ya hatari na usumbufu wa kubadilisha upande mwingine, na hatari ya maarifa inapaswa kuegemeza mizani kwa sababu inazidi kuwa mbaya tu. Leta gridi ya hatari-dhidi-ya-thamani, idadi ya wadumishaji na upeo wa kustaafu kwa kila mfumo, na mmiliki wazi wa uamuzi wa tunza-au-badilisha. Katika mali za mashirika makubwa na serikali, taja mzunguko wa mapitio na afisa anayewajibika kwa kila mfumo, kwa sababu uainishaji ambao hakuna anayeupitia ni uamuzi ambao hakuna anayeufanya.

  5. Uongozi unapoomba uandishi upya kamili, jibu lenu la kudumu ni lipi, na mnaweza kuonyesha njia ya hatua kwa hatua ingesafirisha nini katika miezi mitatu ya kwanza? Uandishi upya wa mlipuko mkubwa ndiyo hali ya chaguo-msingi ya kushindwa, hata hivyo unaendelea kufadhiliwa kwa sababu ukurasa safi ni rahisi kuuza na mtini wa kunyonga si hivyo. Timu kubwa inahitaji jibu lililofanyiwa mazoezi ili hoja ishindwe kwa ushahidi badala ya yeyote aliye mkuu zaidi chumbani. Mvutano wa kweli ni kwamba baadhi ya majukwaa kweli hayadumiki na uandishi upya unahalalishwa, kwa hiyo jibu haliwezi kuwa kukataa kwa jumla: lazima lipime kama viungo vya hatua kwa hatua bado vipo dhidi ya gharama halisi ya kuweka jukwaa la zamani hai. Leta thamani ambayo ongezeko la kwanza la hatua kwa hatua lingetoa, kiwango cha kihistoria cha kushindwa kwa uandishi upya unaofanana, na mgawanyo wa uandishi upya wowote unaopendekezwa kuwa vipande vinavyosafirishwa kwa kujitegemea. Katika serikali, ambapo programu iliyoghairiwa ya miaka mingi huchoma fedha za umma mbele ya macho ya watu, sisitiza kwamba uandishi upya wowote utoe thamani mapema na unusurike kusimamishwa nusu njia bila hasara kamili.

  6. Mtanasaje kanuni za biashara zilizofungwa katika msimbo wenu wa zamani zaidi kabla watu wanaozielewa hawajaondoka? Thamani nyingi katika mfumo wa urithi ni tabia isiyoandikwa ambayo miongo ya kesi za pembeni, kanuni, na marekebisho yanayooana na hitilafu yamekusanya, na inaishi kwa kundi linalopungua la wataalamu wanaostaafu badala ya rekodi yoyote iliyoandikwa. Kwa shirika kubwa hii ni hatari moja ambayo haiwezi kununuliwa nyuma watu wanapoondoka, kwa hiyo inastahili ufadhili kabla ya kazi inayoonekana zaidi ya jukwaa. Mvuto unaoshindana ni kwamba kunasa maarifa (nyaraka, majaribio ya kubainisha tabia, uhandisi kinyume, kufundisha kuvuka mifumo) kunahisi kama mzigo usiosafirisha chochote, ndiyo maana huahirishwa. Leta orodha ya nani anashikilia maarifa muhimu, wako karibu kiasi gani na kuondoka, na ufikiaji gani wa majaribio unaoweka tabia ya sasa leo. Katika mazingira yanayodhibitiwa na ya umma, chukulia kanuni za kisheria zilizowekwa katika msimbo wa zamani kama mali ya uzingatiaji: kuzipoteza kimyakimya si deni la kiufundi, ni mfiduo wa kisheria.

Mtazamo wa sekta

Kampuni changa. Urithi wako ni MVP yako mwenyewe ya haraka, si kompyuta kuu: mfano wa majaribio unaobeba mapato sasa na ambao kila mtu anauogopa kuugusa. Usiuandike upya. Funga moduli ya kutisha zaidi nyuma ya kiolesura safi, ongeza majaribio ya kubainisha tabia kuweka tabia yake, na toa utendaji hatua kwa hatua ili kila toleo dogo litoe thamani na kupunguza hatari. Huna muda wa fedha wa kujenga upya kutoka mwanzo, kwa hiyo uchaguzi unajalisha zaidi kuliko umaridadi.

Biashara ndogo. Huna timu ya uboreshaji na bajeti ni finyu, kwa hiyo hatua ya kiutendaji kwa kawaida ni kuweka mfumo unaofanya kazi ukifanya kazi: nasa anachojua mtu mmoja anayeuelewa, uweke kwenye udhibiti wa chanzo pamoja na majaribio machache ya kiotomatiki, na utegemee muuzaji au bidhaa iliyotengenezwa tayari badala ya ujenzi maalumu. Weka uamuzi kama kununua dhidi ya kujenga, na upendelee kununua pale uwezo ni wa kawaida. Tumia juhudi yako ndogo kwa mfumo mmoja ambao kushindwa kwake kungesimamisha biashara, si kwa chochote kinachoonekana cha zamani tu.

Biashara kubwa. Tatizo ni ukubwa wa jalada: mifumo kadhaa, timu nyingi, na hatari ya maarifa ya eneo zima. Endesha tathmini ya pamoja ya hatari-dhidi-ya-thamani, sawazisha mifumo ya hatua kwa hatua (mtini wa kunyonga na tawi-kwa-uondoaji-wa-maelezo), na uchukulie uhamishaji wa data na uendeshaji sambamba kama nidhamu za daraja la kwanza zenye upatanisho ambao kila mtu anauamini. Tawala uboreshaji kama jalada endelevu dhidi ya mwelekeo wa hatari badala ya mtawanyiko wa miradi ya kishujaa, na weka bajeti ya uangalizi na kunasa maarifa waziwazi ili hakuna mfumo muhimu unategemea mdumishaji mmoja anayestaafu.

Serikali. Wajibu wa kisheria uliowekwa kwa miongo, kanuni za ununuzi, na huduma za raia zisizoweza kukatizwa hufanya kubadilisha kwa mlipuko mkubwa kuwa hatari hasa. Pendelea uhamishaji wa mtini wa kunyonga wa hatua kwa hatua wenye kubadilisha kipande kwa kipande, thibitisha kupitia upatanisho na uendeshaji sambamba wa muda mrefu kwamba hakuna rekodi hata moja ya raia iliyopotea au kuhesabiwa vibaya, na uweke kurudi nyuma kikipatikana muda wote. Ununuzi unapaswa kudai uhamishikaji wa data na ufichuzi wa kanuni za biashara badala ya tafsiri isiyo wazi, na programu yoyote ya miaka mingi lazima itoe thamani inayokaguliwa mapema na kunusurika uchunguzi wa umma ikisimamishwa nusu njia.

Mifano

Kampuni changa. MVP asilia ya kampuni changa ya miaka mitatu imekuwa aina yake ya urithi: mfano wa haraka unaoshughulikia mapato halisi sasa na ambao kila mtu anauogopa kuugusa. Badala ya kuandika upya, timu inafunga moduli mbaya zaidi nyuma ya kiolesura safi, inaongeza majaribio ya kubainisha tabia kuweka tabia yake ya sasa, na kuhamisha utendaji kutoka humo kipande kwa kipande kwa miezi michache. Kila toleo dogo linatoa thamani na kupunguza sehemu ya kutisha, kwa hiyo kampuni changa inapata mfumo unaodumishika bila kuweka kampuni kwenye dau la ujenzi upya kutoka mwanzo ambao haiwezi kuumudu.

Biashara kubwa. Kampuni kubwa ya bima inaendesha usimamizi wa sera kwenye mfumo wa kompyuta kuu wa COBOL ambao ni wa kutegemewa lakini ghali kubadilisha na unaodumishwa na wahandisi wachache wanaokaribia kustaafu. Badala ya uandishi upya, kampuni ya bima inafunga kompyuta kuu na API za kisasa na kutumia mtini wa kunyonga: uwezo mpya wa kupata nukuu-na-kununua na huduma binafsi unajengwa kwenye jukwaa la kisasa na kuelekezwa kupitia uso, huku rekodi kuu za sera zikibaki kwenye kompyuta kuu. Sambamba, timu inaandika kanuni za biashara na kuongeza majaribio ya kubainisha tabia kuzunguka COBOL. Kwa miaka kadhaa, uwezo baada ya uwezo unahama kutoka kompyuta kuu, kila toleo likitoa thamani, hadi kiini kilichobaki kiweze kustaafishwa kwa masharti ya kampuni ya bima badala ya chini ya mgogoro.

Serikali. Wakala wa hifadhi ya jamii lazima uboreshe mfumo wa hesabu ya manufaa wa miongo ambao hulipa mamilioni ya raia na hauwezi kukatizwa wala kulipa vibaya. Unakataa kubadilisha kwa mlipuko mkubwa baada ya kusoma programu zilizoshindwa zinazofanana. Badala yake unachunguza na kusafisha data, unajenga uhamishaji wa kiotomatiki wenye upatanisho kamili dhidi ya jumla za udhibiti, na kuendesha injini mpya ya manufaa sambamba na ya zamani kwa miezi mingi, ikilisha zote mbili madai yaleyale na kulinganisha kila hesabu, ikichunguza kila tofauti (mara nyingi ikifichua kanuni za urithi zisizoandikwa zinazopaswa kuhifadhiwa). Mfumo mpya unapolingana na wa zamani kwa imani ya juu sana tu ndipo unabadilisha aina ya manufaa kwa aina ya manufaa, ukihifadhi kurudi nyuma muda wote. Uso wa mtini wa kunyonga unawaruhusu raia kuona huduma moja endelevu kuvuka mpito.

Kesi ya biashara: sababu, ROI, na TCO

Uboreshaji wa urithi una kesi ya biashara isiyo ya kawaida, kwa sababu gharama kubwa zaidi mara nyingi ni gharama ya kutotenda na hatari kubwa zaidi ni mradi wa uboreshaji wenyewe. Gharama zinazoongezeka za kutoboresha ni madhubuti: matengenezo na leseni zinazopanda kwenye majukwaa yanayopitwa na wakati, wafanyakazi wa kitaalamu wanaozidi kuwa adimu na ghali, kutoweza kutimiza haraka mahitaji mapya ya udhibiti au huduma, na mfiduo unaokua kwa kushindwa kwa maafa bila mtu yeyote aliyebaki anayeelewa mfumo. Dhidi ya hilo, gharama ya uboreshaji ni kubwa, na ikifanywa kama mlipuko mkubwa ina uwezekano mkubwa wa kweli wa kushindwa. Ndiyo maana hasa mbinu ya hatua kwa hatua ni muhimu kwa ROI: inabadilisha dau moja kubwa kuwa mfululizo wa madogo ambayo kila moja hurudisha thamani na yanaweza kusimamishwa.

Weka hoja kwa uongozi kwa kupanga upya uchaguzi. Swali si “boresha au la.” Ni “boresha kwa hatua kwa hatua sasa, au lipa gharama zinazoongezeka za uangalizi na ukabili uboreshaji wa kulazimishwa, wenye hatari kubwa baadaye chini ya mgogoro.” Pima TCO ya hali ilivyo (gharama za jukwaa na leseni, malipo ya ziada kwa ujuzi adimu, gharama iliyopimwa kwa hatari ya kukatika kusikorejesheka) na uilinganishe na programu ya awamu inayopunguza hatari na gharama kwa kila ongezeko huku ikiweka huduma ikiendesha. Muhimu, sisitiza kwamba uandishi upya wowote unaopendekezwa upangwe kutoa thamani mapema na mara kwa mara. Programu isiyotoa chochote kwa miaka mitatu na inayoweza kughairiwa kwa hasara kamili si uwekezaji; ni kamari. Hoja yenye nguvu zaidi ya ROI kwa mbinu ya kunyonga ni uchaguzi: thamani inasafirishwa mfululizo na shirika linaweza kurekebisha mwelekeo wakati wowote.

Mifumo mibaya na mitego

  • Uandishi upya wa mlipuko mkubwa. Ubadilishaji wa yote-au-hakuna wa miaka mingi usiotoa thamani hadi mwishoni na mara nyingi hughairiwa kwa gharama kubwa.
  • Kuandika upya bila kuelewa. Kubadilisha msimbo ambao kanuni zake za biashara hazikuwahi kuandikwa, kuacha kimyakimya kesi za pembeni ambazo watumiaji halisi na sheria zinazitegemea.
  • Kudharau data. Kuchukulia uhamishaji wa data kama wazo la baadaye wakati ndiyo sehemu ngumu zaidi, yenye hatari zaidi ya mradi.
  • Kuruka uendeshaji sambamba. Kubadilisha kwenda mfumo mpya bila ulinganisho sambamba, kugundua tofauti baada tu ya kuathiri watu halisi.
  • Tafsiri ya kiotomatiki kama suluhisho. Kutafsiri COBOL kwa mashine kwenda lugha ya kisasa na kuamini kazi imekwisha, kuzalisha msimbo usioeleweka unaorudia mantiki ya zamani neno kwa neno.
  • Kuboresha kwa umri, si hatari. Kutumia juhudi kwenye mifumo ya zamani-lakini-thabiti huku mifumo yenye hatari kubwa, mabadiliko makubwa ikisubiri.
  • Kupoteza maarifa. Kuwaacha wadumishaji wa mwisho kustaafu bila kunasa kanuni za biashara na kuongeza majaribio ya kubainisha tabia.
  • Hakuna kurudi nyuma. Kubadilisha bila njia ya kurudi mfumo mpya unapotenda vibaya chini ya mzigo halisi na data halisi.

Kielelezo cha ukomavu

  • Ngazi ya 1: Kuanzisha. Mifumo ya urithi inaogopwa na kugandishwa; mabadiliko yanaepukwa. Hakuna orodha wala tathmini ya hatari. Uboreshaji, unapojaribiwa kabisa, ni uandishi upya wa yote-au-hakuna wa papo hapo unaoendeshwa na kuchoka. Maarifa yanaishi katika vichwa vichache vinavyostaafu bila chochote kilichoandikwa.
  • Ngazi ya 2: Kuendeleza. Baadhi ya timu zina orodha na hisia ya msingi ya hatari, na mifumo michache ya urithi imefungwa na API kwa ufikiaji. Mifumo ya hatua kwa hatua inajulikana lakini inatumika bila usawa, na fikra bado inaelekea uandishi upya wa mlipuko mkubwa. Uhamishaji wa data unajaribiwa lakini unadharauliwa, na mazoea hutofautiana sana kati ya timu.
  • Ngazi ya 3: Kusawazisha. Mifumo inapewa vipaumbele kwa hatari na thamani dhidi ya mbinu iliyoandikwa ya shirika zima. Mifumo ya hatua kwa hatua (mtini wa kunyonga, tawi-kwa-uondoaji-wa-maelezo) ndiyo chaguo-msingi linalotekelezwa, na kila uboreshaji unafuata kitabu cha mikakati cha kawaida. Uhamishaji wa data ni juhudi iliyopangwa, iliyopatanishwa yenye uendeshaji sambamba kabla ya kubadilisha, na kunasa maarifa na majaribio ya kubainisha tabia ni mazoea yanayohitajika badala ya ya hiari.
  • Ngazi ya 4: Kusimamia. Uboreshaji unapimwa na kudhibitiwa kwa data. Eneo lina vipimo vya msingi: idadi ya wadumishaji na upeo wa kustaafu kwa kila mfumo, ufikiaji wa majaribio ya kubainisha tabia, viwango vya kupita vya upatanisho wa uhamishaji, hesabu za tofauti za uendeshaji sambamba, na thamani iliyosafirishwa kwa kila ongezeko, vyote vikifuatiliwa dhidi ya malengo. Maamuzi ya tunza-au-badilisha na uamuzi wa kwenda au kutokwenda kwa kubadilisha yanafanywa kwa ushahidi huu, na mfumo unaovuka kizingiti chake cha hatari ya maarifa huchochea hatua badala ya kusubiri mgogoro.
  • Ngazi ya 5: Kuratibu. Uboreshaji ni endelevu, umeunganishwa na upangaji wa biashara na hatari, na unajirekebisha. Jalada linasawazishwa upya dhidi ya mwelekeo wa hatari (hasa hatari ya maarifa) unapohama, ubadilishaji wa hatua kwa hatua ni wa kawaida na usio na drama, kila ongezeko linatoa thamani na linatenguka, na shirika linaongoza kasi kwa makusudi. Mafunzo kutoka kila uhamishaji hurudi kwenye kitabu cha mikakati cha pamoja ili eneo zima liboreke kwa muda.

Mawazo ya kujadili

  1. Kwa mfumo wenu muhimu zaidi wa urithi, watu wangapi bado wanaweza kuudumisha, na wako karibu kiasi gani na kuondoka?
  2. Wapi mnavutiwa na uandishi upya wa mlipuko mkubwa, na thamani gani njia ya hatua kwa hatua ingeweza kusafirisha katika miezi mitatu ya kwanza badala yake?
  3. Kanuni za biashara katika mifumo yenu ya zamani zaidi zimeandikwa vizuri kiasi gani, na nini kinazitokea msimbo ukibadilishwa?
  4. Mmechunguza data ambayo mngehitaji kuhamisha, na mnajua ni chafu na iliyofungamana kiasi gani kweli?
  5. Ni mifumo ipi ya zamani-lakini-thabiti mnayotumia nguvu ya uboreshaji ambayo mngeweza kuiacha peke yake kwa usalama?
  6. Mngeweza kuendesha mfumo wenu mpya sambamba na wa zamani na kuthibitisha unakubaliana kabla ya kubadilisha?

Mambo muhimu ya kukumbuka

  • Urithi unamaanisha wa thamani na wa msingi; heshimu na uelewe mfumo kabla ya kuubadilisha.
  • Boresha kwa hatua kwa hatua kwa mtini wa kunyonga na tawi-kwa-uondoaji-wa-maelezo, ukitoa thamani mfululizo na kuweka kila badiliko dogo na linalotenguka.
  • Chukulia uandishi upya wa mlipuko mkubwa kama hali ya chaguo-msingi ya kushindwa; uhifadhi kwa majukwaa yasiyodumika kweli na hata hapo ugawanye.
  • Weka vipaumbele kwa hatari na thamani (hasa hatari ya maarifa), si umri; baadhi ya mifumo ya zamani ni bora kutunzwa, si kubadilishwa.
  • Uhamishaji wa data na uendeshaji sambamba ndio moyo wa juhudi; chunguza, patanisha, endesha sambamba, na uhifadhi kurudi nyuma.
  • Kesi yenye nguvu zaidi ya biashara ni uchaguzi: uboreshaji wa hatua kwa hatua hubadilisha dau moja kubwa, hatari kuwa dau nyingi ndogo zinazorudisha thamani.

Marejeo na usomaji zaidi

  • Michael Feathers, Working Effectively with Legacy Code
  • Martin Fowler, “StranglerFigApplication” and “BranchByAbstraction”
  • Sam Newman, Monolith to Microservices
  • Nicholas Carr / industry studies on mainframe and COBOL dependency (context on the scale of legacy estates)
  • Robert Annett, Working with Legacy Systems
  • Eric Evans, Domain-Driven Design (anti-corruption layer)
  • Gregor Hohpe, Enterprise Integration Patterns and The Software Architect Elevator
  • Standish Group CHAOS Report (evidence on large project and rewrite failure rates)