Fem råd till en ung systemarkitekt

Ungefär samtidigt som IASA kom ut med sin reviderade utgåva av IT-arkitektroller i Sverige så fick jag min första ”arkitekt-titel” att sätta i mitt CV. Äntligen var det jag som bestämde, jag som skulle få styra och ställa och få sätta mitt avtryck i de system som skulle tas fram. Äntligen skulle jag få ta rätt beslut från början och slippa alla dekret från arkitekter som inte förstod vår verklighet där uppe i sina vita torn.

Och givetvis gick jag på en hel hög med smällar redan de första åren och lärt mig massor. Det här är mina fem råd till den som vill bli systemarkitekt.

Jag har alltid varit en person som läser mycket och tar intryck av andra och det finns massor med böcker om systemarkitektur. Två av dem som fick mig att förstå djupet inom arkitekturen är 97 Things Every Software Architect Should Know (Richard Monson-Haefel) och Thinking in Systems (Donella H. Meadows). Det intressanta med de böckerna är hur de säger emot varandra och till och med säger emot sig själva i vissa stycken. Det var de här böckerna som fick mig att förstå att systemarkitektur till största delen inte är en teknisk roll utan mest handlar om ledarskap och kreativitet.

Så, baserat på mina erfarenheter som systemarkitekt har jag följande råd att ge:

Smutsa ner dig

Tänk dig att alla som är inblandade i projektet har fått nya, fina, gula gummistövlar. Som projektledare når leran på sin höjd upp över sulorna, den som är ansvarig för driften har lera upp till halva foten, dina utvecklare en aningens högre och dina testare kanske har smutsat ner en liten bit av skaften.

Själv har du lera till knäna, ena stöveln förlorade du för alltid i dyn och den andra är full med vatten. En bra arkitekt är inte rädd för att smutsa ner sig och göra det skitiga jobbet för att underlätta för resten av teamet. Vilken arkitekt har du helst? Den som pekar åt ett håll och säger ”gå ditåt” och skickar ut er rakt in i sankmarken eller den som kommer till er, lerig, blöt och full med blodiglar och säger ”nä, det där är inte rätt väg att gå”?

Förstärk rösterna för de som inte hörs

När Barack Obama tillträdde som president i USA var inte Vita Huset direkt den mest inkluderande arbetsplatsen för kvinnliga medarbetare. De fick erfara alla de klassiska problem en kvinna ställs inför på en mans-dominerad arbetsplats. Så de började förstärka varandras röster. De tog för vana att om en kvinnlig medarbetare sade något viktigt så upprepade de andra kvinnorna samma ståndpunkt och på så sätt kunde de göra alla uppmärksamma på var förslag och idéer verkligen kom ifrån.

Det här är en sådan enkel och konkret sak att göra att vem som helst i vilket team som helst kan göra det. Som arkitekt är har du auktoriteten och ansvaret att använda din egen röst för att förstärka vad de mer lågmälda säger. Det är också ett effektivt sätt att lyfta en person eller ett team. Mina största insikter och den bästa informationen om system och hur det fungerar har jag fått när jag tagit mig tid att lyssna på de som normalt inte är högljudda.

Håll dig själv ansvarig

Lagsporter är duktiga på att fostra spelare som tar ansvar för varandra och fostrar varandra genom att ta ansvar för sådana saker som tidshållning, positiv attityd till tränare och träning, uppmuntra lagkamrater och ansvara för att laget håller en hög lägstanivå.

Systemarkitektur och systemutveckling är i allra högsta grad en lagsport. Det gäller att skapa en positiv attityd till byggsystemen, release notes, testprocessen, operations och dokumentering.

Här är några av de knep jag använder mig av för att ta mitt ansvar och se till att andra tar sitt ansvar.

  • Se till att det du lovat blir klart i tid. Det är bättre att säga att du inte har tid än att försöka pressa in det i ett redan hektiskt schema.
  • Gör det du säger att du ska göra. (Lawsons law)
  • Hjälp andra och be om hjälp om du behöver det. Speciellt viktigt om du är på väg bryta mot föregående punkt.
  • Om det är stora, långa eller komplexa projekt, se till att du är närvarande så mycket som det behövs tills uppgiften är löst. I svåra och tekniska moment behöver teamen ha dig närvarande för att kunna fråga, ifrågasätta och eventuellt modifiera dina beslut.

Visualisera mera

Jag är inte direkt en Michelangelo och min handstil kräver ibland att man har mångårig erfarenhet som läkarsekreterare för att kunna tolka vad jag skrivit. Lyckligtvis finns online-verktyg som draw.io och visual-paradigm.com som gör det lättare att rita snygga diagram av olika slag.

Om jag inte kan visualisera det jag tänker; komponenter, beroenden, dataflöden, interaktioner; så har jag helt enkelt inte tänkt igenom allt tillräckligt. Om det är besvärligt för mig att rita och visualisera så är det ännu jobbigare att implementera. Och om du inte kan beskriva ditt system så har du ingen arkitektur.

Arkitektur är en resa

Att bygga system är som att resa. En av arkitektens uppgifter är att planera hur man ska ta sig från punkt A till punkt B. Men det gäller att komma ihåg att du ritar en karta och inte bygger en tunnel. Vägen fram till ”den rätta” arkitekturen går via återvändsgränder, skumpiga bussfärder upp i bergen, in på små marknader och vilt prutande med de som vill sälja krimskrams till dig och helt fantastiska cykelfärder längst med vattnet. Men oavsett vilken metafor man väljer att beskriva sin resa med så är det troligt att man vid något tillfälle är lite vilse. En bra arkitekt är den som då kan använda sin erfarenhet som kompass, gå tillbaka till det ställe som man senast visste var man var på och ta ut en ny riktning.


Källor:
[1] http://www.iasa.se/wp-content/uploads/2012/05/IASA-Arkitektroller-2012.pdf
[2] http://shop.oreilly.com/product/9780596522704.do
[3] http://www.cse.chalmers.se/~feldt/courses/sple/slides/sple_lecture1_intro_091027.pdf