Modellmönster: Ekonomisk redovisning – del 2: Posteringsregler

En viktig del av informationshanteringen i en verksamhet handlar om att följa hur pengar rör sig genom verksamheten och hur pengar intjänas och spenderas. I två artiklar går jag igenom mönster för ekonomisk redovisning. De mönster som jag tar upp har egentligen en bredare tillämpning än vad artikelrubriken säger. Överallt där man behöver hålla reda på tillgångar i olika poster som till exempel lagerhantering är det användbart att tänka i ”konton”, ”posteringar” och ”transaktioner”.

I den föregående artikeln, Ekonomisk redovisning – del 1: Konto och transaktioner, gick jag igenom sex mönster för konton och posteringar. I denna artikel presenterar jag sju mönster på hur man kan automatisera posteringar med hjälp av regler.

/Peter Tallungs, IRM, 2021-09-30

Mönster 1: Posteringsregel med faktor

Låt oss ta som exempel att varje gång pengar kommer in på ditt inkomstkonto lägger du 30 procent av beloppet på ditt skattekonto (som är ett minneskonto). Du kan då ha en Posteringsregel som gör detta automatiskt.

En posteringsregel är en regel som bevakar ett visst konto. När regeln upptäcker en postering till kontot så skapar regeln en annan postering till ett förutbestämt annat konto. Det konto som bevakas kallas Triggerkonto. Den händelse som ska trigga åtgärden, det vill säga i detta fall en postering till triggerkontot kallas Triggerhändelse. Det andra kontot som ska ta emot posteringen kallas Målkonto.

Om beloppet som ska posteras till målkontot är, som i detta fall, en procentsats av beloppet i triggerhändelsen, räcker det med att regeln uttrycks som en faktor.

Mönster 2: Posteringsregel med särskild beräkningsmetod


Om vi behöver mer flexibla regler för att beräkna vad som ska hända behöver varje regel ha sin egen beräkningsmetod.

Reversering av posteringar

Om vi har gjort en felaktig postering kan vi vanligen inte bara radera den, för den kan ha lett till en utförd betalning eller en skickad faktura. Vi får i stället ta bort effekterna av den felaktiga posteringen genom att göra en ny omvänd postering, det vill säga en identisk postering fast med omvänt tecken. Därför måste varje posteringsregel kunna beordras att göra en postering som är omvänd.

Automatiserade kontosystem

I en del kontosystem är samtliga transaktioner genererade av posteringsregler. Då har man särskilda inkonton där man registrerar initiala posteringar från världen utanför. Alla andra posteringar sker automatiskt genom triggning av posteringsregler. Därmed automatiseras en stor del av kontohanteringen. Då är transaktioner inte lika nödvändiga för att spåra vad som hänt, men det kan ändå vara bra att ha registrerade transaktioner. Det förenklar hanteringen av reglerna.

När ska posteringsreglerna exekveras?

Det finns olika tänkbara modeller som man kan tillämpa i ett kontosystem för när, var och hur posteringsregler exekveras i programkod. Varje modell har sina styrkor och svagheter.

Det kan ske direkt när händelsen inträffar (vilket kallas Eager Firing inom programmerarvärlden), vid bestämda tillfällen eller först när någon efterfrågar kontoställningen (vilket kallas Backward Chained Firing). Varje modell har styrkor och svagheter. Det handlar mest om prestanda, det vill säga den tid det tar att exekvera reglerna, samt om när vi vill hantera fel. Eager Firing låter oss få felen tidigt. De andra modellerna ger oss större valfrihet när vi vill hantera felen, men till priset av större komplexitet.

Mönster 3: En posteringsregel för en grupp av konton

Det är vanligare att en posteringsregel gäller för en grupp av konton än för ett enstaka konto. Vi kan hantera det på två sätt.

  1. Genom att införa ett regelplan i modellen med kontotyper till vilka vi kan knyta posteringsreglerna.
  2. Genom att lägga posteringsregeln på ett summakonto. Då aktiveras regeln när en postering görs till ett underkonto (eller till kontot självt om det kan ta emot posteringar.) Regelns målkonto kan också vara ett summakonto, men tolkningen av regeln kommer i så fall att skapa postering till lämpligt underkonto.

Mönster 4: Posteringsregler med separata metoder

Man kan behöva ha separata metoder för att beräkna belopp, bestämma målkonto med mera. Då kan man ha fördefinierade metoder för olika ändamål. En regel blir då sammansatt av ett antal fördefinierade metoder.

Mönster 5: Konteringspraxis


Om vi har många olika konton som sitter ihop i ett nätverk av posteringsregler blir det hela oöverskådligt.

Vi behöver ett sätt att bryta ner nätverket av regler i lagom stora bitar. Till exempel kan varje typ av kund ha en särskild faktureringsprocess, och därmed ett nätverk av konton och posteringsregler som skiljer sig lite grand från en annan typ av kund.

Ett särskilt nätverk av konton och posteringsregler är en Konteringspraxis. Konceptuellt är en konteringspraxis helt enkelt en specifik uppsättning konteringsregler.

