mars 26, 2021
Johan Burell är systemarkitekt och senior utvecklare på Valtech. Här delar han med sig av erfarenheter och tankar kring falska profeter, kollektivt ägande och systemarkitektur som håller i längden.
Hej Johan! Varför jobbar du på Valtech?
Jag sökte mig hit eftersom jag var hungrig på en arbetsplats med mycket kultur, en tajt gemenskap och väldigt duktiga kollegor. På Valtech har man ofta både mjuka och hårda kompetenser i teamen. Då kan man ta sig an designfrågor tillsammans med tung teknik. Det är en lyx.
Rätt lösning för rätt problem
Du har många års erfarenhet. Kan du dela med dig av några insikter som du har fått längs vägen?
Under åren har jag märkt att det finns många falska profeter i vår bransch. Många påstår sig komma med nya lösningar som löser alla problem. Men det finns inte en lösning som löser alla problem, det gäller snarare att känna till många lösningar. Och att använda rätt lösning för rätt problem.
En duktig arkitekt tittar mot horisonten. Redan när man börjar ta första spadtaget så bör man också ha en plan för hur man ska växa i modellen.
Med tiden blir det ganska dyrt att måla in sig i ett hörn. Jag har ägnat mycket av min karriär åt att undvika den sortens problem.
Hur gör man det?
Traditionell utvecklingsfilosofi handlar mycket om återanvändning. Men jag tycker att det är en suboptimering. Det viktiga för mig är att uppnå hög förändringstakt genom tydlig avgränsning. Att två saker som inte är beroende av varandra kan förändras utan att påverka varandra, det är mycket mer kraftfullt. Då kan man göra stora förändringar i en del av en produkt, utan att det påverkar andra delar.
Mycket av mina idéer när det gäller modellering kommer från Domain-driven design, även om den filosofin kanske inte är så het idag. Där utgår man från affärsdomänen för att hitta koncept som man kan avgränsa eller konkretisera.
Vänta, vad är ett ”koncept” i det här sammanhanget?
Om vi tar ett e-handelssystem som exempel, då kan betalningssystem, inventariehantering, orderläggning och kunddatabaser vara olika koncept. Och om man separerar dem så får man bitar som är autonoma. Då kan man leva och växa i lösningen väldigt länge.
F# och fördelen med funktionella språk
Vad finns det för teknik som rimmar väl med dessa idéer?
Jag brinner väldigt mycket för funktionella språk. Med dem får man ganska mycket garantier för separation, och de är billiga att förvalta. Man kan få väldigt höga växlar på en ganska liten insats.
I mitt nuvarande projekt använder vi F#. Det var ett medvetet val från oss, eftersom det ger bra kvalitet över tid. Anledningen till att vi jobbar med F# är att vi vill leva i .NET-ekosystemet med alla dess skalfördelar. Det finns ”renare” funktionella språk som följer paradigmen hårdare. Då får man mer nytta från språkets sida, men oftast med nackdelen att de har egna ekosystem. För oss är F# en väldigt bra kompromiss.
Är det ett MACH-projekt?
Det kan man absolut säga! Vi har haft API first och mikrotjänster i molnet sedan dag ett. Det var en del av arkitekturen redan innan vi införde F#. Vad gäller headless så använder vi Contentfulör redaktörsmaterial.
Arkitekturforum
Hur jobbar ni i teamet?
Vi jobbar tillsammans i arkitekturforum. Den filosofin kommer litegrann från Extreme Programming, en tidig agile-rörelse från slutet av 90-talet.
I arkiktekforum är alla utvecklare inbjudna, oavsett om man är junior eller senior.
Ett av värdeorden där är ”kollektivt ägarskap”. Det vill säga att alla i en projektgrupp ska känna yrkesstolthet och ägandeskap över det man utvecklar. Jag tror väldigt mycket på den modellen. Då blir huvudarkitekten facilitator snarare än beslutsfattare. Kollegorna i teamet är väldigt nöjda med det arbetssättet.
Vill du bli kollega med Johan och nästan 300 andra Valtechare? Kolla in våra lediga tjänster. Just nu (och nästan alltid) har vi stort behov av folk med tech-kompetens.