3.6

Gweld yn Saesneg

3.6 Moderneiddio systemau etifeddol

Trosolwg a chymhelliant

Systemau etifeddol yw’r systemau sy’n rhedeg y byd. Mae’r llyfrau cyfrifon bancio craidd, peiriannau treth a budd-daliadau, systemau rheolaeth traffig awyr ac amddiffyn, gweinyddu polisïau yswiriant, a chofrestrfeydd llywodraeth y mae cymdeithasau’n dibynnu arnynt yn aml yn ddegawdau oed. Ysgrifennwyd llawer ohonynt mewn COBOL (Common Business-Oriented Language) neu dechnolegau hŷn eraill, ac maent yn dal i brosesu’r mwyafrif o drafodion critigol. Nid yw “etifeddol” yn sarhad. Mae’n golygu bod y system yn ddigon gwerthfawr i fod wedi goroesi, yn ddigon critigol fel bod methiant yn drychinebus, ac yn ddigon hen fel ei bod yn anodd ei newid yn ddiogel. Moderneiddio systemau etifeddol yw’r ddisgyblaeth o wella, mudo, neu ddisodli’r systemau hyn heb dorri’r gwasanaethau hanfodol y maent yn eu darparu.

Mae hyn yn broblem anghymesur i fenter a llywodraeth, a dyma lle mae’r methiannau TG mwyaf, mwyaf cyhoeddus yn digwydd. Mae cyfran enfawr o brif drafodion y byd yn dal i gyffwrdd â systemau prif ffrâm. Mae cyfran fawr o’r cod cynhyrchu mewn sefydliadau mawr mewn ieithoedd hŷn sy’n cael eu cynnal gan bwll o arbenigwyr sy’n heneiddio ac yn crebachu. Mae llywodraethau’n cario’r baich trymaf: rhwymedigaethau statudol wedi’u hamgodio dros ddegawdau, cylchoedd caffael a chyllideb sy’n para’n hwy na gweinyddiaethau, a gwasanaethau dinasyddion na ellir eu torri ar draws. Nid y prif risg yw bod y systemau hyn yn hen, gan fod llawer yn rhedeg yn rhagorol. Y risg yw bod y wybodaeth i’w cynnal yn ymddeol, mae’r platfformau’n gynyddol ddrud a chyfyngedig, ac mae’r demtasiwn i “jyst ei hailysgrifennu” yn arwain at rai o’r methiannau drutaf yn hanes y maes.

Mae’r bennod hon yn ymdrin â’r patrymau moderneiddio cynyddrannol sydd wir yn gweithio (strangler fig a branch-by-abstraction), sut i asesu a blaenoriaethu risg etifeddol, stiwardiaeth ystadau prif ffrâm a COBOL, disgyblaeth mudo data a rhedeg deuol, ac yn anad dim sut i wrthsefyll y demtasiwn i ailysgrifennu popeth. Y confensiwn canolog yw bod moderneiddio llwyddiannus bron bob amser yn gynyddrannol, wedi’i yrru gan dystiolaeth, ac yn cyflenwi gwerth yn barhaus. Nid yw byth yn ‘big bang’ aml-flwyddyn.

Egwyddorion allweddol

  • Mae etifeddol yn golygu gwerthfawr a sylfaenol, nid dim ond hen. Parchwch yr hyn y mae’r system yn ei wneud cyn i chi ei chyffwrdd; mae’n amgodio degawdau o reolau busnes a enillwyd yn galed.
  • Mae cynyddrannol yn curo big-bang, bron bob amser. Disodlwch ddarn wrth ddarn y tu ôl i ryngwyneb sefydlog; cyflenwch werth yn barhaus a chadwch risg yn fach.
  • Yr ailysgrifennu mawr yw’r modd methiant diofyn. Mae ailysgrifeniadau llawn yn rheolaidd yn mynd dros amser, yn tanberfformio, ac yn cael eu canslo; trinwch yr ysfa gyda drwgdybiaeth ddwfn.
  • Ni allwch foderneiddio’r hyn nad ydych yn ei ddeall. Peirianneg wrthdro a dogfennwch ymddygiad (gan gynnwys rheolau heb eu dogfennu) cyn ei ddisodli.
  • Mudo data yw lle mae prosiectau’n marw. Mae’r data’n hŷn, yn fudrach, ac yn fwy cymhleth nag y mae unrhyw un yn ei ddisgwyl; cynlluniwch ar ei gyfer fel ymdrech dosbarth cyntaf.
  • Rhedwch yr hen a’r newydd ochr yn ochr i adeiladu hyder. Mae rhedeg deuol a chymharu’n dal anghysondebau cyn trosi.
  • Blaenoriaethwch yn ôl risg a gwerth, nid oedran. Moderneiddiwch yr hyn sydd fwyaf peryglus a gwerthfawr yn gyntaf, nid yr hyn sydd hynaf yn unig.
  • Cadwch y goleuadau ymlaen wrth i chi newid yr injan. Rhaid i’r gwasanaeth barhau i redeg drwy gydol y broses; nid oes amser segur derbyniol ar gyfer systemau dinesydd neu ariannol critigol.

