Brett erbjudande och hög IT-kompetens!
Genom ett långsiktigt partnerskap kan vi sätta långsiktiga mål vilket, enligt vår erfarenhet, leder till bäst resultat.
Att dokumentera system är svårt, ofta är dokumentation en blandning av dokument, wikisidor, ibland i form av ”arbetskort” i Jira/Trello/liknande, och ej nedskriven kunskap. Som systemutvecklare är jag ganska van att behöva undersöka specialfall i koden när någon frågar ”hur funkar det där?” eller ”varför blir det sådär”.
Hur kan vi göra dokumentationen tydligare?
Event Modeling är ett koncept/”verktyg” – en metod för att visualisera hur ett system ska fungera och fungerar, tänk att det är som en husritning där man kan se hur huset är tänkt att se ut och fungera.
Den största Nackdelen, liksom med all annan typ av dokumentation är att det tar tid från annat arbete, som att programmera. Men att kunna rita, diskutera, modellera och visualisera på en skrivtavla (whiteboard) innan kodande kan spara in tid i just programmeringen. Och när ritningen är där förändringar görs innan det byggs vidare eller görs ändringar kan vi snabbt ser hur systemet fungerar utan att läsa kod.
Några fördelar
Event Sourcing, relaterat till Event Modeling som till stor del är sprunget ur arbete med Event Sourcing – men det är inte ett måste att använda dem tillsammans.
Varför är det där ändrat? Har vi spårbarhet på det där?
Har du ibland undrat varför något i systemet hänt, eller haft behov av någon typ av spårbarhet med t ex loggning? Önskar du ibland att det gick att se hur en process i systemet rör sig över tid eller hur en användare arbetar i ett visst flöde, som t ex i en e-handel eller ett frågeformulär?
Hur kan vi få tillgång till händelser i systemet?
Event Sourcing är ett koncept/teknik för att lagra data där varje händelse sparas och nuläget för din data bygger på historiken – vilket betyder att spårbarheten i systemet till stor del är inbyggd.
Det är alltså inte ett nytt koncept, men många applikationer byggs än idag på ”traditionellt” vis där man uppdaterar data genom att skriva över det befintliga värdet (en stor anledningen är att datalagring kostar pengar, men idag inte lika mycket som förr i tiden).
Det är inget fel i sig och för viss typ av data finns inget behov av att se historiken, men i många system är man faktiskt intresserad av historiken utifrån olika behov – ibland uppkommer behoven som möjligheter när data är tillgängligt.
Några fördelar med Event Sourcing
I bilden nedan visas ett exempel på händelser (events) tillhörande en orders beställningsflöde. Vi ser sju händelser över tid och vid vilken tidpunkt de inträffade – den här typen av data gör det möjligt att spåra och agera på händelser i systemet;
ett exempel kan vara att vi vill följa upp en skapad order som inte blivit beställd eller annullerad inom en viss tid, kanske vill vi kontakta kunden, kanske har vi reserverat produkter under en period och vill släppa reservationen, kanske vill vi stänga ordern.
För ett exempel på Event Modeling med tillhörande kod och resultat från en orderprocess se denna artikel.
learning-tutorial-event-modeling-event-sourcing-eventuous-eventstoredb-mongodb/
Artikeln är riktad till systemutvecklare men kan vara intressant att titta på även för dig som inte skriver kod.
Se även Event Modeling för en mer ingående förklaring med exempel och dess bakgrund – https://eventmodeling.org/posts/what-is-event-modeling/
För mer om Event Sourcing finns det en uppsjö av artiklar och videos ”där ute”, här är några exempel för den nyfikne.
Genom ett långsiktigt partnerskap kan vi sätta långsiktiga mål vilket, enligt vår erfarenhet, leder till bäst resultat.