Follow Us on Twitter

Verslag DeveloperDerby 2007 - Whitehorses interne programmeerwedstijd

Gepubliceerd in

Januari 2007 –Whitehorses heeft voor de tweede keer in haar bestaan een interne programmeerwedstrijd uitgeschreven, de DeveloperDerby 2007. Vier verschillende teams, ieder met een eigen technologiekeuze, proberen in de vastgestelde tijd van anderhalve dag zoveel mogelijk functionaliteit uit dezelfde business case te realiseren. Een verslag…

De technologie

Het doel van deze wedstrijd is het beoordelen van de geschiktheid van de gekozen technologieën voor RAD (Rapid Application Development). Enerzijds is er de keuze uit ontwikkeltools welke meer naar traditioneel gefaseerd ontwikkelen neigen, zoals Oracle Designer en JDeveloper in combinatie met ADF, en anderzijds tools die op het eerste gezicht veel geschikter zijn voor RAD, zoals Oracle Application Express.

De case

whiteponiesKinderdagverblijf Whiteponies is een kinderdagverblijf in de regio Nieuwegein. Wegens de verwachte groei wil het management graag een applicatie aanschaffen die het inschrijven van kinderen en de planning geautomatiseerd kan ondersteunen. Ook moet deze applicatie het voor (toekomstige) ouders mogelijk maken om zich via een zelfbedieningsscherm aan te melden, hun kind in te schrijven, voorkeuren op te geven voor dagen en groepen en de status van hun inschrijving te volgen middels raadplegen van de applicatie en emailcorrespondentie.

De jury

Ook deze editie van de Developer Derby vroeg de aanwezigheid van een kritische jury. Aanwezig hiervoor zijn Kees Leune, Security consultant bij Northwave, Sven van de Riet, Analist bij Giarte en Marcus Martina van Sogeti. Bijna overbodig te melden dat zij security en gebruikersvriendelijkheid hoog in het vaandel hebben.

foto3

De punten

Ieder team kreeg een lijst met business rules, 80 in totaal, variërend van het gebruik van domeinenwaarden en LOV’s tot het implementeren van de webservice Postcode, die straatnaam en woonplaats vult op basis van huisnummer en postcode. Het printen van een pdf-bestand vanuit de applicatie, authenticatie van gebruikers op basis van gebruikersnaam en wachtwoord en het berekenen en tonen van de restcapaciteit per groep behoren ook tot de gewenste specificaties.

De teams

Triple-WWW met Oracle Designer / Developer suite

Om half 12 op de eerste dag is dit team al aan het genereren, en tegen vieren komen ze lekker op stoom. Designer representeert een keuze voor een technologie waarmee het team snel tot resultaten kan komen. Enerzijds biedt dit product de mogelijkheid om modules (schermen) op basis van gegevensdefinities te genereren, en kost het modelleren van deze laag niet al te veel tijd.

In de presentatie worden hun resultaten getoond. Front-end login is mogelijk, de daadwerkelijke aanvraag strandt na registratie van de naam en geboortedatum van het nieuw aan te melden kind bij de navigatie naar een volgend blok. De back-end applicatie is apart gebouwd. Direct is er een menu zichtbaar om navigatie tussen de 3 vers gebakken schermen mogelijk te maken. Gedemonstreerd wordt het ‘Onderhouden van groepen’ (CRUD), evenals het koppelen van leidsters aan groepen. ‘Onderhouden van medewerkers’ met koppelmogelijkheid aan een functie (leidster of medewerker) volgt in rap tempo, waarna live een plaatsing wordt gerealiseerd middels het scherm ‘Plaatsingen’. Hier is een overzicht zichtbaar van aangemelde kinderen met de status nieuw. Door er een aan te klikken wordt het indelingsscherm geopend. Hier valt op dat de restcapaciteit bij de groepskeuze in het LOV als extra service getoond wordt. Na het vastleggen van de groepskeuze, de daadwerkelijke plaatsing van het kind, navigeert de applicatie terug naar het overzicht van de nog te plaatsen kinderen. Als bonus showt het team nog even het verstuurde email met het bevestigingsbericht van de aanmelding. Knap werk, maar er was duidelijk extra tijd nodig om de front-end nog eens onder de loep te nemen.

Newbees met Oracle Application Express (APEX)

Deze club had zijn oog op het gebruik van Application Express en Oracle XE laten vallen en zij kozen hiermee voor de winnende technologie van vorig jaar. APEX is bijzonder geschikt om snel een webapplicatie op te zetten met niet al te veel applicatielogica. De administratieve laag is miniem, schermen kunnen door middel van wizards opgebouwd worden, en op dezelfde manier kan functionaliteit toegekend worden. Een waardige tegenstander voor het Designer team dus.

De presentatie vangt aan met het tonen van het welkomstscherm en een vlekkeloze ouderregistratie, waarna met behulp van de per mail toegezonden gegevens ingelogd kan worden. Het overzicht van bestaande aanmeldingen verschijnt nu, en een nieuwe aanmelding wordt gedemonstreerd. De wizard-achtige aanmeldprocedure illustreert tevens het gebruik van domeinwaarden, lov’s, een link naar een externe webapplicatie en volledig Nederlandstalige foutmeldingen wanneer er niet aan zogenaamde constraints voldaan wordt. De vraag vanuit de jury, ‘Hoeveel tijd denken jullie nog nodig te hebben om tot 100% functionaliteit te komen’ geeft wel aan dat ze onder de indruk zijn! Wel spraken zij hun twijfels uit over de security van de webapplicatie, omdat het session-id gewoon zichtbaar is in de URL.

