Forside

Conway's lov og dens implikationer

Conway's lov siger at organisationer uvægerligt vil producere systemer, der afspejler kommunikationsstrukturerne i organisationen. D.v.s. at hvis man har to teams i organisationen, der hver er ansvarlig for en del af organisationens samlede system, så kan man forudsige hvor meget de to delsystemer vil kommunikere ved at kigge på hvor meget de to teams kommunikerer. Hvis de to teams kommunikerer meget, vil delsystemerne også kommunikere meget. Hvis de to teams ikke kommunikerer særligt meget, vil de to delsystemer heller ikke kommunikere særligt meget.

Det er især når to teams ikke kommunikerer særligt meget, men systemarkitekturen siger at delsystemerne burde kommunikere meget at man lægger mærke til Conway's lov. Så vil man se de to teams finde på forskellige måder at undgå at lade de to delsystemer kommunikere. Måske hører man begrundelser som "det er så besværligt at koordinere opgaver med dem" eller lignende. Og man vil typisk se at den kommunikation der er mellem de to delsystemer bliver lavet på en måde der minimerer behovet for kommunikation og koordinering. Fx dropper man at anvende typestærke kontrakter og anvender i stedet XML eller JSON uden at lægge sig fast på en kontrakt.

Ved at tage Conway's lov med i overvejelserne når man designer sine systemer, kan man bedre få systemer og organisation til at hænge sammen.

Hvis man vil imødegå utilsigtede problemer som følge af Conway's lov, er man nødt til at sørge for at systemarkitekturen og organisationen hænger sammen. Det kan man gøre på to måder. Enten kan man tage udgangspunkt i systemarkitekturen og indrette organisationen efter den. Eller man kan lave det, der kaldes en 'omvendt Conway' og tilpasse sin systemarkitektur til den eksisterende organisation. Man kan selvfølgelig også kombinere de to.

Som arkitekt vil jeg som regel anbefale at man tager udgangspunkt i systemarkitekturen. Men typisk møder man stor modstand, hvis man foreslår at ændre organisationen. Ofte er den eneste reelle mulighed at tilpasse arkitekturen til organisationen. Hvis det hverken er muligt at ændre organisationen eller lave en god arkitektur der passer til organisationen, må man have Conway's lov in mente, så man kan forudse hvor der kan opstå problemer i samspillet mellem organisation og arkitektur.

Automatisk test af PL/1 moduler

Når man går i gang med automatisk test første gang, er det ofte noget man laver oven på et system, der ikke er konstrueret med henblik på automatisk test. Det har nogle svagheder, der hurtigt gør at man begynder at tvivle på om automatisk test er vejen frem.

Man opdager hurtigt at det er svært at lave en stabil testcase, man kan køre igen og igen. Måske ændrer en kollega i et modul man kalder. Måske er der nogen der retter i databasen. Resultatet er, at ens testcase ikke længere giver det resultat man forventer og man skal rette testcasen til.

Læs mere: Automatisk test af PL/1 moduler

SOLID og host-udvikling

Igennem de seneste år har SOLID pricipperne vundet frem inden for objekt-orienteret software-design. Den primære grund til dette er, at principperne fører til software, der er mere fleksibel, nemmere at vedligeholde og udvide.

Men hvad gør man, når man udvikler på host i et proceduralt sprog? Kan man så ikke bruge SOLID principperne? Jo, det kan man godt - i en vis grad. I denne artikel vil jeg se hvilke af pricipperne man kan bruge og hvilke, der er sværere at overføre til en procedural verden.

Læs mere: SOLID og host-udvikling

Forretningsviden contra IT-viden

Når man som konsulent starter på en ny kontrakt, er man blevet vurderet inden man starter. Vurderingen foregår typisk ved at man fremsender et CV med de færdigheder man har og derefter bliver man indkaldt til en samtale. Det ligner forløbet ved en fastansættelse.

Som regel bliver der lagt rigtig stor vægt på, hvilke IT-mæssige færdigheder man har og knap så stor vægt på, hvilke forretningsmæssige områder, man kender til. Og det er lidt mærkeligt, for det er min erfaring at det er meget hurtigere at sætte sig ind i et nyt programmeringssprog end i et nyt forretningsområde.

Læs mere: Forretningsviden contra IT-viden

Om kilianconsult

Kilianconsult udvikler IT-systemer af høj kvalitet på .NET platformen, mainframe og mobil-platforme. En meget bred erfaring, skabt igennem mere end 30 år i IT-branchen, sikrer solide løsninger.

Curriculum vitae

quote2.png