Argymhellion

Moderneiddio’n gynyddrannol gyda’r patrwm strangler fig

Y strangler fig (a enwyd ar ôl y winwydden sy’n tyfu o amgylch coeden ac yn ei disodli’n raddol) yw ceffyl gwaith moderneiddio diogel. Gosodwch haen lwybro (porthdy API, ffasâd, neu ddirprwy) o flaen y system etifeddol. Yna, gallu wrth allu, adeiladwch y disodliad mewn system fodern ac ailgyfeiriwch y sleisen honno o draffig ato, gan adael y gweddill ar y system etifeddol. Dros amser mae’r system newydd yn tyfu a’r hen un yn crebachu, nes y gellir ei hymddeol. Mae hyn yn cyflenwi gwerth yn barhaus, yn cadw pob newid yn fach ac yn wrthdroadwy, yn osgoi trosi peryglus, ac yn caniatáu i chi stopio neu ailflaenoriaethu ar unrhyw bwynt. Dyma wrthwyneb y ‘big bang’. Mae’r system etifeddol yn parhau i redeg ac yn parhau i ennill ei chadw wrth i chi ei disodli o’i chwmpas.

Defnyddiwch branch-by-abstraction ar gyfer gwniadau mewnol

Lle mae angen i chi ddisodli cydran y mae llawer o rannau’r system yn dibynnu arni, defnyddiwch branch-by-abstraction. Cyflwynwch haen haniaethu (rhyngwyneb) dros y gweithrediad presennol, mudwch alwyr i ddibynnu ar yr haniaeth, adeiladwch y gweithrediad newydd y tu ôl i’r un haniaeth, newidiwch drosodd (yn aml y tu ôl i fflag nodwedd, yn raddol), ac yn olaf tynnwch yr hen weithrediad i ffwrdd. Mae hyn yn caniatáu i gydran fawr gael ei disodli’n gynyddrannol ar brif linell y datblygiad heb gangen hirhoedlog, gan gadw’r system yn rhyddhadwy drwy gydol y broses. Mae’n paru’n naturiol â’r strangler fig: mae’r ffasâd yn trin gwniadau allanol, mae branch-by-abstraction yn trin rhai mewnol.

Asesu a blaenoriaethu risg etifeddol yn fwriadus

Cyn moderneiddio, adeiladwch arolwg ac asesiad risg clir o’r ystâd. Ar gyfer pob system, rhowch sgôr iddi ar gyfer critigolrwydd busnes, risg dechnegol (darfodiad, platfformau heb gefnogaeth, amlygiad diogelwch), amlder newid, ac, yn allweddol, risg gwybodaeth (faint o bobl sy’n dal i allu ei chynnal, a pha mor agos ydynt at ymddeol). Plotiwch systemau ar grid risg-yn-erbyn-gwerth. Blaenoriaethwch foderneiddio’r hyn sydd risg uchel a gwerth uchel. Ystyriwch adael systemau sefydlog, newid isel, wedi’u deall yn dda ar eu pen eu hunain hyd yn oed os ydynt yn hen, oherwydd nid yw system sy’n gweithio nad oes angen i unrhyw un ei newid yn argyfwng. Mae’r asesiad hwn yn troi “mae popeth yn hen ac yn frawychus” yn fap ffordd amddiffynadwy, wedi’i drefnu.

Stiwardio’r ystâd prif ffrâm a COBOL, nid dim ond ei disodli

Ni ddylai, neu ni all, pob system prif ffrâm neu COBOL gael ei disodli’n ddiogel yn fuan. Yn aml, y flaenoriaeth agos-dymor yw stiwardiaeth: dal y wybodaeth cyn iddi ymddeol. Dogfennwch y rheolau busnes y mae’r cod yn eu hamgodio (mae llawer ohonynt heb eu dogfennu ac na ellir eu hadfer), buddsoddwch mewn profion awtomataidd sy’n pinio ymddygiad presennol fel bod newid yn y dyfodol yn ddiogel, recriwtiwch a chroeshyfforddwch gynhalwyr, a moderneiddiwch yr arferion cyflenwi cyfagos (rheolaeth ffynhonnell, integreiddio parhaus (CI), profi awtomataidd) hyd yn oed tra bo’r craidd yn aros yn ei le. Lle rydych chi’n moderneiddio, ffafriwch ddatgelu galluoedd etifeddol drwy APIs modern (amgapsiwleiddio) fel cam cyntaf. Trinwch gyfieithu awtomataidd COBOL-i-iaith-fodern gyda gofal, oherwydd mae’n cynhyrchu cod sy’n rhedeg ond yn aml yn atgynhyrchu rhesymeg annealladwy’n ffyddlon. Yr adnodd prinnaf yw dealltwriaeth, nid cyfrifiadura.

Trinwch fudo data a rhedeg deuol fel craidd y prosiect