Mönster 6: Orsak till en postering

Det är ofta viktigt att kunna spåra varför en viss postering har gjorts och varför den har den form den har. Till exempel om en kund ringer och frågar om en viss post på en faktura, så behöver vi kunna se vilka posteringar som ledde fram till posten och vilken regel som skapade transaktionen.

Detta mönster låter varje transaktion minnas vilken post,,,,eringsregel som skapade den och vilka posteringar som var argument till transaktionen.

Mönster 7: Konton för lagerhantering

Kontomodellen passar bra för lagerhantering.

Vi kan skapa ett ”tillgångskonto” för varje lagersaldo (Ett Lagersaldo är att ett visst antal av en viss vara finns på ett visst lager). När vi flyttar en vara från ett lager till ett annat skapar vi en Lagertransaktion. Vi kan också hantera kundordar som ”posteringar till utgiftskonton” och leverantörsordrar som ”posteringar till inkomstkonton”. Vi kan också ha ”summakonton” för alla varor av samma varugrupp i ett lager och för en viss lagervara totalt i alla lager, eller för orderstocken. 

Varifrån kommer dessa mönster?

Många mönster i denna artikel och den förra utgår från vad jag hittat i Martin Fowlers bok Analysis Patterns från 1997. Boken är en dold skatt vad gäller modellmönster för informationsmodellering. Martin Fowler skrev boken för programmerare, vilket jag tror är orsaken till att den är så gott som okänd bland informationsmodellerare. Fast den är inte särskilt känd bland programmerare heller. Hans modellmönster förtjänar att lyftas fram och komma till nytta. Jag vill på detta sätt bidra till detta.

Vilka är dina erfarenheter? Har du arbetat med något av dessa mönster eller liknande? Kanske har du andra mönster att dela med dig av?

/Peter Tallungs, IRM

Nästa artikel i serien publiceras torsdag 30 september. Vill du prenumerera på denna artikelserie? Registrera din mailadress här.

Boken om Vintergatan – ny som e-bok

Den engelska översättningen av boken om Vintergatan – din verksamhetskarta finns nu som e-bok på Amazon!

Missa inte chansen att köpa den för endast 5 USD (ordinarie pris 22 USD). Erbjudandet gäller till och med 15 oktober 2021. 

Du hittar boken här, eller gå till amazon.com och skriv ”The Milky Way Cecilia Norden” i sökfältet.

Har du kollegor och vänner som du tror kan ha nytta av den hyllade metoden och modellen Vintergatan? Tipsa dem så att de också kan få sitt exemplar av The Milky Way – Map, Navigate and Accelerate change till detta kampanjpris. Eller ge bort en e-bok som en gåva. 🌼

Köp den fysiska boken i vår webbshop.

Det är inte fiskarna som är poängen

…det är förmågan att se hur vi kan arbeta smartare

Vill du förbättra ert arbetssätt? Ta chansen att den 25:e november lära dig kartlägga, analysera och utveckla verksamhetens processer; för att hitta smartare sätt att arbeta på med syftet att öka värdet av det ni gör för era kunder. 

IRM har hittills gett drygt 1 500 personer förmågan att kartlägga och utveckla processer agilt utifrån kundens upplevelse. Kursen Processutvedckling ger dig en effektiv metod för hur du jobbar med processutveckling samt praktisk övning i hantverket (vilket innefattar en och annan processymbol i fiskliknande form). Kursen är bara 2 dagar kort, men ger dig kunskap som du kan ha nytta av hur många dagar som h.

Målen med kursen är att du som deltar ska kunna:

  • självständigt kartlägga din verksamhets processer både på övergripande och detaljerad nivå.
  • analysera processerna för att hitta förbättringsmöjligheter.
  • sätta processmål och mäta dem.
  • åstadkomma kundfokusering med hjälp av kundresor.

Lärarna som dagligen arbetar med verksamhets- och processutveckling, inom både privat och offentlig sektor, delar generöst med sig av sina erfarenheter under utbildningsdagarna.

Läs mer om kursen Processutveckling Vi levererar den i samarbete med Dfkompetens

Läs tidigare kursdeltagares omdömen

Modellmönster: Ekonomisk redovisning – del 1: Konto och transaktioner

En viktig del av informationshanteringen i en verksamhet handlar om att följa hur pengar rör sig genom verksamheten och hur pengar intjänas och spenderas. I två artiklar går jag igenom mönster för ekonomisk redovisning. De mönster som jag tar upp har egentligen en bredare tillämpning än vad artikelrubriken säger. Överallt där man behöver hålla reda på tillgångar i olika poster som till exempel lagerhantering är det användbart att tänka i ”konton”, ”posteringar” och ”transaktioner”.

Mönster 1: Konto och Postering

Den grundläggande idén bakom ekonomisk redovisning är att man har olika högar med pengar för olika syften, och att vi registrerar hur pengar flyttas mellan högarna. Vi kallar en sådan hög för Konto.