TZT met Jdeveloper en ADF

De naam zou te zijner tijd nog bedacht worden. Afwachten dus. Hun tactiek was al wel bekendgemaakt : JDeveloper in combinatie met ADF, fundament van menig internationaal internetbolwerk. ADF maakt het voor de ontwikkelaar mogelijk alle denkbare Business Services te registreren als Data Controls. Voorbeelden hiervan zijn WebServices (Postcode), Java Beans, PL/SQL functies en tabellen of views (indirect). Deze Data Controls zijn vervolgens de componenten die pagina-ontwikkelaars in hun pagina’s kunnen toepassen, door ze er simpelweg naar toe te slepen. De ruggegraat van een data- en transactie gerichte applicatie kan op deze wijze vrij snel worden neergezet. Met ADF besteedt de ontwikkelaar dus veel tijd aan het registreren van deze Data Controls en vervolgens het bouwen van individuele pagina’s, waarbij vrij weinig generieke definities over pagina’s heen gebruikt kunnen worden. Daarnaast kan vaak gewenste functionaliteit, zoals multi-record schermen, master-detail schermen en lijsten van waarden nog de nodige hoofdbrekens opleveren en veel tijd aan handmatig ontwikkelwerk vergen. Een dappere keuze van TZT dus om de strijd mee aan te gaan met Designer en APEX.

adf

De presentatie start met het toelichten van de architectuur. Weer zien we een geslaagde inlogprocedure, maar bij nadere inspectie van een oplettend jurylid komt boven water dat de context na inloggen zoekgeraakt is, want ALLE oudergegevens worden nu getoond. Een nieuwe aanmelding verloopt hier wel vlekkeloos in de vorm van een wizzard. Het sturen van een email zit in de debugfase en wordt getoond via een stand-alone testset welke het versturen verzorgd, en dit integrale onderdeel van JDeveloper laat zien wat een krachtige ontwikkeltool dit nu feitelijk is. Nog een laatste opmerking : Volgens de feature lijst kunnen de hintteksten toch echt zichtbaar zijn in de webapplicatie.

herman

Flexomaniacs met Flexbuilder

FlexBuilder is een product van Adobe en maakt zoveel mogelijk gebruik van standaarden: de IDE is ontwikkeld in Java en de broncode van ontwikkelde applicaties bestaat uit XML. Verder is alleen een browser (Internet Explorer of Mozilla) inclusief Flash Player nodig om de ‘resultaten af te kunnen spelen’. In de ontwikkelfase kan men eenvoudig schakelen tussen de visuele representatie en de broncode, die nauw samenwerken. Na het plaatsen van interface componenten zoals tekstvelden, knoppen, links en drop down menu’s kan de samenwerking daartussen worden geregeld via zogenaamde ‘properties’ of door in de broncode met de hand XML toe te voegen. Het resultaat wordt gecompileerd en in een browser geladen. Het eindresultaat blijft dus een Flash object in een HTML bestand maar het grote voordeel is dat in vrij korte tijd ingewikkelde functionaliteit gemaakt kan worden. Gaat de winnaar van vorig jaar het afleggen tegen deze nieuwe technologiekeuze?

In de loop van de eerste dag werd het voor de Flexomaniacs duidelijk dat zij hun ontwikkelomgeving te complex opgezet hadden en hierdoor erg veel tijd verloren aan bijvoorbeeld het registreren van de teamleden binnen het versiebeheersysteem. Dit in combinatie met een nieuwe techniek waar zij nog weinig ervaring mee hadden zorgden ervoor dat ze niet in de compilatiefase terecht konden komen. In de ochtend van dag 2 traden de ware consultants in dit team dan ook naar voren en besloten zij hun doel te herzien. Er werd nu gefocused op het gaan laten zien van wat er allemaal mogelijk is met deze techniek en het team trok zich terug uit de competitie.

flexo

Met hun vrije keuzethema in acht nemend - ‘Visie op volgend jaar’ - word er een flitsende demo gegeven van een telecommunicatie webwinkel. Hier blijkt de investering in Flexbuilder als tool voor het bouwen van krachtige single-screen applicaties gerechtvaardigd omdat voordelen als geen tijdsverlies door roundtrips naar de database voor dataverificatie duidelijk naar voren komen. Zo had het eruit kunnen zien…

De eindscores

Na lang beraad van de jury is deze tot het unaniem uitroepen van een winnaar gekomen, het Oracle Application Express team. APEX blijkt door de gepresenteerde resultaten erg geschikt voor applicaties die snel gerealiseerd moeten worden en gebruik kunnen maken van standaard userinterface en mogelijkheden van de tool. Aanpassen van de standaard meegeleverde templates zal veel tijd vergen en de voorsprong die dit team vanaf de start al had grotendeels teniet doen.

martin

Conclusie

De Whitehorses DeveloperDerby 2007 was weer een groot succes. Men was zeer te spreken over de organisatie en de begeleiding van de DeveloperDerby. Er is veel geleerd, we hebben veel gelachen. Volgend jaar volgt zeker een herhaling. Wellicht dat er dan weer meer sprake van evenwicht is tussen de teams en gaat de strijd meer gelijk op.

En vanzelfsprekend werd er direct een nieuw team gevormd om de prijzen aan een onderzoek te onderwerpen…

nieuwteam

Waardering:
 

Reacties

Nieuwe reactie inzenden

De inhoud van dit veld is privé en zal niet openbaar worden gemaakt.

Meer informatie over formaatmogelijkheden

CAPTCHA
Deze vraag is om te testen of u een persoon bent en om spam te voorkomen
Image CAPTCHA
Enter the characters shown in the image.