Y rhan anoddaf a mwyaf peryglus o’r rhan fwyaf o ymdrechion moderneiddio yw’r data. Mae’n helaeth, o ansawdd gwael ac anghyson, ac yn llawn ystyr heb ei ddogfennu sydd wedi cronni dros ddegawdau. Proffiliwch a glanhewch ef, mapiwch hen sgemâu i rai newydd yn benodol, ac adeiladwch fudiad ailadroddadwy, awtomataidd gyda chysoni llawn (cyfrifon, symiau gwirio, cyfansymiau busnes) fel y gallwch brofi na chollwyd na newidiwyd unrhyw beth. Lleihewch risg trosi gyda rhedeg deuol (rhedeg cyfochrog): gweithredwch yr hen a’r system newydd ochr yn ochr ar yr un mewnbynnau a chymharwch allbynnau nes bod y system newydd yn cyfateb i’r hen un i’ch trothwy hyder. Dim ond wedyn trosi, a chadw’r gallu i ddychwelyd. Ar gyfer systemau gwirioneddol critigol, mudwch a throswch mewn sleisys yn hytrach nag ar unwaith.

Rheoli’r demtasiwn i ailysgrifennu popeth

Mae’r reddf i daflu’r hen system flêr i ffwrdd ac adeiladu un lân newydd o’r dechrau’n gryf, ac mae bron bob amser yn anghywir ar gyfer systemau mawr, critigol. Mae ailysgrifeniadau llawn yn tanamcangyfrif y gwerth sydd wedi’i guddio yn y cod “hyll” (achosion ymyl, rheolau rheoleiddiol, ymddygiadau’n gydnaws â namau y mae defnyddwyr go iawn yn dibynnu arnynt), yn cymryd llawer hwy na’r disgwyl, yn cyflenwi dim gwerth hyd y diwedd, ac yn aml yn cael eu canslo ar ôl gwariant enfawr. Rhagosodwch i foderneiddio cynyddrannol. Cadwch ailysgrifeniadau ar gyfer achosion lle mae’r platfform yn wirioneddol anghynaladwy a lle mae llwybrau cynyddrannol wedi’u disbyddu. Hyd yn oed wedyn, dadelfennwch yr ailysgrifennu’n ddarnau y gellir eu cyflenwi’n annibynnol drwy’r patrwm strangler yn hytrach na rhyddhad ‘big-bang’ sengl. Pan fydd arweinyddiaeth yn gwthio am ailysgrifennu llwyr, mynnwch y cwestiwn: pa werth sy’n cael ei gyflenwi yn y tri mis cyntaf, a beth sy’n digwydd os yw’r rhaglen yn cael ei stopio hanner ffordd drwodd?

Cyfaddawdau: manteision ac anfanteision

DullManteisionAnfanteision
Strangler fig (cynyddrannol)Gwerth parhaus, risg isel, gwrthdroadwy, yn cadw’r gwasanaeth i redegAmserlen gyffredinol hwy, rhaid rhedeg dwy system ochr yn ochr, gorbenion integreiddio
Ailysgrifennu big-bangLlechen lân, dim cyfyngiadau etifeddol yn y cod newyddCyfradd fethiant uchel iawn, dim gwerth hyd y diwedd, cost enfawr, colli rheolau busnes
Amgapsiwleiddio (lapio ag APIs)Cyflym, risg isel, yn moderneiddio mynediad heb gyffwrdd â’r craiddMae’r craidd yn aros yn etifeddol; yn gohirio, nid yn datrys, y risg sylfaenol
Gadael fel y mae (stiwardio)Dim risg prosiect; rhataf yn y tymor byrMae risg gwybodaeth a phlatfform yn parhau i gronni; gweithredu gorfodol yn y pen draw

Y cyfaddawd sylfaenol yw cyflymder trawsnewid yn erbyn risg methiant, a moderneiddio etifeddol yw’r maes lle mae’r fasnach honno fwyaf anghymesur. Mae’r ailysgrifennu ‘cyflym, glân’ big-bang yn rhith sy’n cynhyrchu dro ar ôl tro y canlyniad arafaf a drutaf oll: rhaglen wedi’i chanslo a system sy’n dal heb ei moderneiddio. Mae dulliau cynyddrannol yn teimlo’n arafach ac yn gofyn am redeg dwy system ochr yn ochr, ond maent yn cyflenwi gwerth drwy gydol y broses, yn cadw risg yn fach ac yn wrthdroadwy, ac yn llwybr dibynadwy’n empirig. Y penderfyniad barn go iawn yw rhwng stiwardio system etifeddol sefydlog am ychydig hirach a dechrau disodli cynyddrannol nawr. Gadewch i lwybr risg lywio’r penderfyniad hwnnw, yn enwedig risg gwybodaeth, yn hytrach nag anesmwythder â hen dechnoleg.