Det behöver inte handla om pengar. Vilka resurser som helst kan hanteras, och hanteras i olika verksamheter, på samma sätt, som till exempel lagervaror eller poäng av olika slag.

I de flesta sammanhang vill vi inte bara hålla reda på hur mycket det finns på kontot utan även varje förändring som påverkat innehållet.

Ett konto håller saker av värde – pengar eller gods.

Pengar, eller gods, kan endast läggas till eller tas bort genom att göra en Postering. Posteringarna utgör tillsammans en historik av alla förändringar på kontot. Beloppets tecken (plus eller minus) anger om posteringen är en debitering eller kreditering (insättning eller uttag).

Saldo, hur mycket det finns på kontot vid ett givet tillfälle, är en nettoeffekt av samtliga posteringar på kontot fram till den valda tidpunkten. Regeln innebär att saldot beräknas varje gång den efterfrågas. Det hindrar inte att föregående saldo lagras internt från gång till gång för att snabba upp beräkningen.

Med detta mönster kan man också se hur saldot har ändrats under en tidsperiod. Ett Kontoutdrag är en lista på samtliga posteringar som gjorts under en tidsperiod.

Lägg märke till att man vanligen håller reda på två tidpunkter för en postering. Den tidpunkten då posteringen gäller, samt tidpunkten då posteringen registrerades.

Det är ofta så att vi behöver veta både tidpunkten för en händelse i verkligheten och tidpunkten för vår kunskap om denna händelse.

Mönster 2: Transaktion

En kontoändring innebär vanligen att ett belopp flyttas från ett konto till ett annat. Det räcker oftast inte med att registrera att beloppet har kommit eller gått utan vi måste också hålla reda på varifrån och varthän.

En Transaktion länkar explicit ihop ett uttag från ett konto med en insättning på ett annat. Att två posteringar hör samman på detta sätt visar på en viktig bokföringsprincip. Pengar, eller gods, uppstår aldrig ur intet och de försvinner aldrig, de bara flyttas runt mellan olika konton.

I bokföringssystem strävar vi efter att få kontona balanserade, det vill säga att få saldo lika med noll vid en viss tidpunkt i affärscykeln (bokslutet).

Med hjälp av explicita transaktioner bygger vi in denna kontroll i själva strukturen. Det gör det lättare att hitta läckor i systemet.

Märk att jag satt en tvåa vid relationen från Transaktion till Postering, detta för att markera att en transaktion måste omfatta precis två posteringar, varken mer eller mindre. Fast man kan egentligen mycket väl tänka sig transaktioner som omfattar ett godtyckligt antal uttag och insättningar, fast alltid minst två, bara summan blir noll. I själva verket är den tvåvärda transaktionen endast ett specialfall av den flervärda.

Mönster 3: Transaktion utan explicita posteringar

I kontosystem med endast tvåvärda transaktioner behöver man egentligen inte en särskild entitet för posteringar, utan kan förenkla modellen enligt följande.


Mönster 4: Summakonto och detaljkonton

I kontosystem är det ofta användbart att gruppera konton till summakonton. Om jag till exempel har separata konton för olika utgifter så vill jag kanske gruppera vissa som personliga utgifter och andra som affärsutgifter.

Posteringar kan då endast göras mot detaljkonton. Ett summakonto har ändå transaktioner genom sina underkonton. Summakonton kan i sin tur grupperas i mer övergripande summakonton.

Mönster 5: Gruppering av konton utan
explicita summakonton

Det är vanligt att dela upp konton i två typer; summakonton och detaljkonton, men egentligen är det inte nödvändigt. I detta mönster kan alla konton ha underkonton.

Mönster 6: Minneskonto

Ibland behöver man reservera pengar för ett visst ändamål, till exempel skatt. Då kan man ha ett konto där man löpande registrerar hur mycket man reserverar, ett så kallat Minneskonto. Då vet jag hur mycket av de pengar jag har som jag verkligen kan disponera.

Observera att när jag reserverar pengar på ett minneskonto så flyttas inte pengar. Det är bara en notering om hur mycket jag är skyldig. På så sätt innehåller ett minneskonto pengar fast inte ”riktiga” pengar. Det innebär att dubbel bokföring inte är nödvändig, det vill säga att en postering till minneskontot inte behöver speglas av en postering från ett annat konto. Det går att öka skulden i skattekontot utan att minska tillgångarna någon annanstans.

Det finns två sätt att hantera detta:

  1. Skapa ett motkonto. På detta sätt blir principen om dubbel bokföring genomgående för alla konton.
  2. Undanta minneskonto från regeln om att en transaktion alltid ska balansera. Tvärtom måste det då finnas en regel som säger att transaktioner mot minneskonton inte får balansera. I annat fall läcker verkliga pengar till minneskontot!

Fortsättning i nästa artikel

I nästa artikel tar jag upp hur man kan styra posteringar med hjälp av posteringsregler. 

/Peter Tallungs, IRM

Nästa artikel i serien publiceras torsdag 30 september. Vill du prenumerera på denna artikelserie? Registrera din mailadress här.

Modellmönster: Produkt – del 2: Produktlivscykel och Leverantörsprodukt

