It-tendenser, Software, Systemudvikling og systemer

Overskuelig arkitektur skal forhindre det store sammenbrud

Den tiltagende kompleksitet i dagens it-systemer øger risikoen for sammenbrud. På udviklerkonferencen GOTO 2013 var løsere koblinger mellem mindre komponenter og øget transparens i programmeringssprogene blandt svarene på truslen.

Hørt over frokosten på førstedagen af GOTO 2013 i Aarhus: ”Jeg vil se noget live kode, og jeg vil se noget, jeg ikke har set før”. Sådan. Mere præcist kan forventningen til en konference, der er for praktikere, formentlig ikke udtrykkes. GOTO, som startede i 1997 under navnet JAOO, har som målsætning at placere sig et sted midt imellem egentlige produktkonferencer og rent akademiske konferencer. Så udfordringen er at sammensætte et program, der ud over nye hotte teknologier og kodetricks på storskærm også giver plads til de inspirerende indspark til et bedre liv som udvikler og et kig ud i fremtiden. En fremtid, hvor systemer måske bliver bygget efter de samme funktionelle principper som hjernebarken på et menneske - som ingeniøren, videnskabsmanden og forfatteren Jeff Hawkins beskrev det i sin keynote.
GOTO favner bredt. En erfaren udvikler kommer ud fra en session og melder, at ”jeg vidste faktisk ikke, at man kunne gøre det med ls-kommandoen i UNIX” og sætter så kursen mod Musikhusets Store Sal, hvor Chad Fowler, musiker, udvikler, truckfører og oversætter (blandt meget andet) giver inspirerende tips til, hvordan man blive en meget bedre udvikler – måske endda får et bedre liv – uden at være specielt kvik. Inspirerende og underholdende, men næppe noget, der ryger lige ned på bundlinjen hjemme i kompagniet.
Den store bredde og de mange tilbud er en stor styrke ved GOTO, men potentielt også en svaghed. En overskriftsagtig melding fra en af deltagerne rammer det meget præcist: ”Det er svært at spot’, hvad der er godt”. Beskrivelsen i konferenceprogrammet af sessionen og taleren kan være spændende og appetitvækkende, men virkeligheden kan være en anden – og omvendt.
Men når der summes over kaffen og kagen i pauserne, og folk bliver spurgt direkte, så er holdningen dog helt generelt, at der altid vil være noget at tage med hjem og arbejde videre med – både af det mere værktøjsmæssige og det mere udefinerbare: Inspiration. Og så er der også lige de mange gode pauser og sociale arrangementer, hvor man kan netværke med folk i community'et og få nærkontakt med nogle af ”stjernerne”.

Pending doom

Specielt på arkitektursporet, men også helt generelt på konferencen, fornemmede man en stemning af noget nær ”pending doom” på grund af den tiltagende kompleksitet i verdens it-løsninger. Meget handlede derfor om at genskabe enkelthed, overskuelighed og løsere koblingerne mellem de enkelte elementer i løsningerne. Sam Newman fra Thoughtworks advokerede for ”loose coupling” og ”explicit boundaries” som sunde principper til at undgå sammenfiltrede systemer (”entanglement”), som ingen kan overskue eller tør røre ved.
Mathias Meyer fra Travis CI, en hosted continuous integration- og deployment- platform, fortalte historien om, hvordan antallet af daglige builds i Travis CI-projektet var eksploderet fra 700 i 2011 til 45.000 i 2013, hvilket udstillede den oprindelige arkitektur som uholdbar. Løsningen var at bryde systemet op i et større antal løsere koblede moduler i, hvad Mathias Meyer kaldte ”the smallest distributed system”.
En lignende problemstilling lå bag Mogens Heller Grabes gennemgang af det egenudviklede Rebus, som leverer messaging mellem løst koblede elementer i et asynkront køsystem. Grundidéen er igen at skabe en enklere og mere overskuelig systemarkitektur, der bryder med traditionelle monolitisk opbyggede systemer.
Fordelen ved små enheder – nu på det mandskabsmæssige plan – var også temaet i indlægget fra Graham Tackley, udvikler og Head of Architecture hos den engelske avis The Guardian. Med afsæt i en hack day samt en prototype til at trigge brugerinddragelse udviklede han sammen med en kollega et analytics-værktøj i business intelligence-klassen til at tracke brugeradfærd på guardian.co.uk. På trods af den beskedne bemanding har løsningen nu udviklet sig til at blive et meget centralt værktøj for forretningen.
Motoren i løsningen er open source-værktøjet Elasticsearch, som var en meget tydelig repræsentant på konferencen for det fokus, der i øjeblikket er på søge- og analyseværktøjer. Der var stor søgning til Elasticsearch-standen i forhallen, og adskillige tilhørere måtte tage til takke med ståpladser til det meget præcise og veldisponerede indlæg fra core developer Alexander Reelsen.


