site map
 
 

WarpGear ICT dienstverlening

WarpGear Software is een Nederlands ICT bedrijf dat maatwerk software ontwikkelt voor uiteenlopende klanten. WarpGear is gespecialiseerd in Internet gerelateerde projecten maar het accent ligt op de visie op automatisering en dus minder op het toepassingsgebied. Hieronder vindt u enkele bespiegelingen over onze ervaringen met softwareprojecten.

 

 Mensenwerk

Software maken is mensenwerk en de beste software komt vaak tot stand in nauwe samenwerking met de mensen die het gaan gebruiken.

Motivatie
De productiviteit van mensen is recht evenredig aan hun motivatie. Mensen die in een team werken, zijn het meest productief indien zij elkaar aanvullen en inspireren. Als gemotiveerde mensen een complex probleem te lijf gaan, zullen zij automatisch zoeken naar structuren en zij zullen in een groter project hun planning faseren. Trotse, gemotiveerde software ontwikkelaars zullen hun programma's altijd eerst zelf testen zonder dat iemand daar om hoeft te vragen. Daarom vindt u hier niet een verhaal over UML (software modellering), ERD's (gegevensanalyse) en allerlei ontwikkelmethoden.

Visie
In een vroeg stadium neemt de opdrachtgever een aantal belangrijke beslissingen t.a.v. het doel en de omvang van een project. De opdrachtgever baseert zich daarbij op een visie op de toekomst van het bedrijf. Noem dit voor het gemak "de financiële motor" van een project. Maar doelstellingen liggen zelden vast. Van een automatiseerder mag verwacht worden dat deze de opdrachtgever zal helpen om doelstellingen te formuleren en te vertalen naar technische oplossingen. De vraag of er überhaupt wel geautomatiseerd moet worden is essentieel. Vaak zijn kleinere gerichte functies ter ondersteuning van bestaande bedrijfsprocessen het meest kosten-effectief.

Koers
Een project dat langere tijd op koers ligt, bereikt zijn doel het snelste. Maar inzichten die in de loop van een project verkregen zijn, beïnvloeden die koers. Verandert de koers te veel of te snel, dan zal een project doelloos gaan ronddobberen. Daarom is het goed om iemand verantwoordelijk te maken voor zowel de voortgang als het resultaat van een project. In deze verantwoordelijkheid wordt tegelijk de productiviteit binnen het projectteam en de, vaak veranderlijke, doelstellingen van de opdrachtgever bewaakt. Daarvoor is zowel standvastigheid als flexibiliteit nodig. Bovendien moet zo iemand ook nog communicatief sterk genoeg zijn om de verschillende verwachtingen van alle betrokkenen op elkaar af te stemmen.


 Dynamiek

Tijdens de uitvoering van bijna elk softwareproject voltrekken zich een aantal dynamische processen. Hier wordt catalogisch een aantal van deze processen besproken.

Bewustwording
Eerst wordt bij softwareprojecten, veelal middels workshops of vergaderingen, geprobeerd om te achterhalen wat er eigenlijk precies moet gebeuren. Daarvoor is het interessant om eerst te bepalen wat de huidige praktijk is. Het is niet altijd gemakkelijk om daar overeenstemming in te bereiken. Nog minder makkelijk is het om het eens te worden wat de praktijk idealiter zou moeten zijn. In dit proces worden betrokkenen zich vaak pas voor het eerst bewust van allerlei zaken.

"Instrumentering"
Managers proberen een softwareproject vaak te instrumenteren. Met andere woorden: managers proberen het project of de software zelf zo in te richten dat daarmee een doel wordt nagestreefd dat niet enkel betrekking heeft op het automatiseren van een bedrijfsproces. Het is goed als software voor verschillende mensen andere functies kan hebben, maar dit houdt ook enkele gevaren in. Denk bijvoorbeeld aan de volgende zaken:

  • In softwareprojecten worden bedrijfsprocessen vormgegeven of gestroomlijnd: diverse verantwoordelijkheden van medewerkers worden opnieuw vastgesteld.
  • Het automatiseren van bedrijfsprocessen geeft allerlei mogelijkheden tot het bewaken en controleren van werk. Denk aan statistische gegevens, automatisch verzorgde signalen (bijv. via e-mail) voor managers of aan het regelen van toegangsrechten.
Centralisering
Door het automatiseren van bedrijfsprocessen ontstaan er doorgaans kansen om deze processen verder te stroomlijnen. Het wegvallen van fysieke barrières maakt dat processen die een intrinsieke samenhang vertonen softwarematig aan elkaar gekoppeld kunnen worden. Het meest klassieke voorbeeld is misschien wel een papieren adressenbestand dat op verschillende afdelingen wordt bijgehouden. In veel bedrijven worden de adressen tegenwoordig opgeslagen op een centrale server waartoe elke afdeling toegang heeft. Als bij verdere automatisering meer en meer processen centraal beheerd worden, raken afdelingen vaak een stukje van hun vrijheid kwijt.