Cwestiynau i’w trafod gyda’ch tîm

  1. A oes gennych chi le i osod haen lwybro o flaen eich system etifeddol, ac os nad oes, beth fyddai ei angen i greu un? Mae’r strangler fig yn dibynnu ar wniad: porthdy API, ffasâd, neu ddirprwy y gallwch chi ailgyfeirio un gallu ar y tro drwyddo i weithrediad newydd. Nid oes gan lawer o hen systemau wniad o’r fath, felly yn aml y cynnydd moderneiddio cyntaf yw jyst adeiladu’r pwynt rhyng-gipio, ac mae’n hawdd tanamcangyfrif y gwaith hwnnw. Dewch â’r map integreiddio presennol a gofynnwch ble y gellid rhyng-gipio traffig fesul gallu heb drosi ‘big-bang’. Os nad oes unman, gall branch-by-abstraction ar wniad mewnol fod y symudiad cychwynnol yn lle hynny. Heb haen lwybro nid oes gennych lwybr cynyddrannol, sef yn union sut mae sefydliadau’n cael eu gwthio’n ôl tuag at yr ailysgrifennu sydd fel arfer yn methu.

  2. A ydych chi wedi plotio’ch ystâd mewn gwirionedd ar grid risg-yn-erbyn-gwerth, neu a yw eich map ffordd wedi’i yrru gan ba system sy’n teimlo hynaf? Mae’r bennod yn mynnu eich bod chi’n moderneiddio’r hyn sydd risg uchel a gwerth uchel yn gyntaf, ac yn fwriadol yn gadael systemau sefydlog, newid isel, wedi’u deall yn dda ar eu pen eu hunain hyd yn oed pan fyddant yn hynafol. Heb grid penodol, mae sylw’n llifo tuag at y gŵyn uchaf neu’r dechnoleg leiaf ffasiynol, ac mae bomiau amser gwirioneddol (system critigol gyda dau gynhaliwr sy’n agos at ymddeol) yn aros. Rhowch sgôr i bob system ar gyfer critigolrwydd busnes, risg dechnegol, amlder newid, a risg gwybodaeth, yna trefnwch o’r gornel dde-uchaf. Dewch â’r grid hwnnw i’r cyfarfod fel y map a rennir. Mae risg gwybodaeth yn haeddu’r pwysau trymaf, oherwydd dyma’r unig fewnbwn sy’n gwaethygu’n unig ac na ellir ei brynu’n ôl unwaith y bydd y bobl yn gadael.

  3. Pan fyddwch chi’n trosi, sut y byddwch chi’n profi na chollwyd na newidiwyd un cofnod sengl, a phwy sy’n arwyddo’r dystiolaeth honno? Mudo data yw lle mae’r prosiectau hyn yn marw, ac mae hyder yn dod o gysoni: cyfrifon rhesi, symiau gwirio, a chyfansymiau rheolaeth busnes sy’n cyfateb rhwng yr hen a’r newydd, ynghyd â rhedeg deuol sy’n cymharu allbynnau ar yr un mewnbynnau nes eu bod yn cytuno i drothwy uchel. Ar gyfer system budd-daliadau neu lyfr cyfrifon, mae anghysondeb yn golygu dinesydd wedi’i danddalu neu geiniog wedi’i cholli, felly rhaid i’r dystiolaeth fodloni archwiliwr, nid dim ond peiriannydd. Penderfynwch nawr pa gyfansymiau y byddwch chi’n eu cysoni, pa drothwy hyder sy’n sbarduno trosi, a pha mor hir y byddwch chi’n rhedeg yr hen a’r newydd ochr yn ochr. Cadwch ddychwelyd ar gael drwy gydol y broses, a throswch mewn sleisys yn hytrach nag ar unwaith. Mae’r anghysondebau a ddewch o hyd iddynt yn ystod rhedeg deuol fel arfer yn rheolau etifeddol heb eu dogfennu y mae’n rhaid i chi eu cadw, felly trinwch bob un fel darganfyddiad, nid dim ond diffyg.

  4. Pa un o’ch systemau etifeddol rydych chi’n eu stiwardio yn erbyn eu disodli’n weithredol, a phwy benderfynodd pa un yw pa un? Mae’r bennod yn tynnu llinell fwriadol rhwng systemau sy’n werth eu sefydlogi yn eu lle (dogfennu rheolau, ychwanegu profion nodweddu, croeshyfforddi cynhalwyr) a systemau sy’n werth eu disodli’n gynyddrannol, ac mae’r ddau’n gofyn am gyllido a staffio gwahanol iawn. I sefydliad mawr, y perygl yw llithriad: mae system wedi’i labelu “stiwardio am nawr” yn dawel yn dod yn “stiwardio am byth” nes bod y cynhaliwr olaf yn ymddeol a bod y dewis yn cael ei wneud i chi dan argyfwng. Yr ystyriaethau sy’n cystadlu yw cost stiwardiaeth a darfodiad platfform ar un ochr yn erbyn risg ac aflonyddwch disodli ar y llall, a dylai risg gwybodaeth droi’r fantol gan mai dim ond gwaethygu y mae. Dewch â’r grid risg-yn-erbyn-gwerth, nifer y cynhalwyr a gorwel ymddeol ar gyfer pob system, a pherchennog penodol ar gyfer y penderfyniad stiwardio-neu-ddisodli. Mewn ystadau menter a llywodraeth, enwch rythm adolygu a swyddog atebol ar gyfer pob system, oherwydd mae dosbarthiad nad oes neb yn ei ailystyried yn benderfyniad nad oes neb yn ei wneud.

  5. Pan fydd arweinyddiaeth yn gofyn am ailysgrifennu llawn, beth yw eich ateb sefydlog, ac a allwch chi ddangos beth mae llwybr cynyddrannol yn ei gyflenwi yn y tri mis cyntaf? Yr ailysgrifennu big-bang yw’r modd methiant diofyn, ac eto mae’n parhau i gael ei ariannu oherwydd bod llechen lân yn hawdd ei gwerthu ac nid yw strangler fig. Mae angen ymateb wedi’i ymarfer ar dîm mawr fel bod y ddadl yn cael ei hennill ar dystiolaeth yn hytrach nag ar bwy bynnag sydd fwyaf hŷn yn yr ystafell. Y tyndra gwirioneddol yw bod rhai platfformau wir yn anghynaladwy a bod ailysgrifennu’n gyfiawnhaedig, felly ni all yr ateb fod yn wrthodiad cyffredinol: rhaid iddo bwyso a mesur a yw gwniadau cynyddrannol yn dal i fodoli yn erbyn gwir gost cadw’r hen blatfform yn fyw. Dewch â’r gwerth y byddai cynnydd cynyddrannol cyntaf yn ei gyflenwi, cyfradd fethiant hanesyddol ailysgrifeniadau cymharol, a dadelfeniad o unrhyw ailysgrifennu arfaethedig yn ddarnau y gellir eu cyflenwi’n annibynnol. Mewn llywodraeth, lle mae rhaglen aml-flwyddyn wedi’i chanslo’n llosgi arian cyhoeddus yng ngŵydd pawb, mynnwch fod unrhyw ailysgrifennu’n cyflenwi gwerth yn gynnar ac yn goroesi cael ei stopio hanner ffordd heb golled lwyr.

  6. Sut y byddwch chi’n dal y rheolau busnes sydd wedi’u cloi yn eich cod hynaf cyn i’r bobl sy’n eu deall fynd? Mae llawer o’r gwerth mewn system etifeddol yn ymddygiad heb ei ddogfennu y mae degawdau o achosion ymyl, rheoliadau, a thrwsio cydnaws â namau wedi’i gronni, ac mae’n byw mewn pwll o arbenigwyr sy’n crebachu ac yn ymddeol yn hytrach nag mewn unrhyw gofnod ysgrifenedig. I sefydliad mawr, dyma’r un risg na ellir ei brynu’n ôl unwaith y bydd y bobl yn gadael, felly mae’n haeddu cyllido o flaen y gwaith platfform mwy gweladwy. Y dynfa sy’n cystadlu yw bod dal gwybodaeth (dogfennaeth, profion nodweddu, peirianneg wrthdro, croeshyfforddi) yn teimlo fel gorbenion nad ydynt yn cyflenwi dim, sef yn union pam mae’n cael ei ohirio. Dewch ag arolwg o bwy sy’n dal gwybodaeth critigol, pa mor agos ydynt at adael, a pha sylw prawf sy’n pinio ymddygiad presennol heddiw. Mewn lleoliadau rheoleiddiedig a chyhoeddus, trinwch y rheolau statudol wedi’u hamgodio mewn hen god fel ased cydymffurfiaeth: nid dyled dechnegol yw eu colli’n dawel, mae’n amlygiad cyfreithiol.