Agil udvikling i stor skala

Traditionen tro er der et helt spor, der udelukkende beskæftiger sig med processerne omkring softwareudvikling. Agile development og continuous delivery er stadig hotte emner, men er efterhånden blevet så meget standard, at der nu også stilles relevante spørgsmål til koncepter og praksis.
Et gennemgående tema var udfordringen med at skalere et agilt projekt, eller som overskriften på Dan Norths indlæg lød: ”Why agile doesn’t scale, and what you can do about it”. På det rent udførende niveau er de agile metoder uovertrufne ifølge Dan North. Men for at få tingene til at hænge sammen på et mere overordnet strategisk og organisatorisk plan, specielt hvis der er mange udviklerteams involveret i et stort projekt, er der brug for også at bringe elementer som governance, delivery assurance og portfolio management i spil.  


Gennemskuelighed i sprogene

Tendensen i retning af større enkelthed og gennemsigtighed kunne ses fra den helt overordnede systemarkitektur ned til detaljerne i programmeringssprogene. Bodil Stokke brugte en pæn portion af sin præsentation til at demonstrere, hvorfor mutable states bidrager til kompleksiteten og uigennemskuelighed i koden. Med immutable states kunne man opnå en meget renere kode, og hvad Bodil Stokke kaldte ”referential transparency”.
Der var generelt meget buzz omkring Clojure og interessant nok også omkring Erlang – oprindeligt et proprietært Ericsson-sprog fra midtfirserne, men siden 1998 open source. Og så var der Java – verdens mest udbredte programmeringssprog. Brian Goetz, Java Language Architect hos Oracle, havde et interessant indlæg, der dels gav et historisk perspektiv på Java – hvorfor blev det så populært? – dels forsøgte at overbevise den lettere skeptiske forsamling om, at Java rent faktisk har en fremtid.
Community'et er ikke udelt begejstret for Oracle som tovholder for udviklingen af Java, og Brian Goetz brugte da også en del af sin taletid på at forklare, hvorfor man nødvendigvis må være lidt konservativ i forhold til nye features, når man havde at gøre med et så udbredt sprog. Som han udtrykte det: ”Java is a victim of its own success. Our Collections APIs are more than 15 years old!” Brian Goetz fortalte også om de relativt få nye features i Java 8, vigtigst at man nu kan arbejde med Lambda-udtryk, og så gjorde han et bravt forsøg på at godtgøre, at Java faktisk er et dynamisk sprog – ikke alle tilstedeværende var helt overbevist.

Sikkerhed på programmet

Sikkerhed kan være en svært salgbar vare på en konference, men folkene bag GOTO gør en ihærdig indsats. I år havde man således valgt at sætte Brian Chess fra NetSuite, og en veteran inden for softwaresikkerhed, på som allerførste keynote-taler. Det betød, at klart flere udviklere end ellers måtte lægge øre til budskabet om, at sikkerhed ikke er noget, man klistrer på efter den egentlige udvikling er overstået – det skal være en integreret del af selve kodningen. En del udviklere valgte også af egen drift at gå ind til Mike Wests indlæg om web-security.
Der var omkring 1.100 deltagere på GOTO 2013 heraf omkring 30 procent fra udlandet. Trifork, der har hovedkvarter i Aarhus, står for arrangementet, og program og præsentationer kan findes på goto-con.com/aarhus-2013.