Breaking changes a ich komunikácia

Séria: Ako písať dokumentáciu a manuály v IT projekte

Reálny problém z praxe

Release vyšiel večer.
Ráno začali prichádzať incidenty.

  • Integrácia prestala fungovať.
  • Import odmietal staré dáta.
  • Používatelia sa nevedeli prihlásiť.
  • Support nevedel, čo sa deje.

Vývoj pritom tvrdil:

„Veď to bolo v release notes.“

A v release notes bola jedna veta:

  • „Aktualizované API.“
  • „Optimalizovaná validácia.“
  • „Zlepšené bezpečnostné mechanizmy.“

Lenže nikto nepovedal, že:

  • staré endpointy už nefungujú,
  • pribudlo nové povinné pole,
  • zmenila sa autentifikácia,
  • starý formát dát už systém neakceptuje,
  • a hlavne:
  • čo je po novom správny spôsob použitia systému.

To už nie je bežná zmena.
To je breaking change.

Čo sa tu vlastne pokazilo (analýza systému)

Mnohé tímy nerozlišujú medzi:

  • bežnou zmenou,
  • a zmenou, ktorá mení správanie systému smerom navonok.

Breaking change znamená:

Po aktualizácii môže prestať fungovať niečo, čo predtým fungovalo.

To môže byť:

  • API,
  • export,
  • import,
  • autentifikácia,
  • workflow,
  • databázová štruktúra,
  • konfigurácia,
  • oprávnenia,
  • integrácia.

Problém je, že tímy často komunikujú breaking changes príliš neurčito.

Alebo ešte horšie:
nekomunikujú ich vôbec.

Typická veta:

  • „Zlepšené zabezpečenie.“

Reálny dopad:

  • staré tokeny prestali fungovať,
  • klient musí zmeniť konfiguráciu,
  • integrácia sa musí prerobiť.

A často chýba ešte jedna kritická informácia:

  • čo je nový podporovaný spôsob.

To nie je detail.
To je prevádzkové riziko.

Skutočné náklady (čas, chaos, riziko)

Zle komunikované breaking changes spôsobujú:

  • incidenty po release,
  • nefunkčné integrácie,
  • výpadky prevádzky,
  • paniku na supporte,
  • konflikty s klientom,
  • zbytočné bug reporty,
  • rollbacky.

Najhoršie je, že veľká časť týchto problémov nevzniká samotnou zmenou.

Vzniká tým, že:
ľudia o zmene nevedeli alebo nerozumeli jej dopadu.

Typický problém vo firmách:

Vývoj považuje zmenu za „technický detail“.
Ale support, tester alebo klient ju vníma ako kritický zásah do systému.

Minimálny model riešenia

Každá breaking change by mala obsahovať minimálne:

  • čo sa zmenilo,
  • koho sa zmena týka,
  • čo prestane fungovať,
  • čo je po novom podporované,
  • odkedy zmena platí,
  • čo treba upraviť,
  • či existuje prechodné obdobie,
  • či existuje workaround.

Zlá formulácia:

  • „Aktualizované API.“

Použiteľná formulácia:

  • „Endpoint /orders/create od verzie 4.2 vyžaduje povinný parameter currency. Volania bez parametra budú odmietnuté HTTP 400.“

Zlá formulácia:

  • „Zvýšené bezpečnostné štandardy.“

Použiteľná formulácia:

  • „Od verzie 5.0 systém nepodporuje TLS 1.0 a TLS 1.1. Podporované sú TLS 1.2 a TLS 1.3.“

Ešte lepšia formulácia:

  • „Od verzie 5.0 systém nepodporuje TLS 1.0 a TLS 1.1. Integrácie je potrebné aktualizovať na TLS 1.2 alebo TLS 1.3.“

To sú informácie, podľa ktorých:

  • admin vie pripraviť upgrade,
  • tester vie pripraviť retest,
  • support vie reagovať na incident,
  • klient vie upraviť integráciu.

Praktické pravidlo

Breaking change nemá len povedať:

  • čo už nefunguje.

Má vysvetliť:

  • čo funguje po novom,
  • a čo treba zmeniť.

Ak používateľ po release zistí breaking change skôr než z release notes, komunikácia zlyhala.

Prepojenie na kvalitu a workflow

Breaking changes nemajú vzniknúť až pri písaní release notes.

Mali by byť označené už:

  • v user story,
  • v špecifikácii,
  • v taskoch,
  • v API dokumentácii,
  • v Definition of Done.

Tím by mal vedieť:

  • ktoré zmeny sú rizikové,
  • ktoré vyžadujú migráciu,
  • ktoré vyžadujú komunikáciu klientovi,
  • ktoré vyžadujú prechodné obdobie.

Veľa firiem rieši breaking changes až po incidente.
To už je neskoro.

Dobrý proces robí opak:
identifikuje rizikové zmeny ešte pred release.

Krátke zhrnutie

Breaking change nie je technický detail.
Je to zmena, ktorá môže zastaviť prevádzku, integráciu alebo workflow používateľa.

Dobrá komunikácia breaking changes:

  • znižuje chaos po release,
  • chráni support,
  • pomáha testerom,
  • znižuje počet incidentov,
  • znižuje závislosť na senioroch.

A hlavne:
neopisuje len starý svet, ktorý prestal fungovať.
Opisuje aj nový spôsob práce so systémom.

Ak release notes obsahujú len vetu:

  • „vylepšenia a opravy“,

firma pravdepodobne nekomunikuje zmeny, ale skrýva ich.

Pridajte Komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

Návrat hore