GOTO Conference 2010 November 11, 2010 09:10 about 1 year ago
Dette er den sidste JAOO i en række af 16. Fremover hedder konferencen GOTO; for at slippe evt. reference til Java verdenen, præcis på samme måde som vores gamle firma Javahouse. Når man binder et navn med en teknologi bliver det forældet eller for-dyrt i advokatsalær! Navneskiftet blev offentligtgjort under mandagens fest og hvilket perfekt tidspunkt.
GOTO; (simikolon?) skal i de kommende år dækker over den samme konference i Aarhus samt en mindre i København med lige meget fokus på alle de teknologier og metoder som gør det til en fest at udvikle software. Det totale billede af konferenen er meget positivt. Jeg kan ikke lide at slå på dårlige talere for det er en svær proces at fremlægge budskaber og ofte er en dårlig oplevelse forbundet med et forkert valg af emne. At planlægge en route gennem hundredvis af sessioner er en opgave i sig selv. Alle talere blev konfronteret med deres passion overfor faget. Ret interessant.
Min passion i software udvikling er at finde den essentielle element der gør det enkelt og overskueligt. Jeg kan lide at designe ting så det bliver nemt, funktionelt, koncist og lækkert på en gang.
Den ny konference har fået et nyt farve layout. Det gør det ikke nemmere at tage billeder på konferencen. Lyset er ofte dunkelt og i en ringe kvalitet med lav kelvintemperatur mens slideshow projektørende bruger høj kelvintemperatur hvilket gør hvidbalance næsten umuligt. Lyslægning på de enkelte scener konstant men horribelt dårligt.
Træning
For første gang var jeg med på et par træningsdage og det var en god oplevelse. Jeg valgte DSL og REST sessionerne og de var toppen af poppen. Jeg forventede hellere ikke mindre. Ved et enkelt tilfælde var jeg dog ved at gå information overload mode efter ca. en 1 time med ekstern DSL og lexer, parser teknik. Mine forventninger til Fowler, Ford, Webber og Robinson var tårnhøje men de blev opfyldt.
Dog havde jeg en forventning om en form for “hans on” under en træningsession. Min box var sat op til sjov og savnet efter at løse en opgave var til at mærke. Martin kunne mærke den samme følelse fra flere andre kunne man tolke på hans attitude. Vi var nogle stykker der havde en super klar computer :-)
Grøn Jakke versus Pink Jakke
De morgenfriske på GOTO konferencen har i en årrække set en grøn jakke, omkring Kresten Krab Thorup, præsentere dagens spiseseddel fra hovedscenen denne morgen var både senen og en stolt Kresten i Pink. Skønt med forandring og en god gimmick.
Dan Ingalls
Efter min mening var Dan Ingalls den mest spændende taler på GOTO i år. Han satte en række af events i perspektiv i forhold til Squeak Smalltalk 1976, objekter og farvestrålende user interface frem til hans seneste arbejde, the Lively Kernel, som er et dynamisk programmeringssprog der lever som af javascript i en browser. Dan har været arkitekt på fem generationer af smaltalk miljøer og er ansvarlig design af smaltalk’s virtuelle byte-code maskine.
Dan angriber problemer, det er fint at man kan lave en kompleks algoritme men hvordan visualiseres den så alle kan forstår hvad der sker? Dan viser flere forskellige variationer af mere eller mindre seværdige tilfælde. Et eksempel er en orkester der spiller og man kan zoome ind på musikkerne mens netop hans instrument bliver mere tydeligt. Et miljø med funny colors og nice UI features. Utroligt at vi ikke er kommet længere på de 30 år. Dan har tidligere været tech hos SUN men er nu hos SAP for at skabe deres teknologi vision.
Tim Bray
Tim Bray, tech ekspert hos google og tidligere med skribent på XML/namespace specifikationen og direktør for Sun’s teknologi afdeling. Tim var inviteret til GOTO pga. af en blog post ved navn “We are doing it wrong”. Denne post forsøger at argumenter for at vi skal gøre os med de forfejlede måde store virksomheder udvikler software.
Enterprise software måles i måneder og år mens populære applikationer som twitter, facebook eller ravelry måles i dage og uger og samtidig til en langt mindre risiko? Ta fx www.ravelry.com der er et samlings sted for mennesker der har strik og hækling som hobby. Websited har 17 millioner daglige hits og mere end 1600 nye bruger profiler pr dag. De 900.000 brugere skriver mere end 50.000 posts pr dag og de ses af mere end 100.000 unikke brugere. Applikationen køre Ruby on Rails på fysiske maskiner og der releases hver anden uge i fast skema. Men der er et tal som er langt vigtigere: Hele systemet udvikles af EN mand.
Tim har modtaget en ufattelig mængde kritik for denne post og meste er mainstream-shit af folk der forsøger at legitimere deres daglige job. Der er dog to punkter hvor jeg synes er værd at fokuser lidt. “Culture of risk-aversion” og “the right people”.
Store virksomheder laver risikoanalyse og store fastpris enterprise systemer med store prespecifikationer, udvikling og test. Hvis projektet går helt galt er det ikke din skyld for alle gør det samme. Store virksomheder er kost-beviste og tror på taylorisme. Derfor hyres billig arbejdskraft der kan udskiftes mellem de rutineprægede opgaver og tidspres klares med rå manpower.
Små Web 2,0 applikationer udvikles af små teams og i kontinuerlig kommunikation med kunden i en iterativ proces hvor forretningskrav releases i korte intervaller. Hvis et projekt går galt bliver du fyret. Små virksomheder har ingen chance for at forsætte uden produktet og alle deltagere er aktive innovatører.
Naturligvis betyder teknologien en vigtigt rolle men kulturen og forstenede tankemønstre er endnu vigtigere. Hvis din virksomhed ønsker TTM og hurtige leverancer og skalerbarhed er det på tide at adoptere de metodikker der fungere på internettet.
Frank Buschmann
Frank er en sjov mand når det gælder tonationer . Min kæreste er også nativ tysker og jeg kan høre de sproglige vendinger og det more mig gevaldigt. Det er uden tvivl den tyske grundighed der gør ham til en eminent taler med repetition af de klokkeklare statements. Super
Frank er hovedarkitekt i Simens Technology og ansvarlig for review af både processer og software arkitekturer samt large-scale distribueret systemer. Han er også ekspert mentor, udføre recruiting og står for et senior træningsprogram for Enterprise Architect’s.
Simens har erkendt at deres success beror på god kvalitet software i deres produkter. Op mod 80% af deres succes bæres direkte af vellykkede software projekter. EA programmet skal sikre en høj standart af kvalificerede arkitekter der kan sikre velgennemførte projekter. Pris pr. EA, ca. 60.000 Euro
Er de så mange penge værd? Ja, pengene kommer let tilbage i forretningen gennem bedre løsninger og bedre software. Som et ekstra plus har det vist sig at de ovenikøbet kan rede projeter der ellers er stagnerede og færdige.
En af pointerne i programmet er at en arkitekt skal besidde mindst 30 procent sociale kompetencer for at kunne agere. En arkitekt skal være dygtig i alle områder af software udvikling, men mest af alt skal de være tankefulde ledertyper.
qoute: Architects must be proficient in all areas of software development, but most of all they must be thoughtful leaders!
Dan North
Dan “the troublemaker” North underviser i lean og agile metodik og er manden der iværksatte BDD. Dan tror på mennesker og simple pragmatisk software. Han tror at kommunikation er det vigtigste element i software udvikling.
Måske synes du allerede at det team du arbejder med er et hyber-performing team fordi i frigiver kode til produktion hver kvartal? Men tænk lige hvis du fik nyt job hvor de frigiver kode til produktion hver eneste dag?
Hvad er hemmeligheden ved succes?
- Er det team organisation?
- Er det selve virksomheden?
- Er det de gode ledere?
- Er det fornuftige teknologi valg?
- Er det den brugte metodik?
- Er det organisations kultur?
- Er det en tilfældighed?
Når disse spørgsmål er vigtige er det fordi man mentalt på nedbryde alle traditionelle forestilleringer om hvad der er godt for virksomheden. Spørgsmålet er i mange tilfælde om man får noget særligt ud af indviklede politikker man har oparbejdet i årevis. Kokken Gondon Ramsay ville nok ha sagt at man skulle trække hoved ud af røven og se på produktet uden historiske briller.
The big rewrite
Som pragmatisk software udviklere ved vi at store applikationer ikke skal skrives om, vi forbedre, omstrukturer og tilføre features hen af vejen. Men glemt alt det vrøvl. Det traditionelle svar er forbundet med de traditionelle teknologier og traditionelle tankemønstre. Med den viden du har nu, ville du så bygge applikationen på samme måde igen? Nej den ville blive andreledes og opfylde de nutidige forretningskrav og være fri for teknisk gæld og dead legacy kode.
Vi må acceptere at vi først får en væsenlig del af vide om en applikation når vi har skrevet den. Den enlige tranformation mellem nye versioner af applikationen er viden om forretningsprocesserne.
Tænk at starte et green fields projekt og mens version gøres produktionsklart gør man sig klar til at skrive version to fra start. Det betyder at man skiver version to mens der er maximalt feedback fra brugerne. Pointen er at man er nødt til at skrive applikationen for at blive klogere på de faktisk krav.
Rob Pike
Go er et programmeringssprog til og for google. Sproget er konstrueret udfra nogle simple ideer der kan kombineres ortogonalt for at give maximal kraft uden sideeffekter. Go er ikke så rig på features men kan udtrykkes mere præcist end de fleste mainstream programmeringssprog.
Rob er engineer hos google og arbejder med distribuerede systemer, data mining og software. Han er på sin vis en interessant taler og har meget bred erfaring men jeg fik ikke rigtig en aha oplevelse. Nuvel, forstilingen var god og jeg grinte også et par gange men derudover var der ikke noget der for mig til at undersøge programmeringssproget Go.
Kresten Thorup
Kresten Thorup er teknologist i Trifork og manden bag GOTO og QCon konferencerne. Kresten har blandet sig i en bunke ting, fx tilført generics til Java men det vil jeg nu ikke lægge ham til last. I dag gælder det Erjang. Et Java modstykke til Erlang. Altså en platform for Erlang i en Java Virtual Machine.
Da Kresten lægger stor vægt på godt håndværk lægger han ud med at omtale selve processen hvori han sætter sig selv nogle mål med hensyn til processer og løsninger omkring Erjang. Jeg kan li den måde han stille og roligt opstiller nogle rammer hvori han vil implementere samtidighed. Området er svært at forstå og endnu sværere at udføre. For at komme til bunds i Erlang tankegangen har Kresten opsøgt de mennesker der arbejder med Erlang i det daglige og opnået en vis forståelse. Fed måde at gøre det på.
Erlang er ikke skabt med det primære formål at kunne opnå samtidighed som de fleste tror men for at være fejltolerant. Erlang handler om at bygge robuste systemer der erkender fejl som en del af scenariet og løsningen. Erlang er et funktionelt dynamisk sprog der benytter Actor modellen og principper som isolation for at opnå samtidighed uden sideeffekter.
Kresten havde en spændende betragtning omkring proces modeling der fik mig til at tænke på flere ting simultant. Da de enkelte processer i Erlang deler ikke nogen form for data bygger man en heraktisk struktur af noder som hverisær udføre en del af en længerevarende proces. At få sit hoved rundt om betydningen kræver at vi som mennesker lære at opfatte hele processer på en naturlig måde på samme niveau som objekter. Rigtigt spændende emne og jeg har lyst til at høre mere!
- Qute: The world is concurrent.. I could not drive my car on the highway, if I did not intuirively understand the notion of concurrency. -- Joe Armstrong
Neal Ford
Neal er en fantastisk taler og jeg har hørt ham mange gange. Han er en af de få der kan få punch lines og slideshow til flyde i en lin strøm. Til RailsConf i Berlin 2007 gav Neal Ford og Justin Gehtland hver deres professionel tale mens resten af talerne mere eller mindre var amatører. Neal alene har givet mere end 600 tekniske foredrag.
Denne tale handler om en af de største Ruby on Rails applikationer. Neal fastslog med det samme at skalering ikke er noget problem, blot et andet paradigme. Den forretning de har udviklet for er faktisk en Java shop men valgte en anden teknolog for at komme af med tiltagende mental stagnation og teknisk gæld. De så sig selv blive overhalet i konkurrence pga. TTM.
Pair programming med partner skifte hver anden dag i 11 rotationer er syret. Men det er en metode som thoughtworks bruger med held når de selv styre ressourcerne. Ingen opgaver er længere end to effektive dage og der må kun overleveres information en gang pr partner led. På den måde ser alle din kode og du kommer aldrig til at hænge med en lang bug. Musik bruges til at overføre information om build status og andet. Hver udvikler har sin egen melodi og alle ved hvem der har knækkede buildet uden at se op fra deres skræm.
Komplekse teknologi ellers forretningsspørsmål bliver nedbrudt med spikes som har til opgave at give øjeblikkelig feedback og skabe troværdighed overfor forretningen. Klargøring af kode, kørsel af test og deployment til alle miljøer skal fungere med et klik på minimum tid, for at kunne overvinde alles frygt for at ændre i produktionskode.
Dave Thomas
Dave er en populær og humoristisk omend stædig hovedtaler med en enormt erfaring. GOTO Conference. Denne tale handler om dig. Som virksomhed. Hvordan styre du din karriere, hvordan formidler du dine kompentencer, hvordan udvikler du dig selv og dit brand?
En karriere kommer ikke af sig selv. En karriere er:
- akkumuleret af viden
- formet af kolleger og mentorer
- hæmmet af personlige omstændigheder
- udvidet og uddybet gennem erfaring
- styrket gennem hårdt arbejde
- hjulpet af held
Og mange andre faktorer som man aktivt må arbejde med. Karriere antipatterns:
- fanget med venner / første arbejdsgiver?
- hvilke nye ting lærte jeg / forbedre dette år?
- at hvem kan jeg lære af det næste?
- gyldne håndjern?
- utilstrækkelig anerkendelse / erstatning?
- under mit arbejde problemer hjemme?
- føler sig ikke kompetent i mit job?
- bored to Death?
- meget ude at rejse?
- involveret i politik, måske revolutionerende?
- brug for professionel udvikling?
- vanskelige personlige relationer?
Du er måske ikke et brand. Som et minimum bør du dog have et ansigt. Vær åben omkring dine karrierevalg. Du definere selv din karriere og husk at den enes karriere er den anden helved.
Din fremtid er afhængig af de karriere valg du tager i dag. Eller måske ikke tager i dag. Erkend at du selv styre din fremtid. Du kan bliver mere bevist og proaktiv produktejere af din egen karriere og måske mentor for andre.
Jim Webber
Ian Robinson og Jim Webber har lige skrevet bogen “REST In Practice” og Jim er også medforfatter til bøger som “Developing Enterprise Web Services – An Architect’s Guide”. Jim har arbejder med distributeret systemer og er ivrig taler på konferencer rundt omkring i verden. I skrivende stund starter Jim sit nye job for Emil hos Neo4J.
I årevis har virksomheder løst alle deres integrations problemer med det som Jim betegner som: “nirvana service arkitektur”. Virksomheder køber denne løsning udfra et ønske om robusthed, skalerbarhed og at kunne definere en forretningstransaktioner på et højere plan. Løsningen består af en SOA arkitektur med SOAP og WS, og i de værste tilfælde krydret med en ESB servicebus der forbinder alle integrations punkter i infrastrukturen.
Faktum er at denne arkitektoniske model introducere mange uheldige elementer. fx SPOF, overholder ikke server client paradigmet og dræber skalerbarhed. Men det er legitimt at bruge sådan en løsning fordi alle gør på samme måde og man kan købe flere produkter efter de egenskaber man ønsker. Eneste fordel er at man ved hvor alt rodet befinder sig og kan lave et flot slideshow, med den sølvfarvede kasse.
Komplekse processer bliver ikke væk bare fordi man vælger en anden arkitektonisk stil men REST handler mere om transformation af forskellige tilstande og guider klienten i den rigtige retning undervejs. Det bliver meget synligt når man arbejder med at definere nye protokoller men er samtidigt meget svært at forstå når man eller kommer fra en WSDL verden hvor tilstanden findes bag en service.
Henrik Wann Jensen
Hvordan laver man lækker grafik på filmen Avatar og samtidig god forbedre smagen af yoghurt? Henrik er en af de få nørder der har vundet en Oscar. Han opfandt Photon Mapping, en teknik der bruges til at simulere huden på Gollum i “Ringenes Herre”. For sin forskning har han modtaget en Academy Award og arbejdede med på James Cameron film, “Avatar”. Ønsket om bedre og mere realistisk grafik i film og spil kræver flere og mere komplekse algoritmer. Teknologen kaldes KeyShot og er i øjeblikket ved at ændre den måde industrielle designere arbejder, og det gør produktet fotografering forældet. Henrik’s forskning er fokuseret på realistisk billede syntese, global illumination, gengivelse af naturfænomener, og udseende modellering. Hans bidrag til computergrafik omfatte photon mapping algoritme til global belysning, og den første teknik til effektivt at simulere spredning i gennemskinnelig materiale fx hud ved at beregne på fx protein indhold. Og det er her mælken kommer ind. Det er muligt at kvalitetssikre mælkeproduktion med samme viden om detency, en procens der før har krævet at man smager på produkterne.
Tom Preston-Werner
Det handler ikke om hvordan det bruges men om hvad du kan opnå ved at bruge det! Tom er stifter af Githup og flere andre startup virksomheder. Han rejser rundt i verden og køber øl til usergroups mens hans team derhjemme har fuld råderet til at tage kritiske beslutninger om udviklingen på Githup. Tom har en vidunderlig holdning til hvordan man starte en virksomhed og ligeledes set lyset når det gælder at motivere projektteam strukturer. Han er en spændende person og jeg vil skrive en post de mange holdninger han har.
Jonas Bonér
Jonas taler hurtigt, nogen gange meget hurtigt. Hvis man forstår hvad han siger handler det om distribueret fejltolerante og skalerbare systemer. Men først og fremmest handler det om systemer med høj tilgængelighed(High-availability). Systemer der skal overholde SLA på i henhold til High Availabillity Four Nines.
Jonas er en Java dreng der har opdaget at man ikke kan skabe korrekte samtidige, fejltolerant og skalerbare applikationer med Java. Det er for hårdt. En af grundende er at vi bruger de forkerte redskaber og som han siger, et forkert niveau af abstraktion. Derfor har han skabt Akka. Akka bruger Actor Model sammen med Software Transactional Memory (STM) til at hæve abstraktionsniveau og give en bedre platform at bygge skalerbare applikationer. Akka bruger evner fejltolerance ved “Let it crash” model der er blevet anvendt med stor succes i Telecom branchen til at bygge applikationer, der selv helbreder sig selv og komponenter der sikre ikke-blokerende IO gennemførelse.
Konklusion
For mig er Jaoo/Goto klart en af årets konferencer højdepunkter. Ifølge Dave Thomas er det jo et bevist forsøg på at uddybe og akkumulere viden gennem hårdt arbejde og overfører det min egen profil som kompetent og ansvarlig software udvikler.
Min ydmyg rolle i softwarebranchen bliver i større og større grad brugt til rådgivning om tekniske muligheder og aspekter der rækker længere og længere ud i fremtiden. Jeg har brug for disse fantastiske konferencer for ikke at stagnere i min stadige søgen efter tydeligere tendenser.
By Frank Vilhelmsen - 2 tags: jaoo goto - Add comment