PHPBenelux Conference 2011

14 februari 2011 Inzichten /

Tutorials

Deze laatste zette meteen de toon voor onze algemene indruk over de conferentie: over PHP zelf valt klaarblijkelijk niet veel meer te vertellen. Uiteraard is dit niet echt zo, maar het viel toch op dat de meeste talks minder gericht waren op PHP zelf maar eerder op alle randfenomena die aan PHP kunnen geassocieerd worden.

Deze tutorial aangaande caching & tuning viel om eerlijk te zijn wat tegen. De manier van presenteren was eerder saai en we staken er weinig van op. Er werden heel wat belangrijke onderdelen aangaande caching besproken (APC, memcached, Varnish e.d.) maar weinig gedetailleerd en hoofdzakelijk server-gerelateerd. Van een hands-on tutorial hadden we verwacht dat praktische real-life situaties zouden besproken worden met concrete oplossingen, terwijl het in praktijk niet veel meer was dan het ongeïnspireerd afdreunen van de niet-zo-diepgaande slides. Wel was duidelijk dat de spreker wel enige kennis van zake had over dit onderwerp: het was dus misschien beter geweest om de talk wat minder algemeen te houden, maar specifiek een aantal punten meer diepgaand te behandelen. Nu was het een gemiste kans voor ons: het server-gedeelte is voor ons niet van toepassing omdat dit door onze hosting-partner met de nodige kennis van zaken wordt afgehandeld en uit het PHP-gedeelte staken wij niets op omdat niets in detail werd besproken.

Dave zat toen in betere oorden te luisteren naar Geert Vanderkelen, een gepassioneerde MySQL expert en één van de drie Belgen die momenteel aan MySQL werken. Deze heeft de aanwezigen allerhande tips en tricks bijgebracht omtrent optimalisatie. Na een valse start (zijn website met voorbeelden was niet bereikbaar) bleek het niveau daar een stuk hoger te liggen dan in de andere workshop, de spreker was een stuk vlotter en bijgevolg de menigte minder slaperig. Wat vooral een nuttige workshop was voor systeembeheerders bleek uiteindelijk nog een pak nuttige weetjes te bevatten voor developers, ondermeer over het optimaliseren van queries d.m.v. de query cache van MySQL.

Conferentie

Na deze tutorials volgden de gewone talks: 1-uur durende sessies waarin een bepaald onderwerp zou worden besproken. We hadden elk ons huiswerk gemaakt en ons verlanglijstje klaar. Gezien de immense groei die Netlash tot dusver reeds doorgemaakt heeft, waren de meest interessante praatjes voor ons niet puur technisch van aard maar eerder gericht op methodieken om ons het werk te vereenvoudigen: deployment, continuous integration, project triage, scrum en wat andere buzzwords. Intern zoeken we steeds naar de beste manieren om onze zaken aan te pakken, maar inspiratie opdoen hoe anderen alles aanpakken leek ons wel interessant. Dat het leeuwendeel van de talks dus niet technisch was deerde ons dus helemaal niet. Dat enkele sprekers volstrekt onvoldoende kennis en ervaring hadden over hun onderwerp stoorde ons daarentegen des te meer.

Maar laat ons ons richten op de interessantste delen:

Stress-free deployment:

Hoewel we hier niet meteen iets nieuws bijleerden, was dit een must-see. En we waren duidelijk niet de enige die hier veel van verwacht hadden: in het relatief klein zaaltje waren achteraan een aantal gegadigden genoodzaakt om op de grond plaats te nemen. Van deze talk hebben we onthouden dat spreker Rob Allen een nerd pur-sang is, in a good way! De kennis die hij over zijn onderwerp uitstraalde en het enthousiasme waarmee hij erover sprak waren aanstekelijk.

Bij Netlash zijn we recent ook onze deployment strategie grondig onder handen aan het nemen en onze noden lijken niet overeen te komen met de implementatie die bij Rob Allen's bedrijf (Big Room Internet) is gebeurd. Desalniettemin hielden we aan deze presentatie een aantal kleine tips over en vooral de belangrijke les om een goed evenwicht te vinden tussen enerzijds het uitwerkingen van het ideale deployment-platform dat voldoet aan je noden en anderzijds een scenario waarin je oeverloos veel tijd stopt in het automatiseren van zaken die de moeite (nog) niet waard zijn.

Technical Debt

Dit moet zowat het meest memorabele uurtje van de conferentie geweest zijn. Elizabeth Naramore was verondersteld de spreekster te zijn voor deze sessie, maar richting het laatste kwartier werd ze geassisteerd door enkele van de toehoorders, waaronder Keith Casey die later op deze conferentie de Project Triage & Recovery talk zou houden. Dit zorgde voor interessante discussies en voorbeelden.