Golwg sector

Startup. Eich MVP brysiog eich hun yw eich etifeddiaeth, nid prif ffrâm: prototeip sydd bellach yn cario refeniw ac y mae pawb yn ofni ei gyffwrdd. Peidiwch â’i ailysgrifennu. Lapiwch y modiwl mwyaf brawychus y tu ôl i ryngwyneb glân, ychwanegwch brofion nodweddu i binio ei ymddygiad, a naddwch swyddogaethau allan yn gynyddrannol fel bod pob rhyddhad bach yn cyflenwi gwerth ac yn lleihau’r risg. Nid oes gennych chi lwybr glanio ar gyfer ailadeiladu o’r dechrau, felly mae dewisoldeb yn bwysicach na cheinder.

Busnes bach. Nid oes gennych chi dîm moderneiddio a chyllideb dynn, felly’r symudiad ymarferol fel arfer yw cadw system sy’n gweithio i weithio: daliwch yr hyn y mae’r un person sy’n ei deall yn ei wybod, ei roi mewn rheolaeth ffynhonnell gyda rhai profion awtomataidd, a phwyso ar werthwr neu gynnyrch pecynnedig yn hytrach nag ailadeiladu pwrpasol. Fframiwch y penderfyniad fel prynu yn erbyn adeiladu, a ffafriwch brynu pan fo’r gallu’n nwydd. Treuliwch eich ymdrech gyfyngedig ar yr un system y byddai ei methiant yn stopio’r busnes, nid ar beth bynnag sy’n edrych hynaf yn unig.

