Uudistuksia, joilla ei ole varaa epäonnistua
Järjestelmä pyörittää yhä liiketoimintaa, kukaan sen kirjoittaneista ei ole enää talossa, ja kertarysäyksellä tehtävä uudelleenkirjoitus on veto, jota et pysty kattamaan. Tämä on työtä, jossa olen terävimmilläni.
Vanhan järjestelmän kohdalla ensimmäinen vaisto on kirjoittaa se uusiksi. Vaisto on lähes aina väärä: vanhaan järjestelmään on koodattu vuosien päätökset, joita kukaan ei kirjannut ylös, ja uudelleenkirjoitus heittää ne kaikki kerralla pois — ja löytää ne sitten uudelleen tuotannosta.
Siksi en aloita muuttamalla mitään. Aloitan mittaamalla. Yhdessä uudistuksessa yksittäinen sivu teki 3 982 tietokantakyselyä pyyntöä kohden; nyt se tekee 52. Luku löydettiin mittaamalla, ei arvaamalla — siksi myös infrastruktuurilasku laski sen mukana.
Toisessa tapauksessa — kolme pääversiota jäljessä, liidiputki täydessä käytössä — päivitys vietiin Laravel 5:stä 8:aan paikan päällä, vaiheittain ja järjestelmää pysäyttämättä.
- →Mittaus ensin — lähtötaso ennen kuin mitään muutetaan
- →Vaiheittainen siirtymä, ei kertarysäystä
- →Karakterisointitestit sen ympärille, mikä ei saa rikkoutua
Onko jokin jumissa?
Uusi järjestelmä, uudistus tai tekoälyn lisääminen olemassa olevaan — katson asian läpi ja kerron rehellisen näkemykseni.