Ik moet eerlijk zijn, de term "technical debt" was nieuw voor mij en hielden we bij Netlash tot dusver eigenlijk nog maar weinig rekening mee. Het fenomeen kent elke developer echter: onder druk van deadlines en immer-veranderende specificaties ontstaan de stukken code die je 's nachts uit je bed houden. Wanneer je deze code niet tijdig gaat refactoren, ga je op het eind van de rit met een backlog aan "less-than-optimal code" te kampen hebben, die je weerhoudt om vlot verder te programmeren en waarop fouten zich sneller voordoen. De sleutel hier was dat er structureel moet omgegaan worden met technical debt en het evenwicht gevonden moet worden tussen het moment dat je aan "cutting corners" moet doen (in functie van deadline en efficiëntie) en het moment waarop je dit moet oplossen (in functie van kwaliteit van de code en het beperken van een technische backlog).

Scrum in the wild

Dag twee van ons PHPBenelux-avontuur startte met deze zéér informatieve talk van Mike Van Riel over scrum. Na een kleine geschiedenisles liep Mike stap voor stap door de geheimen van het scrum-proces. Een interessant gegeven waren de burndown charts, waar je elke dag een visuele voorstelling maakt van de status van een project: de open/resolved tasks, of we voor lopen op schema of niet, allemaal op dag-tot-dag basis. Op die manier kan er beter geanticipeerd worden op eventuele (nakende) achterstand.

Bij Netlash leent de aard van onze projecten zich minder tot het volledig adopteren van scrum: we moeten klanten eenvoudig en snel support kunnen aanbieden (wat een sprint nogal in de war zou sturen) en een multitude aan projecten beheren via scrum ligt ook wat lastiger dan bedrijven die slechts 1 product ontwikkelen. Momenteel gebruiken we dus slechts elementen uit scrum, waarvan de daily stand-up er één van is. Wel hebben we hier wat inspiratie opgedaan van methodieken en gedachtengoed bij scrum die we op een alternatieve wijze misschien kunnen gaan integreren in ons eigen proces: na heel wat denkwerk beginnen we hier binnenkort stelselmatig aan te werken.

Charsets & Encoding

Kore Nordmann bevestigde ons tijdens de enige interessante technische sessie dat we op vlak van encoding van data wel goed bezig zijn. Het nodige onderzoekswerk hadden we in het verleden reeds grondig uitgevoerd en feilloos geïmplementeerd binnen ons eigenste Fork CMS. Maar toch: de bevestiging van onze implementatie schept een zekere extra gemoedsrust.

Project Triage & Recovery

Keith Casey, die we nog kenden van zijn assistentie tijdens de talk over technical debt, kwam ons een en ander vertellen over triage van een project. Heel kort door de bocht: hoe ga je om met software failures?

Als practisch voorbeeld kregen we een case van project waarin hij betrokken was voorgeschoteld. Na jaren ontwikkeling was dit project onhandelbaar geworden (zie: technical debt). Een deel van het team maakte de keuze om helemaal opnieuw te beginnen en de geleerde lessen ineens in praktijk om te zetten, een andere helft opteerde om de huidige codebase toch proberen recht te trekken.

Keith maakte deel uit van deze laatste groep, voor 1 simpele reden: het zal een lange tijd duren vooraleer de herschreven codebase hetzelfde aantal features bevat als de huidige onhandelbare codebase en een groot deel van de bestaande gebruikers zullen tegen dan naar alternatieven moeten gaan zoeken zijn. Keith vertelde ons over de lessen die hij tijdens het zeer moeizame traject heeft geleerd en hoe hij dit alles aanpakte, hoe hij samen met zijn collega's heeft gepoogd dit project recht te trekken. Hoewel het een heel lastig werk is geweest en, 3 jaar na datum, ze nog steeds heel wat werk voor de boeg hebben, is zijn project via heel kleine stapjes toch beetje voor beetje opnieuw handelbaar geworden. Dat hij geen spijt heeft van zijn keuze bleek alvast toen hij - enigszins spottend - mededeelde dat de afgesplitste groep nog steeds (meer dan 2 jaar na aankondiging) geen release had kunnen maken van hun vers gestarte software.

Conclusie

Hoewel we toch wat een gemis ervoeren in hardcore technische praatjes, staken we op andere vlakken heel wat kennis op. En laat dit nu net de punten zijn waar we ons bij Netlash ook al een tijdje op focussen.

Het algemene gevoel dat we aan de conferentie overhielden is dat zowel PHP alsook de voornaamste firma's die hun ontwikkelwerk hiermee uitvoeren duidelijk al even in een volwassen stadion verkeren. Het is niet langer een punt van of en hoe alles met PHP kan uitgevoerd worden, maar hoe dit nu precies structureel het beste wordt aangepakt. Dat dit klaarblijkelijk zowat het uitgangspunt van de conferentie was, maakte duidelijk dat wij niet de enige firma zijn die zich op dat vlak inspant en hierin constant willen verbeteren.

In 2012 tekenen we alvast opnieuw present!

Lees meer

Nieuwsbrief

Doe zoals meer dan 1700 marketing en design experts en ontvang maandelijks onze nieuwsbrief vol inzichten, tips en verrassende nieuwigheden.