Menter. Y broblem yw graddfa portffolio: dwsinau o systemau, llawer o dimau, a risg gwybodaeth ledled yr ystâd. Cynhaliwch asesiad risg-yn-erbyn-gwerth a rennir, safonwch ar batrymau cynyddrannol (strangler fig a branch-by-abstraction), a thrinwch fudo data a rhedeg deuol fel disgyblaethau dosbarth cyntaf gyda chysoni y mae pawb yn ymddiried ynddo. Llywodraethwch foderneiddio fel portffolio parhaus yn erbyn llwybr risg yn hytrach na gwasgariad o brosiectau arwrol, a chyllidebwch stiwardiaeth a dal gwybodaeth yn benodol fel nad oes unrhyw system critigol yn dibynnu ar un cynhaliwr sy’n ymddeol.

Llywodraeth. Mae rhwymedigaethau statudol wedi’u hamgodio dros ddegawdau, rheolau caffael, a gwasanaethau dinasyddion na ellir eu torri ar draws yn gwneud disodli ‘big-bang’ yn arbennig o beryglus. Ffafriwch fudo strangler-fig cynyddrannol gyda throsi sleisen-wrth-sleisen, profwch drwy gysoni a rhedeg cyfochrog hir na chollwyd na chamgyfrifwyd yr un cofnod dinesydd, a chadwch ddychwelyd ar gael drwy gydol y broses. Dylai caffael fynnu cludadwyedd data a datgelu rheolau busnes yn hytrach na chyfieithu afloyw, a rhaid i unrhyw raglen aml-flwyddyn gyflenwi gwerth archwiliadwy’n gynnar a goroesi craffu cyhoeddus os caiff ei stopio hanner ffordd.

Enghreifftiau

Startup. Mae MVP gwreiddiol startup tair blwydd oed wedi dod yn fath o etifeddiaeth ei hun: prototeip brysiog sydd bellach yn trin refeniw go iawn ac y mae pawb yn ofni ei gyffwrdd. Yn hytrach nag ailysgrifennu, mae’r tîm yn lapio’r modiwl gwaethaf y tu ôl i ryngwyneb glân, yn ychwanegu profion nodweddu i binio ei ymddygiad presennol, ac yn symud swyddogaethau allan ohono ddarn wrth ddarn dros ychydig fisoedd. Mae pob rhyddhad bach yn cyflenwi gwerth ac yn lleihau’r rhan frawychus, felly mae’r startup yn cael system y gellir ei chynnal heb fentro’r cwmni ar ailadeiladu o’r dechrau na all ei fforddio.

Menter. Mae yswiriwr mawr yn rhedeg gweinyddu polisïau ar system COBOL prif ffrâm sy’n ddibynadwy ond yn ddrud i’w newid ac sy’n cael ei chynnal gan lond llaw o beirianwyr sy’n agosáu at ymddeoliad. Yn hytrach nag ailysgrifennu, mae’r yswiriwr yn lapio’r prif ffrâm ag APIs modern ac yn cymhwyso’r strangler fig: mae galluoedd dyfynbris-a-phrynu a hunanwasanaeth newydd yn cael eu hadeiladu ar blatfform modern ac yn cael eu llwybro drwy ffasâd, tra bo cofnodion polisi craidd yn aros ar y prif ffrâm. Ochr yn ochr, mae’r tîm yn dogfennu rheolau busnes ac yn ychwanegu profion nodweddu o amgylch y COBOL. Dros sawl blwyddyn, mae gallu ar ôl gallu yn symud oddi ar y prif ffrâm, gyda phob rhyddhad yn cyflenwi gwerth, nes y gellir ymddeol y craidd sy’n weddill ar delerau’r yswiriwr yn hytrach nag o dan argyfwng.

Llywodraeth. Rhaid i asiantaeth nawdd cymdeithasol foderneiddio system cyfrifo budd-daliadau ddegawdau oed sy’n talu miliynau o ddinasyddion ac na ellir ei thorri ar draws na thalu’n anghywir. Mae’n gwrthod disodliad ‘big-bang’ ar ôl astudio rhaglenni methedig cymharol. Yn lle hynny mae’n proffilio ac yn glanhau’r data, yn adeiladu mudiad awtomataidd gyda chysoni llawn yn erbyn cyfansymiau rheolaeth, ac yn rhedeg y peiriant budd-daliadau newydd ochr yn ochr â’r hen un am fisoedd lawer, gan fwydo’r ddau â’r un hawliadau a chymharu pob cyfrifiad, gan ymchwilio i bob anghysondeb (yn aml yn datgelu rheolau etifeddol heb eu dogfennu y mae’n rhaid eu cadw). Dim ond ar ôl i’r system newydd gyfateb i’r hen un i hyder uchel iawn y mae’n trosi math wrth fath o fudd-dal, gan gadw dychwelyd drwy gydol y broses. Mae’r ffasâd strangler yn caniatáu i ddinasyddion weld un gwasanaeth di-dor ar draws y trawsnewid.

