Computable Expert Panel

Afgelopen week is het expert panel voor software ontwikkeling gevormd. Als lid van dit panel zal ik mijn bijdragen leveren aan artikelen/discussies die gepost worden op de site van de Computable en het blad zelf. Door deel te nemen aan dit panel kan ik mijn mening laten horen over moderne software ontwikkeling.  Ik ga er vanuit dat er vele interessante discussie gaan komen. De eerste discussie die door de redactie gestart is heet: “Ontwikkelaar omarmt agile en Web 2.0“. Niet echt twee onderwerpen die direct samenhangen, maar het gaat wat mij betreft dan ook om de achterliggende discussie die men wil los maken.

Gepubliceerd op
Gecategoriseerd als Publicatie

Smalltalk bijeenkomst

Afgelopen week was de Europan Smalltalk User Group (ESUG) bijeen in Amsterdam. Tijdens de bijeenkomst zijn verschillende presentaties gegeven over uiteenlopende Smalltalk gerelateerde onderwerpen. Over het algemeen kun je stellen dat er veel diepgang in de presentaties zat. Zo stonden donderdag de webframeworks centraal. Dan komt natuurlijk een zeer groot framework als Seaside voorbij. Wat ik erg interessant vond was de presentatie van CosmoCows. Ze presenteerde hun webframework dat ze in Smalltalk ontwikkeld hebben. Wat dit framework erg mooi maakt is dat je rijke webclients kan maken die gesynchroniseerd worden met de server. Oke denk je dan, dat kan ieder AJAX-achtig framework. Het mooie van dit framework, is echter dat je ook events vanuit de server kunt pushen naar de client. Of beter gezegd dat je events vanuit je domein kunt pushen naar de presentatie (CV van de MCV). Dit zag er erg mooi uit. Wat ik niet weet, maar zeker interessant is, is of dit framework ook beschikbaar komt om breder toegepast te worden.

Wat deze ESUG bijeenkomst verder interessant maakt is dat het de grootste bijeenkomst ooit was. Je zou dus kunnen zeggen dat Smalltalk populair is 🙂 . Dat het erg leeft blijkt ook wel uit de ontwikkelingen die er plaatsvinden om een Smalltalk VM op de IPhone beschikbaar te krijgen. Uit een heel andere hoek komen totaal andere interactievormen. Dan hebben we het over Open Croquet. Er gebeurt wat ons betreft zoveel in dit speelveld dat we 2 oktober zelf een studentenseminar organiseren rondom het thema Smalltalk.

Gepubliceerd op
Gecategoriseerd als Blog

Mooie code!

Ik spreek vaak over mooie code. De vraag is dan natuurlijk wat maakt code nu eigenlijk mooi. Het is toch een beetje vreemd dat je code ĂĽberhaupt mooi kunt vinden. De meeste klanten waar ik mee spreek vinden het een beetje nerdie: “code die mooi is… lekker belangrijk, ik wil gewoon werkende software.” Uiteindelijk hebben ze daar natuurlijk gelijk in, het draait allemaal om het eindresultaat. Daar ligt dan ook wel de kern waarom code mooi moet zijn. Software maken we op projectbasis. Na een intensief ontwikkelproces nemen we het in gebruik. Dan gaan we er mee werken. Dat is het moment dat er iets moois gebeurt. We gebruiken de software die we dachten nodig te hebben. Maar dan blijkt in eens dat het op een andere manier toch handiger kan werken. Hadden we dat niet eerder kunnen bedenken: NEE! Je kunt vaak pas tijdens het werken met de software echt ervaren wat beter of slimmer kan.

Natuurlijk gebruiken we technieken als storyboarding om deze ervaringen al vroeg boven tafel te krijgen. De moeilijkheid blijft vaak dat de gebruikers ook nog niet precies weten wat ze willen, omdat ze niet instaat zijn te anticiperen op de toekomstige eisen en wensen.

Het eindresultaat is daarmee niet alleen de software, maar juist de mate waarin we instaat zijn om deze software aan te passen. Het gaat juist om de evolutie die software door gaat. Dan wordt het toch in eens interessant en cruciaal om mooie code te schrijven. Want code wordt mooi als het helder leesbaar is, er een duidelijke structuur is en een natuurlijke opdeling kent van verantwoordelijkheden. Pas dan is het mogelijk om snel veranderingen in de software aan te kunnen brengen. De overdraagbaarheid van code neemt toe, waardoor verschillende mensen ze kan aanpassen. Als we ons dan ook nog realiseren dat de kosten van software niet zo zeer zitten in de ontwikkeling van de software, maar dat het met name zit in de vele aanpassingen die de software in haar bestaan ondergaat. Dan is het zelfs uit legbaar naar alle afnemers van software dat mooie code veel oplevert. Dus veel plezier en succes met het schrijven van mooie code.

