In opdracht van de gemeenten Utrecht en Eindhoven ontwikkelde VX Company een webregistratiesysteem voor incidenten. Daarvoor gebruikte het Visual Studio 2005, al was die ontwikkelomgeving op dat moment alleen beschikbaar in een bètaversie. Andere risico’s zijn bij dit project daarom zo veel mogelijk gemeden.
De ontwikkeling van de WeBM-toepassing (Winkelcentrum en Bedrijvenpark Meldingensysteem) startte halverwege 2005. Op dat moment was de tweede bètaversie van Visual Studio 2005 net beschikbaar. Als Microsoft de ontwikkelomgeving volgens planning zou afmaken, zou de definitieve versie een paar weken voor het eind van het project beschikbaar zijn. De operationele inzet van WeBM zou dan gewoon op het normale platform kunnen plaatsvinden. Besloten is om met de bètaversie aan de slag te gaan.
Omdat het gebruik van de bètaversie op zich al genoeg problemen kon opleveren, zijn andere technische uitstapjes zoveel mogelijk vermeden. Zo zijn de risico’s voor dit project binnen de perken gehouden. Uiteindelijk bleek het projectbeheer dan ook een grotere uitdaging te vormen dan technische nieuwigheden en onvolkomenheden.
Onveilig gevoel
WeBM is een webregistratiesysteem waarop winkeliers, gebruikers van bedrijventerreinen, en andere betrokkenen incidenten kunnen invoeren. “Denk daarbij aan een dievenbende die in een bepaalde regio actief is, het aanbieden van vals geld en personen die zich verdacht gedragen of overlast veroorzaken”, verduidelijkt projectleider Bianca Micklei-van de Vijver. “Ook kapotte lantarenpalen, volle prullenbakken en zwerfvuil kunnen op deze manier worden gemeld. Die zorgen immers eveneens voor overlast en een onveilig gevoel.”
Deelnemers kunnen dergelijke zaken op de website zetten, waarmee die informatie ook voor anderen beschikbaar is. Reinhard Brongers, als softwarearchitect bij het project betrokken, maakt de vergelijking met een onlinenotitieblok. “De informatie is wel gestructureerd. Er zijn bijvoorbeeld aparte velden en keuzemogelijkheden voor het soort melding, persoonskenmerken en dergelijke. Je moet er later natuurlijk wel iets mee kunnen.” Micklei: “De twee gemeenten hebben WeBM laten ontwikkelen en doen ook de promotie ervan, maar registreren zelf niet. De politie kan wel meekijken en -doen. Hetzelfde geldt voor het dienstencentrum dat verantwoordelijk is voor het cameratoezicht in Utrecht. Zodra dat iets ziet, wordt dat ingevoerd.”
De gemeenten Utrecht en Eindhoven zijn de opdrachtgevers voor het project, maar de vraag kwam in eerste instantie van de winkeliers. Zij voelden de behoefte om incidenten met elkaar te kunnen delen. Daarnaast zijn VX Company zelf en het 3CT (Consultatie Centrum voor Communicatie en Technologie) mede-investeerders. Uiteindelijk is het de bedoeling ook andere gemeenten voor de oplossing te interesseren.
Visuele overerving
“In totaal zijn we vier maanden bezig geweest met dit project”, zegt Brongers. “We zijn gestart in september. Hoewel zowel Visual Studio als SQL Server 2005 toen in bèta waren, wilden we wel die nieuwe versies gebruiken. Omdat we als VX Company zelf ook investeren in het project, konden we wat meer risico nemen. We zijn tijdens het ontwikkeltraject geleidelijk overgegaan naar de definitieve software. Dat extra risico was overigens beperkt. We hadden zoiets al eerder gedaan, dus we hadden er vertrouwen in. Bovendien hebben we een goede relatie met Microsoft. Bij onoverkomelijke problemen hadden we een Microsoft-consultant kunnen inschakelen, maar dat is niet nodig geweest. Omdat we met de nieuwe technologie wilden werken, hebben we geen andere technische complexiteit in het project gestopt. Als je nu kijkt naar het eindresultaat, hebben we toch al leuke dingen kunnen doen.”
“We werken al jaren met .Net. Versie 2.0 is november vorig jaar gelanceerd. Er zijn nogal wat verschillen met de eerste versie, in de ide (integrated development environment), het ‘deployment’-platform en de programmeertaal C#. Voor dit project zitten de belangrijkste veranderingen in ASP.Net. Er zitten veel wijzigingen in het model. Bij het bouwen van webtoepassingen kan je ervoor kiezen om drie op elkaar lijkende pagina’s apart te maken, of deze uit één dynamische pagina met gebruikercontroles op te bouwen. Kleine stukjes functionaliteit die op meerdere pagina’s terugkomen, worden daarvoor in een aparte dll (dynamic linked library) gezet. 2.0 ondersteunt dit dynamische model nog wel, maar het is niet zo makkelijk meer te gebruiken.”
In elke objectgeoriënteerde taal kunnen objecten eigenschappen van elkaar overerven. In ASP.Net 2.0 bestaat ook visuele overerving. De daarbij gebruikte ‘masterpages’ bestaan uit templates, css (cascading style sheets) en ‘widgets’, en gaan volgens Brongers een stuk verder dan alleen de ‘look-and-feel’. “Je kunt er ook de menu’s in vastleggen. Je kunt contentgebieden definiëren, en alleen degene laten zien die op dat moment relevant zijn. Het is niet meer nodig die functionaliteit in een aparte dll te definiëren. Deze oplossing bleek zelfs beter te werken dan het oude dynamische laden. Bovendien zie je bij het gebruik van dll’s in Visual Studio niet hoe die eruit gaan zien. Bij het gebruik van ‘masterpages’ zie je dat wel. Hoewel we geen extra complexiteit wilden, bleek de nieuwe aanpak juist prettiger te zijn.”
Gebruikersrechten
Niet alle problemen zijn zo gemakkelijk op te lossen. Brongers noemt als voorbeeld de vertaling van gebruikersrechten naar de schermen. “Als ik Piet ben, mag ik een bepaald veld invullen. Als ik Jan ben, mag dat niet. Wij gebruikten daar een declaratief model voor. We zetten bij elke veldvariabele een attribuut, dat voor elke rol één keer gecontroleerd werd. Die variabelen zijn in versie 2.0 niet meer toegankelijk. Nu moeten we die check dus op elke pagina uitschrijven: voor deze rol, is dat, dat en dat zichtbaar enzovoort. We hebben dat nog niet opgelost; dat wilden we niet ook in dit eerste project doen.”
Microsoft levert een tool om projecten naar de nieuwe versie om te zetten: de projectconverter. Brongers ziet dat vooral als een hulpje bij het programmeren. “Als je een 1.0-project in Visual Studio 2.0 binnenhaalt, wordt dat automatisch geconverteerd, en kan je zien hoe je bepaalde dingen in de nieuwe versie zou moeten doen. Soms is herbouwen echter beter.”
Het omzetten van complete bestaande projecten ziet hij niet zitten. “We blijven de oude projecten op de oude versies doen. We gaan niet een heel project converteren alleen om wat nieuwe functionaliteit te kunnen toevoegen. Je zou dan ook de hele acceptatietest opnieuw moeten doen. Het zou zelfs kunnen dat we een nieuw project op versie 1.1 starten, als een klant dat vraagt.”
“We hebben onze ontwikkelstraat nu gewoon ingericht op twee versies. Daarvoor gebruiken we VMware met verschillende toolsets. Als een nieuw project start, krijgen onze ontwikkelaars een bepaald image met een bepaalde toolset. Binnen VX Company hebben we al een aantal standaardimages. Komen we iets te kort, dan moeten we extra tijd inruimen voor het maken van een ander image.”
Kennisopbouw
“Je wilt dat elk project iets toevoegt aan je ontwikkelstraat”, zegt Brongers, die ook technisch manager van de Microsoft-ontwikkeleenheid is. “Dit is het eerste commerciële project dat we met .Net 2.0 doen. Daarom voegen we deze keer geen softwarelibraries toe, maar vooral kennis.”
“We hebben in onze ontwikkelmethode ruimte voor kennisopbouw en -deling. Die ruimte gebruiken we ook om te bepalen wat we bij het volgende project wel en niet moeten doen. De ‘masterpages’ gebruiken we bijvoorbeeld de volgende keer weer, de beveiligingattributen niet. De volgende keer is het team dus minder tijd kwijt aan de ‘masterpages’. Die tijd kunnen ze besteden aan een andere oplossing voor de beveiligingattributen. Daarnaast hebben we een ‘geleerde lessen’-document dat we na elk project bijwerken.”
De geleerde lessen zitten bij dit project niet zozeer in de technische als wel in de organisatorische hoek. Micklei: “We hadden nu te maken met twee gemeenten die niet onderling met elkaar in overleg waren. Dat leverde twee gebruikersgroepen op, zonder gezamenlijke afgevaardigde. We hebben het functioneel ontwerp daarom naar ons toe getrokken, anders was de voortgang in gevaar gekomen. Dat hadden we achteraf bezien anders moeten doen. We hadden de gebruikers bijvoorbeeld meer bij het project moeten betrekken. Nu hebben we niet alles aan hen voorgelegd.”
“Omdat het project op basis van een vaste tijd en een vast budget was afgesproken, konden we ook alleen wat beknibbelen op de functionaliteit, in overeenstemming met de klant. Dat kon hier eigenlijk niet, omdat wij als mede-investeerder zelf ook die functionaliteit mede bepaalden. Enerzijds was het dus een probleem dat er niet één eigenaar was. Anderzijds was het onze redding dat wij zelf ook investeerden in dit project.”
Loopbaan
Bianca Micklei-van de Vijver, projectleider en ontwikkelaar bij het webregistratiesysteemproject, is in 1996 afgestudeerd in de econometrie. Reinhard Brongers, softwarearchitect en technisch manager, studeerde in 1994 af in de informatica. Tot 2000 hielden zij zich vooral bezig met softwareontwikkeling in Delphi, PowerBuilder en Java. Toen Microsoft het .Net-platform lanceerde, stapten ze over. Nu ontwikkelen ze vooral webtoepassingen en af en toe een Windows-applicatie. Brongers geeft ook Microsoft-trainingen.