Achos busnes: cymhellion, ROI, a TCO

Mae gan foderneiddio etifeddol achos busnes anarferol, oherwydd yn aml y gost fwyaf yw cost anweithredu a’r risg fwyaf yw’r prosiect moderneiddio ei hun. Mae costau cynyddol peidio â moderneiddio’n gonglog: cynnal a chadw a thrwyddedu cynyddol ar blatfformau darfodedig, gweithlu arbenigol cynyddol brin a drud, anallu i fodloni gofynion rheoleiddiol neu wasanaeth newydd yn gyflym, ac amlygiad cynyddol i fethiant trychinebus heb neb ar ôl sy’n deall y system. Yn erbyn hynny, mae cost moderneiddio’n uchel, ac wedi’i wneud fel ‘big bang’ mae’n cario tebygolrwydd gwirioneddol uchel o fethiant. Dyna’n union pam mae’r dull cynyddrannol yn bwysig i’r ROI: mae’n trosi un bet fawr sengl yn gyfres o rai bach sy’n dychwelyd gwerth yr un ac y gellir eu stopio.

Gwnewch yr achos i arweinyddiaeth drwy ailfframio’r dewis. Nid y cwestiwn yw “moderneiddio neu beidio.” Y cwestiwn yw “moderneiddio’n gynyddrannol nawr, neu dalu costau stiwardiaeth cynyddol a wynebu moderneiddio gorfodol, risg uwch yn ddiweddarach o dan argyfwng.” Meintiolwch TCO’r status quo (costau platfform a thrwydded, y premiwm ar gyfer sgiliau prin, cost wedi’i phwysoli yn ôl risg toriad na ellir ei adfer) a’i gymharu â rhaglen fesul cam sy’n lleihau risg a chost gyda phob cynnydd tra’n cadw’r gwasanaeth i redeg. Yn allweddol, mynnwch fod unrhyw ailysgrifennu arfaethedig wedi’i strwythuro i gyflenwi gwerth yn gynnar ac yn aml. Nid buddsoddiad yw rhaglen sy’n cyflenwi dim byd am dair blynedd ac y gellir ei chanslo gyda cholled lwyr; gamblo ydyw. Y ddadl ROI gryfaf ar gyfer y dull strangler yw dewisoldeb: mae gwerth yn cael ei gyflenwi’n barhaus ac mae’r sefydliad yn gallu addasu cwrs ar unrhyw bwynt.

Gwrth-batrymau a pheryglon

  • Yr ailysgrifennu big-bang. Disodliad aml-flwyddyn, popeth-neu-ddim sy’n cyflenwi dim gwerth hyd y diwedd ac sy’n aml yn cael ei ganslo am gost enfawr.
  • Ailysgrifennu heb ddeall. Disodli cod na chafodd ei reolau busnes eu dogfennu erioed, gan ollwng achosion ymyl y mae defnyddwyr go iawn a chyfreithiau’n dibynnu arnynt yn dawel.
  • Tanamcangyfrif y data. Trin mudo data fel ôl-ystyriaeth pan mai dyma ran anoddaf, mwyaf peryglus y prosiect.
  • Hepgor rhedeg deuol. Trosi i’r system newydd heb gymhariaeth gyfochrog, gan ddarganfod anghysondebau dim ond ar ôl iddynt effeithio ar bobl go iawn.
  • Cyfieithu awtomataidd fel ateb. Cyfieithu COBOL â pheiriant i iaith fodern a chredu bod y gwaith wedi’i wneud, gan gynhyrchu cod annealladwy sy’n atgynhyrchu’r hen resymeg air-am-air.
  • Moderneiddio yn ôl oedran, nid risg. Treulio ymdrech ar systemau hen-ond-sefydlog tra bo systemau risg uchel, newid uchel yn aros.
  • Colli’r wybodaeth. Gadael i’r cynhalwyr olaf ymddeol heb ddal y rheolau busnes ac ychwanegu profion nodweddu.
  • Dim dychwelyd. Trosi heb ffordd yn ôl pan fydd y system newydd yn camymddwyn dan lwyth go iawn a data go iawn.