En produkt har en livscykel. Den kan vara under utveckling, den kan vara öppen (att den finns tillgänglig) och den kan vara avslutad. Den kan också vara tillfälligt stängd, det vill säga suspenderad. Om vi ska kunna följa produkters beteende behöver vi veta vilka produkter vi har vid varje givet tillfälle. Därför behöver vi definiera en produktlivscykel. Den liknar i allt väsentligt den kundlivscykel jag beskrivit i tidigare artiklar.

Vi kan behöva hantera flera olika identiteter för samma produkt, till exempel då det gäller leverantörskedjor. Det beskrivs i mönstret Leverantörsprodukt.

Mönster 1: Produktlivscykel

En produkt har en livscykel. Det är viktigt att veta vilket tillstånd en produkt är i, då det bestämmer vad det går att göra med produkten i fråga. Man kan till exempel inte leverera en produkt som är under utveckling eller avvecklad. Ofta behöver man också registrera när livscykelhändelser inträffar för att kunna mäta och jämföra, till exempel hur länge produkter lever och hur många produkter som utvecklas men aldrig lanseras.

Det här är ett första försök till en livscykel för produkter i en verksamhet som både utvecklar och tillhandahåller produkter.

Vi inför ett supertillstånd

Det som utmärker ett tillstånd är att det bestämmer objektets beteende, det vill säga vad det går att göra med objektet. Att produkten är öppen innebär vanligen att man kan skapa produktindivider av den, det vill säga tillverka, tillhandahålla eller sälja exemplar av produkten (eller tjänsten).

Man inser då kanske att de andra två tillstånden har en viktig sak gemensamt. I båda fallen kan man inte skapa produktindivider. Ifall man ser detta som en grundläggande skillnad mellan produkterna i produktkatalogen, huruvida man kan tillhandahålla produkten till kunder eller ej, kan man tänka sig att man låter livscykeln avspegla detta tydligare.

Vi kan då bygga livscykeln kring två huvudsakliga tillstånd Öppen och Stängd, där stängd har olika undertillstånd, det vill säga specialfall. Det är egentligen samma modell, fast nu att vi har generaliserat tillstånden Under utveckling och Avslutad till att bli specialfall av tillståndet stängd.

Vi inför ett nytt subtillstånd

Låt oss säga att vi sedan kommer på att vi också behöver hålla reda på om produkten är tillfälligt avstängd eller inte. Det är ju ett subtillstånd, det vill säga ett specialfall av stängd. Då får vi följande modell.

Observera att livscykeln inte säger något om eventuella produktindivider. En produktindivid, det vill säga ett exemplar av en produkt, har sin egen livscykel.

Produktens livscykel säger inte ens något om det finns produktindivider eller inte. Både öppna och stängda produkter kan ha produktindivider, utom produkter under utveckling som ju rimligen inte kan ha någon produktindivid, såtillvida det inte är vidareutveckling.

Allt som jag här beskrivit om produktlivscykel är tillämpligt på livscykel för kunder, avtal med mera. Till exempel kan även kunder och avtal vara tillfälligt stängda. Denna bredd är typisk för mönster. Även om jag beskriver mönster för saker som kunder eller produkter har de nästan alltid en mycket bredare tillämpning. 

Mönster 2: Leverantörsprodukt

Om man är återförsäljare av produkter från olika leverantörer har man olika produktidentiteter att hålla reda på. Dels har vi vår egen produktkatalog, dels har vi de olika leverantörernas produktkataloger. Vi behöver vidare veta hur en produkt hos oss motsvarar en viss produkt hos en leverantör. En och samma produkt hos oss kan ha olika produktidentiteter hos olika leverantörer. Det är fallet där det är ett företag som specificerar produkterna men som använder sig av olika leverantörer vilka levererar enligt beställning.

Vi behöver då matcha ihop leverantörens produkt med den egna produkten i ett många-till-många-förhållande. Det kan kanske ändras över tid vilken underleverantör vi använder oss av för en viss produkt. Därför kan vi behöva sätta start- och slutdatum för matchningen.

Det är säkert ännu vanligare för komponenter, att ett företag bygger produkter av komponenter som de specificerar och låter olika underleverantörer tillverka och leverera till sig. Mönstret kan då tillämpas på komponenter i stället för produkter.

Kanske du har idéer om hur man kan tänka annorlunda, eller synpunkter på modellerna jag visar? Dela gärna med dig av dina tankar.

/Peter Tallungs, IRM 

Nästa artikel i serien publiceras torsdag 23 september. Vill du prenumerera på denna artikelserie? Registrera din mailadress här.

Modellmönster: Produkt – del 1: Produktstrukturer

De flesta verksamheter erbjuder sina kunder produkter eller tjänster av något slag. Runt produkter och tjänster finns det många företeelser som behöver modelleras, definieras och benämnas. Ämnesområdet Produkt är i en del verksamheter så centralt att det finns informationsmodellerare som kallar sig för produktmodellerare. Jag går i denna, och följande, artikel igenom några centrala begrepp och mönster inom produktområdet.