"Zwaan kleef aan"
Om dezelfde reden als hierboven onder centralisering is gezegd, leidt een softwareproject vaak ernstig aan een "zwaan kleef aan"-syndroom. Natuurlijk hangen allerlei processen in een bedrijf met elkaar samen. Het doet altijd pijn in het hoofd om doublures te zien van zaken die op de ene afdeling geautomatiseerd worden en op de andere niet. Vanuit het oogpunt van automatisering lijken veel zaken inefficiënt of zelfs overbodig, maar vaak vergeet men dan even de "digitale bril" af te zetten. Gegevens zijn zelden slechts gegevens, ze hebben een (soms symbolische) functie en maken deel uit van een proces.


 Gegevensanalyse

Gegevensanalyse heeft voor WarpGear een speciale plaats in elk softwareproject. Dat behoeft voor veel mensen nadere uitleg. Gegevensanalyse heeft niet altijd de zelfde betekenis, WarpGear gebruikt de volgende definitie: Gegevensanalyse is een activiteit waarin een automatiseerder of analist alle elementen in een bedrijfsproces inventariseert, benoemt en de onderlinge verbanden tussen deze elementen probeert te doorzien.

Kosten
Uit onderzoek blijkt dat bij bedrijven gemiddeld ruim 80% van de uitgaven aan software betrekking heeft op onderhoud en aanpassing van bestaande software, slechts 20% wordt besteed aan nieuw te bouwen software. Vooral snel gebouwde software waarvan de gegevensverzamelingen niet vooraf helder zijn vastgelegd, laten zich moeilijk (lees kostbaar) aanpassen. Om het anders te zeggen: bomen zonder wortels groeien niet.

Vocabulaire
Juist aan het begin van nieuw te bouwen software bestaat een goede kans om bovengenoemde ellende voor te zijn. Vaak verdient een investering in gegevensanalyse aan het begin van een project zich al tijdens het zelfde project terug. Niet alleen wordt de software makkelijker te onderhouden en uit te breiden, een traject van gegevensanalyse leent zich er uitstekend toe om alle partijen op een lijn te krijgen. Alleen al door de elementen in een proces te benoemen ontstaat een vocabulaire waarmee alle betrokken partijen elkaar snel begrijpen.


 Object Oriëntatie

Te midden van deze krachten (zie Dynamiek) maakt WarpGear haar software. Object oriëntatie staat daarbij centraal. Waarom?

Computertaal
Soms vragen mensen zich af: waarom doet de computer niet gewoon wat ik zeg??? Het antwoord is: omdat de computer toch altijd nog een andere taal spreekt. Het gevaar is niet zozeer dat computers gaan "denken" als mensen, was het maar waar! Nee, het gevaar is dat mensen gaan denken als computers.

Spreektaal
Object oriëntatie (OO) is een logische volgende stap op het gebied van programmeertalen. Programmeertalen zijn van generatie tot generatie steeds abstracter geworden. OO is zelfs zo abstract dat het op gewone spreektaal kan lijken. Als software geschreven wordt met simpele spreektaal zal het dichter komen bij het natuurlijk denken van de mens en dat is mooi om twee belangrijke redenen:

 
  1. Het menselijk denken is zeer efficiënt. Het vermogen tot abstractie is misschien wel de meeste krachtige eigenschap van ons denken. Zo kan met OO ook zeer efficiënt geprogrammeerd worden. Niet zozeer efficiënt uit het oogpunt van bits en bytes (code "optimalisering") maar eerder efficiënt vanuit het oogpunt van het gehele project. Denk daarbij aan het beheersen van complexiteit en het beheer/onderhoud van modules en code. In OO staat hergebruik van code centraal.
  2. Ten tweede, en niet minder belangrijk, gaan software ontwikkelaars weer meer denken als "normale mensen". Ontwikkelaars kunnen daarom door OO veel gemakkelijker communiceren met andere partijen in een project. Eindgebruikers kunnen zodoende meer invloed uitoefenen op wat de software voor ze zal doen en hoe het zich moet gedragen. Anders gezegd: in welke taal zij zelf voortaan de computer zullen gaan aanspreken.
Daarom probeert WarpGear haar software met behulp van OO zo te ontwikkelen alsof men een handleiding schrijft die tegelijk het programma is: helder, leesbaar en onderhoudbaar. "Het kan niet simpel genoeg zijn".


 
 
Copyright © 2004 WarpGear Software