Model aeddfedrwydd

  • Lefel 1: Cychwyn. Ofnir a rhewir systemau etifeddol; osgoir newid. Nid oes arolwg nac asesiad risg yn bodoli. Mae moderneiddio, pan geisir o gwbl, yn ailysgrifennu popeth-neu-ddim ad hoc wedi’i yrru gan rwystredigaeth. Mae gwybodaeth yn byw mewn ychydig o bennau sy’n ymddeol heb ddim wedi’i ysgrifennu i lawr.
  • Lefel 2: Datblygu. Mae gan rai timau arolwg ac ymdeimlad bras o risg, ac mae ychydig o systemau etifeddol wedi’u lapio ag APIs ar gyfer mynediad. Mae patrymau cynyddrannol yn hysbys ond yn cael eu cymhwyso’n anwastad, ac mae meddylfryd yn dal i grwydro tuag at ailysgrifeniadau big-bang. Ceisir mudo data ond fe’i tanamcangyfrifir, ac mae arfer yn amrywio’n eang o dîm i dîm.
  • Lefel 3: Safoni. Blaenoriaethir systemau yn ôl risg a gwerth yn erbyn dull wedi’i ddogfennu, ar draws y sefydliad. Y patrymau cynyddrannol (strangler fig, branch-by-abstraction) yw’r rhagosodiad gorfodedig, ac mae pob moderneiddio’n dilyn llyfr chwarae safonol. Mae mudo data’n ymdrech gynlluniedig, wedi’i chysoni gyda rhedeg deuol cyn trosi, ac mae dal gwybodaeth a phrofion nodweddu’n arfer gofynnol yn hytrach na dewisol.
  • Lefel 4: Rheoli. Mae moderneiddio’n cael ei fesur a’i reoli gyda data. Mae gan yr ystâd linellau sylfaen: nifer y cynhalwyr a gorwel ymddeol fesul system, sylw profion nodweddu, cyfraddau pasio cysoni mudo, cyfrifon anghysondeb rhedeg deuol, a gwerth wedi’i gyflenwi fesul cynnydd, i gyd wedi’u holrhain yn erbyn targedau. Gwneir penderfyniadau stiwardio-neu-ddisodli a galwadau mynd neu beidio-â-mynd ar drosi ar sail y dystiolaeth hon, ac mae system sy’n llithro heibio ei throthwy risg gwybodaeth yn sbarduno gweithredu yn hytrach nag aros am argyfwng.
  • Lefel 5: Cydgysylltu. Mae moderneiddio’n barhaus, wedi’i integreiddio â chynllunio busnes a risg, ac yn addasol. Mae’r portffolio’n cael ei ailgydbwyso yn erbyn llwybr risg (yn enwedig risg gwybodaeth) wrth iddo newid, mae disodli cynyddrannol yn arferol ac yn ddi-ddrama, mae pob cynnydd yn cyflenwi gwerth ac yn wrthdroadwy, ac mae’r sefydliad yn llywio’r cyflymder yn fwriadus. Mae gwersi o bob mudiad yn bwydo’n ôl i mewn i’r llyfr chwarae a rennir fel bod yr ystâd gyfan yn gwella dros amser.

Syniadau ar gyfer trafodaeth

  1. Ar gyfer eich system etifeddol fwyaf critigol, faint o bobl sy’n dal i allu ei chynnal, a pha mor agos ydynt at adael?
  2. Ble rydych chi’n cael eich temtio gan ailysgrifennu big-bang, a pha werth y gallai dull cynyddrannol ei gyflenwi yn y tri mis cyntaf yn lle hynny?
  3. Pa mor dda mae’r rheolau busnes yn eich systemau hynaf wedi’u dogfennu, a beth sy’n digwydd iddynt os caiff y cod ei ddisodli?
  4. A ydych chi wedi proffilio’r data y byddai angen i chi ei fudo, ac a wyddoch chi pa mor fudr a chymhleth ydyw mewn gwirionedd?
  5. Pa systemau hen-ond-sefydlog rydych chi’n treulio egni moderneiddio arnynt y gallech chi eu gadael ar eu pen eu hunain yn ddiogel?
  6. A allech chi redeg eich system newydd ochr yn ochr â’r hen un a phrofi eu bod yn cytuno cyn trosi?

Prif negeseuon

  • Mae etifeddol yn golygu gwerthfawr a sylfaenol; parchwch a deallwch system cyn i chi ei newid.
  • Moderneiddiwch yn gynyddrannol gyda’r strangler fig a branch-by-abstraction, gan gyflenwi gwerth yn barhaus a chadw pob newid yn fach ac yn wrthdroadwy.
  • Trinwch yr ailysgrifennu big-bang fel y modd methiant diofyn; cadwch ef ar gyfer platfformau gwirioneddol anghynaladwy a hyd yn oed wedyn dadelfennwch ef.
  • Blaenoriaethwch yn ôl risg a gwerth (yn enwedig risg gwybodaeth), nid oedran; mae rhai hen systemau orau’n cael eu stiwardio, nid eu disodli.
  • Mudo data a rhedeg deuol yw calon yr ymdrech; proffiliwch, cysonwch, rhedwch ochr yn ochr, a chadwch ddychwelyd.
  • Y achos busnes cryfaf yw dewisoldeb: mae moderneiddio cynyddrannol yn trosi un bet fawr, risgus yn nifer o rai bach, sy’n dychwelyd gwerth.

Cyfeiriadau a darllen pellach

  • Michael Feathers, Working Effectively with Legacy Code
  • Martin Fowler, “StranglerFigApplication” and “BranchByAbstraction”
  • Sam Newman, Monolith to Microservices
  • Nicholas Carr / astudiaethau diwydiant ar ddibyniaeth prif ffrâm a COBOL (cyd-destun ar raddfa ystadau etifeddol)
  • 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 (tystiolaeth ar gyfraddau methiant prosiectau mawr ac ailysgrifennu)