
Öredev 2009
I slutet av förra veckan var jag tillsammans med en kollega i Malmö på utvecklarkonferensen Öredev (www.oredev.com). Det är alltid intressant och inspirerande att höra andra berätta om sina erfarenheter från olika projekt!
Under de två dagar som jag spenderade på konferensen lyckades jag lyssna på 15 föredrag inom så vitt skilda ämnen som parallell programmering till varför dina agila projekt misslyckas. Huvudsakligen höll jag mig till de spår som behandlade arkitektur, utveckling för parallella arkitekturer samt Agile på olika teman. Det blev även ett par gästspel på spåren test och projektledning.
Så vilka trender såg jag på årets Öredev?
Konferensens officiella tema var effektivitet. Det innefattade effektivitet såväl på det personliga planet som i det större sammanhanget på projektnivå. På individnivå var temat ofta metoder som t.ex. Pomodoro (www.pomodorotechnique.com/) för att hålla fokus och hitta flow i arbetet. Olika sätt att rent praktiskt stänga ute olika störmoment från omgivningen som t.ex. onödiga mejl, Twitter och Facebook var också återkommande teman. Utöver detta behandlade åtminstone ett föredrag idéer kring hur det vardagliga arbetet kan accelereras med hjälp av kortkommandon, specialapplikationer och script. På projektnivå är det fortfarande Scrum (http://sv.wikipedia.org/wiki/Scrum) som dominerar som den metodik de flesta rekommenderar för att nå ökad produktivitet. Andra metodiker eller processramverk där tydligare influenser från Lean (http://en.wikipedia.org/wiki/Lean_software_development) hämtats dök också upp, populärast bland dessa just nu är nog Kanban (http://www.crisp.se/kanban), en lättviktsmetodik som jag själv tror mycket på.
Temat var väl valt; effektivisering är ett ständigt aktuellt ämne i dagens allt mer konkurrensutsatta verksamheter.
På tekniksidan var en tydlig trend parallellisering. Från användandet av grafikprocessorer, som ofta har betydligt fler kärnor än vanliga CPU:er, för beräkningar som sträcker sig bortom grafikprogrammering till världsomspännande dator-GRIDar (http://en.wikipedia.org/wiki/Grid_computing) och cloud-computing (http://en.wikipedia.org/wiki/Cloud_computing). Gång på gång trycktes på hur mycket svårare det är att skriva korrekt mjukvara för dessa typer av arkitekturer än "vanlig" singel-trådad, sekventiell, mjukvara.
Personligen tror jag dock, som någon också var inne på under ett seminarium, att detta snarare är en effekt av att i princip alla programmerare som idag arbetar i industrin lärt sig programmering genom sekventiellt tänkande. Som konsekvens av detta blir det "svårt" att programmera för parallella system eftersom vi applicerar vårt sekventiella angreppssätt på parallella problem. Jag tror helt enkelt att vi får kasta en del grundläggande tankegångar från den sekventiella världen överbord för att komma vidare och bemästra det parallella tankesättet. Gör vi bara detta så tror jag inte att övergången från sekventiella program till parallella kommer att vara större än andra paradigmskiften, t.ex. procedur- till objektorienterad utveckling. För framtidens programmerare kommer detta sätt att tänka på säkert vara lika naturligt som objektorientering är för min generation.
Redan idag finns det dessutom många spännande språk som konstruerats med just parallellism i åtanke. Exempel på sådana är t.ex Erlang (http://www.erlang.org) och Clojure (http://clojure.org) där det parallella tankesättet implementerats som en del av språket istället för ett separat bibliotek som hängts på efteråt.
Se där, en liten utsvävning av parallellt tyckande... Som jag skrev tidigare var Öredev 2009 väldigt inspirerande och en riktig energi-boost!
--Tobias Gustafsson