Produkt eller tjänst?

Termen ”produkt” kan stå för olika saker. Det gemensamma är att det är något som en verksamhet kan tillhandahålla till sina kunder. I den ursprungliga betydelsen är det något materiellt, till skillnad från tjänst som är den immateriella motsvarigheten. Men det har blivit vanligt att man benämner även tjänster som produkter. Och eftersom de mönster jag kommer presenterar här fungerar lika bra för materiella som immateriella produkter så gör jag här ingen skillnad.

Verksamheter har ofta problem med sin produktflora

Jag upplever att man i många verksamheter har problem med en oöverskådlig produktflora och svårt att ens komma igång med att bringa ordning. Man har ofta stupat redan på tröskeln, redan när man försökt bestämma vad en ”produkt” är. Kanske har man ett par tusen saker registrerade som man säljer, men frågan blir då: Är det verkligen produkter? En del varor man erbjuder är kanske paketeringar av flera olika produkter. Och andra företeelser man hanterar är kanske bara komponenter som man sätter ihop produkter av. Många produkter är så lika varandra så man kanske borde se dem som varianter av en och samma produkt. Och några är små förbättringar av tidigare produkter, så man kanske borde se dem som versioner av en och samma produkt. Hur kan man bestämma vad som är vad, och hur ska man hålla reda på det?

Det brukar bli många åsikter, och jag har upplevt att många verksamheter inte har kunnat reda ut detta. Man har helt enkelt gett upp alla försök att bringa ordning i produktfloran, med resultatet att det blivit svårt att analysera och följa produkters beteenden över tid.

Men det är egentligen inte så svårt. Vi bör bara vässa våra analysverktyg en smula och gå metodiskt tillväga, begrepp för begrepp. Där har vi informationsarkitekter en viktig uppgift att fylla.

Om begreppet ”produkt”

Ett fruktbart sätt att se på begreppet produkt är att det är någonting man kan erbjuda kunder som en enhet.

”Kan erbjuda” är viktigt för det är en produkt, även om det är något man ännu inte har erbjudit någon kund. Eller av olika omständigheter aldrig kommer att erbjuda en kund.

Jag vill inte skriva ”sälja” för jag tycker inte att det är någon egentlig skillnad i avseendet om eller hur vi får ersättning för det vi erbjuder. En produkt kan vara helt gratis, det är likafullt en produkt.

”Som en enhet” är viktigt, ty mycket av det vi kan erbjuda kan vi inte erbjuda i sig självt utan bara som en komponent av något annat. Om jag säljer bilar så erbjuder jag kanske röd lack. Men inte som en självständig enhet. Du kan inte köpa röd lack av mig utan att den sitter på en bil. Du kan bara få röd lack som en komponent till bilen du köper. Men jag vill ju kanske ändå kunna följa upp hur röd lack säljer.

Det betyder inte att jag alltid måste sälja en produkt som en egen enhet. Jag kan paketera flera produkter så att de tillsammans blir en paketering. Du kanske kan köpa ett paket av mig med en isskrapa plus rattmuff. Det avgörande för om det är en produkt är att jag kan erbjuda den för sig själv.

Men ”produkt” är långt ifrån det enda begreppet vi behöver definiera. Låt oss gå vidare. Det har för övrigt ingen betydelse om man benämner produkt för ”artikel” eller ”vara”. Frågeställningarna och lösningarna blir precis desamma.

Mönster 1: Produktindivid

Vi behöver begreppsmässigt skilja de individuella exemplaren av en produkt från det som vi i förra stycket kallade för produkt. Ett namn som förekommer är ”produktindivid”, ”produktförekomst”, ”produktinstans” eller ”produktexemplar”.

Det kan finnas noll, en eller flera produktindivider av en och samma produkt. En produktindivid är alltid en individ av en viss produkt och har ett existentiellt beroende till denna, som jag uttrycker med en romb i änden på relationslinjen. Det uttrycker att produktindividen inte kan existera oberoende av sin produkt och att den heller aldrig kan ändras så den blir en individ av en annan produkt.

Produkt ligger i ett regelplan i förhållande till produktindivid, vilket betyder att när vi lägger upp en ny produkt kan det i detta sammanhang ses som en konfigurering av verksamheten. Vi bestämmer vad vi kan erbjuda. Det har inte hänt något operativt bara för att vi lägger upp en ny produkt, vi har inte producerat något, det betyder bara att vi bestämt att det finns ett visst erbjudande. Det är inte förrän det skapas ett exemplar av den produkten, en produktindivid, som det händer något operativt, som någon form av produktion har skett.

Resonemanget är precis lika för tjänster, det vill säga immateriella produkter. Ett försäkringsbolag erbjuder dig en hemförsäkring (produkt). Du tecknar en sådan, och avtalet får ett försäkringsnummer (en produktindivid). Den enda skillnaden är att en immateriell produkt (tjänst) uppstår genom någon form av performativ (utförande) akt.

Mönster 2: Produkttyp

