Suorituskyvyn optimointi ei ole kertaluonteinen projekti. Suorituskyky on jatkuvaa työtä.
Työnkulku tarkoittaa: tiimi käy suorituskykydatan läpi viikoittain. Tiimi keskustelee suorituskyvystä päivittäisissä palavereissa. Tiimi ottaa suorituskyvyn huomioon koodia kirjoittaessaan. Tiimi juhlii suorituskyvyn parannuksia.
Ilman työnkulkua: suorituskyky heikkenee ajan myötä. Tiimi ei mieti suorituskykyä, ennen kuin sivusto on rikki.
Työnkulun kanssa: suorituskyky paranee ajan myötä. Tiimi rakentaa suorituskykykulttuuria. Suorituskykyä arvostetaan.
Viikoittainen suorituskykyrutiini
Joka maanantaiaamu: tiimi käy läpi suorituskykyraportin.
Raportti näyttää: mikä parani viime viikolla, mikä heikkeni viime viikolla ja mihin pitää kiinnittää huomiota tällä viikolla.
Tiimin keskustelu: miksi kassasivun LCP heikkeni? Johtuuko se uudesta koodista? Pitääkö asiaa selvittää?
Lopputulos: toimenpiteet tunnistetaan. Suorituskyvyn parannukset lisätään sprinttiin.
Esimerkki viikoittaisesta rutiinista:
- Maanantai klo 10: suorituskykykatsaus
- Mittarien läpikäynti: etusivun LCP parani 0,2 sekuntia (hyvä), tuotesivun INP heikkeni 50 millisekuntia (selvitettävä)
- Syyanalyysi: tuotesivulle otettiin käyttöön uusi ominaisuus (suosittelumoottori). Ominaisuus lisäsi JavaScriptiä, mikä kasvatti INP:tä.
- Toimenpiteet: lykkää suosittelumoottorin JavaScriptin latausta, optimoi ominaisuuden koodi
- Vastuuhenkilö: korjaamaan nimetty kehittäjä
- Määräaika: julkaisu keskiviikkona
Suorituskyvyn liittäminen kehitystyön työnkulkuun
Ennen ominaisuuden julkaisua: kehittäjä mittaa sen vaikutuksen suorituskykyyn.
Ominaisuus lisää toiminnallisuutta. Ominaisuus lisää myös koodia. Koodi kasvattaa pakettikokoa. Isompi paketti voi heikentää suorituskykyä.
Viitekehys: suorituskykybudjetti. Ominaisuus ei saa ylittää budjettia.
Esimerkki: uusi kassasivun ominaisuus. Budjetti: lisää JavaScript-pakettiin enintään 20 kilotavua. Kehittäjä toteuttaa ominaisuuden. Ominaisuus lisää 25 kilotavua. Ominaisuus ylittää budjetin. Kehittäjän pitää optimoida: poistaa käyttämätön koodi, jakaa paketti, lykätä koodin latausta. Kehittäjä pienentää ominaisuuden 20 kilotavuun. Ominaisuus hyväksytään.
Käytännön esimerkki: tuotesuosittelumoottorin käyttöönotto
Ominaisuus: näytä tuotesivulla personoituja tuotesuosituksia.
Suorituskykybudjetti: lisää pakettiin enintään 50 kilotavua.
Ensimmäinen toteutus: 50 kilotavua. Budjetissa.
Testaus: mittaa LCP ja INP.
- LCP kasvaa kahdesta 2,3 sekuntiin (ei hyväksyttävä, ylittää budjetin)
- INP kasvaa 150:stä 300 millisekuntiin (ei hyväksyttävä, ylittää budjetin)
Kehittäjän optimointi: lataa suositukset vasta tarvittaessa ruudun alaosassa, lykkää suosituksia koskevan datan latausta siihen asti, kun sivu on interaktiivinen.
Uusi toteutus: koko pysyy samana, 50 kilotavua, mutta:
- LCP palaa kahteen sekuntiin (budjetin alla)
- INP palaa 170 millisekuntiin (budjetin alla)
Ominaisuus hyväksytään: suorituskykyvaatimukset täyttyvät.
Raportointi johdolle
Kuukausiraportti johdolle: suorituskyvyn trendit ja liiketoimintavaikutus.
Raportin rakenne:
- Suorituskykytavoitteet ja edistyminen
- Kilpailijavertailu (miten pärjäämme kilpailijoihin verrattuna)
- Liiketoimintavaikutus (suorituskyvyn parannuksilla ansaittu liikevaihto)
- Tuleva painopiste (mitä optimoimme seuraavaksi)
Esimerkki johtoryhmälle tehdystä kuukausiraportista:
- Tavoite: yhdeksällä kymmenestä käyttäjästä LCP alle 2,5 sekuntia
- Edistyminen: nyt kahdeksankymmentäseitsemän prosenttia (viime kuussa kahdeksankymmentäviisi prosenttia)
- Aikataulu: tavoite saavutetaan aikataulussa kahdessa kuukaudessa
- Kilpailuasema: kilpailijoiden mediaani-LCP on kaksi sekuntia, meidän LCP:mme on kaksi sekuntia (mediaanissa, kilpailukykyinen)
- Liiketoimintavaikutus: viime kuun suorituskyvyn parannukset nostivat kassan läpiviennin onnistumista 0,5 prosentilla. Sadalle tuhannelle kuukausittaiselle kävijälle se tarkoittaa viittäsataa lisäkonversiota. Sadan dollarin tilausarvolla se on viisikymmentä tuhatta dollaria lisää liikevaihtoa kuukaudessa. Kuusisataa tuhatta dollaria vuodessa.
- Tuleva painopiste: mobiilin optimointi (mobiilin LCP on sekunnin hitaampi kuin tietokoneella, mahdollisuus parantaa mobiilin konversioprosenttia)
Rekrytointi suorituskykykulttuuria varten
Palkkaa kehittäjiä, jotka välittävät suorituskyvystä. Haastattelukysymys: kerro suorituskyvyn optimoinnista, jonka olet toteuttanut.
Palkkaa tuotepäälliköitä, jotka arvostavat suorituskykyä. Suorituskyky parantaa käyttökokemusta ja konversioprosenttia. Tuotepäälliköiden pitäisi tuntea liiketoimintavaikutus.
Rakenna tiimikulttuuri, jossa suorituskykyä arvostetaan. Juhli suorituskyvyn voittoja. Tunnusta kehittäjää, joka lyhensi LCP:tä 0,5 sekuntia.
Esimerkki: rekrytointi suorituskykykulttuuria varten.
Haastattelukysymys kehittäjäehdokkaalle: kuvaile tilannetta, jossa optimoit koodia suorituskyvyn vuoksi. Mikä ongelma oli? Miten mittasit parannuksen? Mikä oli liiketoimintavaikutus?
Hyvä vastaus: meillä oli hidas API-päätepiste, jonka vasteaika oli kaksi sekuntia. Käyttäjät valittivat hitaasta rekisteröitymisestä. Profiloin koodin ja löysin raskaan tietokantakyselyn. Lisäsin välimuistin. Vasteaika parani 200 millisekuntiin. Rekisteröitymisen valmistuminen kasvoi kahdella prosentilla. Viisikymmentä lisäasiakasta kuukaudessa. Kaksisataaviisikymmentä tuhatta dollaria lisää vuosittaista liikevaihtoa.
Vastaus osoittaa: tekninen ymmärrys (profilointi, välimuisti), mittaaminen (ennen ja jälkeen), liiketoiminta-ajattelu (vaikutus rekisteröitymiseen ja liikevaihtoon).
Palkkaa tämä kehittäjä. Hän ajattelee suorituskykyä ja liiketoimintaa.
Usein kysytyt kysymykset
Miten motivoimme tiimin priorisoimaan suorituskykyä?
Yhdistä suorituskyky liiketoiminnan mittareihin. Osoita, että yhden prosentin suorituskykyparannus tarkoittaa yhden prosentin konversion kasvua. Laske liikevaihtovaikutus. Näytä optimoinnin kustannus verrattuna saatuun liikevaihtoon. Kehittäjät välittävät vaikutuksesta. Suorituskyvyllä on mitattavissa oleva vaikutus. Kehittäjät priorisoivat sen. Rakenna tämä suoraan verkkosivustollesi WEMASY-sivustonrakentajalla.
Pitäisikö suorituskyvyn optimointi olla erillinen tiimi vai kaikkien tiimien tehtävä?
Kaikkien tiimien tehtävä. Jokaisen kehittäjän pitäisi ajatella suorituskykyä. Erillinen suorituskykytiimi on pullonkaula. Hajautettu vastuu on parempi. Jokainen kehittäjä vastaa oman koodinsa suorituskyvystä. Kehitysjohtaja pitää tiimin vastuussa.
Miten tasapainotamme uudet ominaisuudet ja suorituskyvyn optimoinnin?
Suorituskyky on ominaisuus. Uusi ominaisuus ja sen vaikutus suorituskykyyn muodostavat kokonaiskustannuksen. Budjetoi molemmille. Esimerkki: uusi ominaisuus vie yhden sprintin. Ominaisuuden suorituskykyoptimointi vie lisäksi 0,5 sprinttiä. Kokonaiskustannus on 1,5 sprinttiä. Varaa aikaa molemmille. Ominaisuus ja suorituskyky julkaistaan yhdessä.
Mitä jos johto ei välitä suorituskyvystä?
Osoita liiketoimintavaikutus. Yhden prosentin konversion parannus tarkoittaa viittäkymmentätuhatta dollaria kuukaudessa (tyypillisessä verkkokaupassa). Johto ymmärtää liikevaihdon. Suorituskyvyn parantaminen on liikevaihdon parantamista. Johto alkaa välittää.
Kuinka kauan suorituskykykulttuurin rakentaminen kestää?
Kolmesta kuuteen kuukautta. Ensimmäinen kuukausi: otetaan käyttöön mittarit ja mittaristo. Toinen kuukausi: viikoittaiset katsaukset alkavat, tiimin tietoisuus kasvaa. Kolmas kuukausi: tiimi alkaa ottaa suorituskyvyn huomioon koodissa. Kuuden kuukauden kohdalla: suorituskyky on osa tiimin perusluonnetta. Uudet kehittäjät oppivat suorituskykykulttuurin ensimmäisestä päivästä alkaen.
Miten suorituskykykulttuuri säilyy yrityksen kasvaessa?
Dokumentoi käytännöt. Perehdytä uudet kehittäjät suorituskykykulttuuriin. Ensimmäinen päivä: näytä suorituskykymittaristo. Ensimmäinen viikko: anna suorituskyvyn parannustehtävä. Ensimmäinen kuukausi: aseta suorituskykytavoite. Uudet kehittäjät oppivat kulttuurin. Kulttuuri säilyy.