Gepubliceerd op
Gecategoriseerd als Blog

SDN Architectuur track

Voor de SDN (Software Development Network) heb ik afgelopen jaar meerdere keren gesproken op zowel de events als de conferentie. Het zijn leuke bijeenkomsten met zeer uiteenlopende onderwerpen. Sinds dit voorjaar heeft de SDN besloten een aantal van haar track te herzien en uit te bereiden. Een van de uitbreidingen is de introductie van de architectuur track. Het doel van deze track wordt software architectuur als een losse pijler neer te zetten.

Software architectuur heeft ook mijn interesse en daarom hebben we besloten dat de SDN te helpen deze architectuur track op te zetten. Als track lead ga ik me inspannen om interessante sprekers en auteurs te benaderen en de track verder vorm te geven. Dus mocht je interessante artikelen hebben of willen spreken laat het dan horen. Anders zie ik je graag op een van de bijeenkomsten die je op de site kunt terug vinden.

Gepubliceerd op
Gecategoriseerd als Blog

Specificeren versus verifiëren

Unittesten is iets wat we inmiddels allemaal kennen. In een methode als Test Driven Development hebben we zelfs het doel om eerst de testen te specificeren en daarna de code (het gedrag) te implementeren. Dat klinkt goed en werkt ook goed als de applicatie architectuur het ondersteund. Dat we binnen Sogyo volgens een domein gedreven architectuur werken is inmiddels wel bekend en daar past deze stijl ook erg goed bij.

Op dit moment is er een interessante ontwikkeling gaande die vooral in de Ruby-wereld al uitgebreid toegepast wordt en met groot succes. Het gaat om specificatietalen. In zijn artikel A new look at Test Driven Development beschrijft Dave Atels op een beeldige manier wat het verschil is tussen de specificatietalen en testgedrevenheid. In essentie komt het neer op vooraf specificeren versus het achteraf verifiëren. Dan zou je kunnen zeggen “lekker spannend”. Echter wat het wat mij betreft interessant maakt is het feit dat je met specificatietalen dus vooraf formeel kunt beschrijven waaraan de implementatie moet voldoen. Je specifieert dus in een executeerbare taal. (Puur technisch gezien gelijkwaardig aan Unittest technieken). Dat zegt natuurlijk ook iets over de (lage) abstractie waarin de specificatie plaatsvindt. Die zou in dit geval op scenario niveau binnen een Use Case moeten liggen om concreet genoeg te zijn. Dat is mooi!
We hebben recent voor een klant een platform gerealiseerd waarin de ontkoppeling van het domein met de presentatie services plaatsvindt door “contracten” (of views op het domein) op Use Case niveau te definiëren. Dat betekent dus dat je een specificatietaal in moet kunnen zetten om tests voor deze contracten vooraf te schrijven. Interessant terein om verder te ontdekken.

Overigens zijn er best veel ontwikkelingen op gebied van specificatietalen. RSpec is in de Ruby-wereld een heel bekende. JBehave en NBehave lijken goede alternatieven voor Java en .NET. Maar ook Microsoft zelf is druk bezig met een implementatie. Je moet er nog even voor op zoek binnen Microsoft Research, maar Spec# klinkt veelbelovend.

Gepubliceerd op
Gecategoriseerd als Blog

Enterprise architect en applicatie-architect: hoe kunnen ze elkaar begrijpen ?

Tijdens een bijeenkomst op 19 maart van het Studiecentrum voor Automatische Informatieverwerking in Brussel ga ik met Rob Vens in disucssie over IT architectuur. Rob heeft jaren lange ervaring als Enterprise Architect en zal vanuit zijn achtergrond kijken naar de architectuur. Zelf heb ik ruime ervaring in applicatie (software) architectuur. Tijdens deze discussie zullen we met name de verschillende perspectieven belichten. Ondanks het feit dat Rob en ik veel samenwerken en in veel ideeen overeenstemmen wordt het zeker een spannende discussie.
Voor praktische informatie over de sessie moet je op de site van de SAI zijn.

Deze sessie is een afgeleide van de sessie die we voor de NLJUG hebben gedaan tijdens de J-Fall.

Gepubliceerd op
Gecategoriseerd als Agenda