Man delar vanligen in produkter efter olika kriterier i produkttyper, produktgrupper etcetera. Jag har inte tagit med det i diagrammet. Om vi fokuserar på själva produktadministrationen som en verksamhetsförmåga kommer man kanske vilja se entiteten produkt som tillhörande ett operativt plan. När man definierar en ny produkt innebär det just i detta sammanhang en operativ handling. Hur man delar in sin produktkatalog i produkttyper och produktgrupper innebär med det perspektivet att man konfigurerar verksamheten i fråga.

Med detta vill jag bara visa att vad man ser som operativt är inget absolut utan beror på sammanhanget. Att något sådant kan hända vid ett perspektivskifte kan kännas flyktigt och osäkert för en del. Men jag anser att det är viktigt att veta att olika kontext ger olika perspektiv och att vilken kontext man har kan därmed vara avgörande för modellen.   

Observera att jag här har valt att Produkt inte har ett existentiellt beroende till Produkttyp (det vill säga ingen romb i änden). Jag ser produkttyp som något som vanligen är en ganska flyktig indelning av produkter. Man kan ju ofta ändra typningen av produkter, det vill säga hur man delar in produkter i olika produkttyper, utan att det därför blir nya produkter. Man kan förstås hävda motsatsen för sin specifika verksamhet, men jag tror det är ovanligt. Det här är en bedömning jag gör, och det kan variera från verksamhet till verksamhet. Den kritiska frågan är: Kan en produkt ändra produkttyp och ändå ses som samma produkt. Om svaret är ja: ingen romb, om svaret är nej: romb.

Mönster 3: Produktvariant

En produkt kan finnas i flera varianter. Det kan vara olika färger eller andra smärre skillnader, men att man ändå vill se det som en och samma produkt. Vad som är olika produkter och vad som är flera varianter av samma produkt är ett val man gör i verksamheten.

Jag har varit med om att någon i en verksamhet har sagt att de egentligen har bara en produkt, men vi levererar den i många varianter, medan någon annan vill se det som att man har väldigt många produkter. Man behöver komma fram till hur man vill se det och vilka egenskaper som ska skilja för att man ska betrakta två artiklar som varianter av samma produkt. Det har mycket med marknadsföring och försäljning att göra, det vill säga hur man vill presentera varorna för kunderna.

Det finns alltid minst en variant av varje produkt. En produktindivid blir alltid en förekomst av en specifik produktvariant.

Mönster 4: Produktvarianttyp

Det finns ofta ett behov av att kategorisera även produktvarianterna. Om man säljer till exempel hushållsapparater kan det vara färger eller elanslutning. Det finns 14 olika standarder för elkontakter världen över. I vissa verksamheter har varje produkttyp sina egna varianttyper, i andra kan de vara gemensamma tvärs över hela produktkatalogen.

Mönster 5: Produktversion

Produkter förändras över tid. Man behöver hålla reda på vilken version en produktindivid är av. Inte bara produkter har versioner utan även produktvarianter. På så sätt får vi två parallella stråk i vår produktstruktur. En som är mer beständig över tid, och en annan som fångar hur en och samma produkt utvecklas över tiden.

Men hur bestämmer man när en viss vara ska ses som en ny produkt eller en ny version av en befintlig produkt? frågar sig den skarpsinnige. En riktlinje brukar vara att om ändringen är så pass framträdande att kunden uppfattar det som en ny produkt ska det vara en ny produkt annars är det en endast en ny version av den befintliga. Ett klädföretag jag jobbade för sa så här: ”Om en söm inte visar sig hålla i längden åtgärdar vi det. Då blir det en ny version. Kunden märker inte detta vid köpet, men vi vill veta vilken version en viss produktindivid är av när vi får klagomål. Om det visar sig att en ficka sitter fel placerad på en skjorta, och vi åtgärdar det, då blir det en ny produkt för kunden ser skillnaden.”

Mönster 6: Produktkomponent

Ofta utvecklar man komponenter som man kan använda för att bygga ihop olika produkter. En komponent kan definitionsmässigt inte säljas separat som en egen enhet, i så fall skulle den vara en produkt i sin egen rätt. Komponenter används inte bara i materiella produkter. Försäkringsbolag och finansiella verksamheter har ofta ett antal produktkomponenter vilka används till olika produkter.

Observera hur jag namnger och definierar den entitet som utgör många-till-många-relationen ”Produktkomponent i produktvariant”. Jag tycker att det är viktigt att vara strikt med att namnet, och definitionen avser en förekomst av entiteten. Det gör det lättare att förstå vad entiteten representerar. Man ser annars ofta att entiteten kallas Produktkonfiguration, men jag tycker att man bör vara konsekvent med att namnet på en entitet alltid ska vara namnet på en förekomst av entiteten. En förekomst av den entiteten är inte en fullständig konfiguration av en produkt utan endast en detalj av konfigurationen, nämligen just faktumet att en viss komponent används i en viss produktvariant.

Produktkomponenter har i likhet med produkter och produktvarianter sina typer, varianter och individer. Kanske behöver man också hålla reda på vilken version av en produktkomponent som ingår i en viss version av en produktvariant, och även vilken komponentindivid som ingår i vilken produktindivid.

Jag har i diagrammet tagit med följande:

  • Produktkonfigureringar på typnivå, det vill säga vilka typer av produktkomponenter som kan förekomma i vilka typer av produktvarianter.
  • Produktkonfigureringar på variantnivå, det vill säga vilka produktkomponenter som kan förekommer i vilka produkter.
  • Produktkonfigureringar på versionsnivå, det vill säga vilka versioner av komponenter som används i vilka versioner av produkter.
  • Produktkonfigureringar på individnivå, det vill säga vilket specifikt exemplar av en komponent som förekommer i vilket specifikt produktexemplar.

Lägg märke till den layout jag givit diagrammet, med entiteter i kolumner och rader. Själva strukturen och hur entiteterna är placerade i förhållande till varandra har stor betydelse då det skapar ordning och reda i begreppen och tankegången. Skillnaden mot om man placerar rutorna utan någon speciell tanke är helt avgörande för begripligheten.

Jag planerar att i senare artiklar ta upp sådant som gestaltning av modeller, hur man kan rita (och skriva) sina modeller på ett tydligare sätt så att de blir mer användbara.

/Peter Tallungs, IRM 

Nästa artikel i serien publiceras torsdag 9 september. Vill du prenumerera på denna artikelserie? Registrera din mailadress här.

Modellmönster: Kundlivscykel – del 2: Livscykelhändelser

Detta är andra delen av två om en kundlivscykel, där vi tittar närmare på hur vi kan hantera de händelser som innebär att kunden byter status.

Mönster 1: Livscykelhändelser för kund

För att analysera och förstå rörelser i kundstocken behöver vi tydligt definiera och namnge vilka händelser som kan inträffa i en kunds livscykel och som innebär att en kund byter status, till exempel övergår från prospekt till aktuell kund. Man kan mena olika saker med händelser. Här har jag valt att bara se själva övergången, från ett tillstånd till ett annat, som en händelse. Det vill säga att jag här inte inkluderar den bakomliggande orsaken som orsakade tillståndsförändringen. Det gör modellen renare och tydligare och därmed mer användbar för analyser. Den bakomliggande händelsen som är orsaken till tillståndsövergången hanteras i nästa mönster i artikeln.

Jag har försökt att rita in varje möjlig tillståndsövergång, och därmed livscykelhändelse, som en pil i diagrammet här till höger och ge händelsen ett tydligt namn. Jag tror att det finns många andra förslag.

Pilen längst ner i diagrammet innebär att vi någon gång rensar ut minnet av den avslutade kunden. Det är ju också en händelse, men inte en händelse som har med kundrelationen i sig att göra utan bara med informationshanteringen som avbildar händelsen i verkligheten. Därför har den händelsen inte något namn och finns då inte heller registrerad någonstans, eftersom informationen om kunden då är borttagen.  

Nu kan vi skapa en entitet, kallad Livscykelhändelse, som har de sju möjliga händelserna i diagrammet ovan som förekomster.

Därefter kan vi skapa en entitet, kallad Kunds inträffade livscykelhändelse, för att registrera de kundhändelser som inträffar för kunden.

Observera att de två högra entiteterna i diagrammet tillhör ett regelplan. De definierar reglerna som finns, det vill säga vilka kundstatusar och livscykelhändelser som kan förekomma. När något händer i regelplanet, till exempel att en ny kundstatus läggs till, konfigureras verksamheten, det vill säga att vi förändrar reglerna för vad som kan inträffa. När något händer i det operativa planet, till exempel att ett prospekt blir ny kund, så opererar verksamheten.  

Om rubriker i diagrammet: Jag brukar gruppera entiteter och sätta rubriker i diagram enligt ovan. Modellen blir tydligare om man på detta sätt separerar regelplanet från det operativa planet. Det blir då tydligt var man sätter regler och var saker och ting händer operativt.

Men märk att vad som är konfigurering och vad som är en operativ händelse beror på sammanhanget. I modellen i stort kan man mycket väl hävda att detta att ett prospekt blir till aktuell kund är en konfigurering. De verkliga operativa händelserna är med detta större perspektiv först när en kund köper något. Skillnaden mellan det lilla sammanhanget och det stora visar bara att världen är fraktal. Den distinktion som gjorts mellan de två planen är endast för just detta sammanhang. Om man zoomar ut till ett större sammanhang kan mycket väl en operativ händelse (en ny kund) skifta till att ses som en konfigurering.

Mönster 2: Händelseorsaker

Vi har hittills definierat en händelse som det faktum att en viss tillståndsövergång har skett, oberoende av orsaken. Särskilt då det gäller avveckling av en kund brukar det vara värdefullt att registrera orsaken. Orsaken kan till exempel vara något av följande:

  • Kunden har varit inaktiv under en lång period (som man bör bestämma längden på).
  • Kunden har upphört att existera (avliden, utflyttad från landet, avvecklat företag).
  • Kunden har sagt upp sig.
  • Kunden har misskött sig, till exempel inte reglerat sina skulder till oss.
  • Kunden är misstänkt för brottslig verksamhet, eller på andra sätt blivit ej önskvärd.

Men även orsakerna till att man vinner prospekt eller att en kund skapas utan att tidigare varit prospekt är intressant att studera, för att förstå hur vi vinner kunder över huvud taget. Man kan förstås se och hantera allt detta som olika händelser, men jag anser att modellen blir renare och lättare att förstå, hantera, förändra och använda i analyser om man separerar livscykelhändelsen, det vill säga själva tillståndsövergången från den bakomliggande händelsen, det vill säga orsaken till tillståndsövergången. Om vi lägger till livscykelhändelser och händelseorsaker till modellen får vi modellen nedan. Vi ser nu att övre delen av diagrammet handlar om nuläget, kunders aktuella status, och nedre delen om kundernas historik, det vill säga vilka händelser som inträffat och varför. Och som tidigare visar högra delen av modellen själva regelverket, vad som kan inträffa, och vänstra delen det som verkligen inträffat.     

Enkel uppföljning

Om vi kan registrera kundhändelser på detta vis, blir mycket av uppföljningen enkel.
Vi kan till exempel göra följande:

  • Veta exakt hur många (aktuella) kunder vi har just nu och vi varje givet tillfälle i historien.
  • Veta och analysera churn rate (kundomsättning), det vill säga hur många kunder som tillkommer och försvinner under varje tidsperiod, och orsakerna till detta (så långt vi har kunskapen).
  • Analysera hur länge vi behåller kunder.

Om vi som brukligt har delat in kunder efter geografi, segment och kategorier av olika slag kan vi analysera beteendet för olika grupper av kunder enligt ovan utefter olika grupptillhörighet. Det finns då ingen ände på de analyser som vi direkt kan göra.

Inte bara kunder har en livscykel

Dessa modellmönster är användbara inte bara för kunder utan för alla företeelser vars livscykel man vill kunna analysera. Särskilt vanligt är det för produkter. Men även produktindivider, avtal och konton har ofta livscykler man vill hålla reda på.

Inte bara livscykler utan även andra cykler

Jag brukar kalla de övergripande tillstånden och händelserna i en företeelses liv för livscykel, men det finns ofta andra parallella förlopp som är värda att följa. För kunder kan det ofta vara att vi vill veta om de är i skuld eller inte, och händelsen att de hamnar i skuld och händelsen att vi aviserar skulden och när de reglerar skulden. På så sätt kan vi mäta hur lång tid det går, i allmänhet, innan betalning sker och vilka kategorier av kunder som är särskilt sena med mera.

Möjligheterna är stora. Vi kan med enkla grepp få kontroll på det dynamiska flödet i våra verksamheter. Det enda som behövs är en tydlig och genomtänkt struktur för tillstånd, händelser och händelseorsaker.

Kommentera gärna. Berätta hur du använder livscykler, händelser och händelseorsaker för att få koll på flödet i din verksamhet.  

Vad vi nu kan göra

Om man skapar en gemensam modell på detta sätt, i till exempel ett gemensamt Data Warehouse, och låter de olika kundsystemen rapportera enligt detta så får man på ett ganska enkelt sätt helt nya möjligheter. Den stora fördelen med detta är att vi inte behöver bygga om alla källsystem innan vi kan få gemensamma begrepp. Översättningen från de lokala begreppen görs där det finns bäst förutsättningar, det vill säga i de team som hanterar respektive källsystem. Alltså en pushmodell där den gemensamma modellen blir det semantiska formatet i kontraktet de måste rapportera enligt.

Det är en stor skillnad mot hur det vanligtvis är, det vill säga att man har flera olika system med olika, och vanligen oklara definitioner, och ingen gemensam modell. Analytiker får sitta och försöka tolka och pussla ihop data från olika system. Beroende på vem som tar fram rapporten blir resultaten olika. Jag får ofta höra från ledningar: ”Om jag ber om en viss rapport blir resultatet olika beroende på vem som tar fram den, och alla svar är sanna, fast på olika sätt och oklart hur.” Osäkerheten och bristande jämförbarhet är således ett problem. Ett annat problem är tidsåtgången och arbetsbelastningen. I en bank tog det analytikerna hela månaden att ta fram månadsrapporten. De hade därmed inte någon tid alls att göra det de ville göra och var bra på, att analysera resultatet och dra lärdom. Efter att vi implementerade en gemensam modell enligt ovan kunde de ta fram månadsrapporten på några sekunder. Det är svårt att tänka sig något annat vi som informationsarkitekter kan göra som ger större förändring på lika enkelt sätt.

Som vanligt skulle jag uppskatta om du ville kommentera detta. Kanske du har idéer om hur man kan tänka annorlunda, eller synpunkter på modellerna jag visar.

/Peter Tallungs, IRM 

Nästa artikel i serien publiceras torsdag 9 september. Vill du prenumerera på denna artikelserie? Registrera din mailadress här.