Garabit is een kleine en jonge onderneming, dus je komt te werken in een klein team dat nauw op elkaar is aangewezen. Dit biedt kansen maar vergt ook soms improvisatievermogen. Echter de werkwijze (zie projektaanpak) sluit hierbij aan en het prototype van het eigen produkt ondersteunt het werk in een dergelijke groep. Verwacht geen lange vergaderingen, planningen die toch niet kloppen of andere burokratische rompslomp. Dat wil echter niet zeggen dat we oeverloos hacken. Bij Garabit werken we vanuit een krachtig ontwikkeld idee over hoe software zou moeten zijn en vanuit een idee hoe dat het best dan gemaakt zou kunnen worden. Procedures zijn redelijk strak vastgelegd (zeker gelet op de omvang van de onderneming), maar kunnen als er argumenten voor zijn, ter plekke gewijzigd worden.

De informatie op deze site is nog beperkt, maar er is een goed alternatief om meer over ons te weten te komen: ga naar Joel on Software en bekijk de weblog, de fora, de produkten en vooral de goede artikelen in de archieven. Als de daar beschreven ideeën (ontwikkelproces, gebruiksvriendelijkheid, arbeidsomstandigheden, enz. enz.) je aanspreken, ben je bij Garabit aan het goede adres.

In zijn weblog zet Karel Thönissen (oprichter van Garabit) zijn bijzondere ideeën over software-kwaliteit, high-integrity programming, gebruikersvriendelijkheid, groupware en vele andere interessante onderwerpen op gebied van software engineering en technologie uiteen. De blog is Engelstalig, behoudens de bijdragen die specifiek gaan over Nederland of over de Nederlandse taal. In zijn weblog legt Karel Thönissen ook het hoe en waarom van de gebruikte spelling uit.

 projektaanpak

Tijdens het projekt wordt gebruik gemaakt van XP-technieken (extreme programming). Dat betekent onder andere dat zo snel mogelijk gewerkt wordt naar een korrekt en werkzaam deel met beperkte funktionaliteit. Elke dag wordt er werkende programmatuur opgeleverd. Van oplevering naar oplevering wordt de kode getest, gerefactored en gedokumenteerd. Testen vindt intensief plaats na elke wijziging (unit-testing en regressie-testen). Alle software test zichzelf grotendeels automatisch. Per dag worden tienduizenden tests uitgevoerd. Ook reviews en inspections van designs, interfaces en implementations vinden plaats. Waar nodig wordt pair-programming toegepast om kennis over te dragen en om effektiever problemen aan te kunnen pakken.

Voorts worden de modernste technieken van high-integrity programmering gebruikt, voor zover deze toepasbaar zijn binnen Delphi/ObjectPascal. De belangrijkste in dit verband zijn objekt-oriëntatie, interface/implementatiescheiding en design by contract. DbC houdt onder andere in dat bij alle routines de prekondities waaronder de routine mag worden aangeroepen, en de postkondities waaraan het resultaat moet voldoen, worden vastgelegd in de werkende kode. Waar Delphi bepaalde high-integrity technieken niet mogelijk maakt, wordt in toenemende mate gebruik gemaakt van eigen tools.

De XP-methode en de high-integrity technieken worden geïntegreerd toegepast, waardoor deze elkaar nog eens versterken. Alles is erop gericht om fouten zo vroeg mogelijk te onderkennen en te verhelpen. We gebruiken onze eigen programmatuur waar dat mogelijk is ('we vreten ons eigen hondevoer').

afstudeeropdrachten

Er zijn op moment 2 mogelijke afstudeeropdrachten. Hoewel beide opdrachten onderdeel uitmaken van hetzelfde projekt bij Garabit en er ook zeker wisselwerkingen zijn, zijn alle opdrachten zelfstandig en niet afhankelijk van de doorgang of het sukses van een van de andere afstudeerprojekten. Alle afstudeeropdrachten hebben een link met het groupware-pakket dat ontwikkeld wordt, maar ook met de ondersteuning van het unieke ontwikkelproces. Behalve de programmeertechniek, spelen ook ergonomie, gebruikerspsychologie en vormgeving een duidelijke rol.

gevraagde voorkennis

-  Delphi/ ObjectPascal
-  ervaring met programmeren van grote systemen (afgezet tegen het interaktieve point-and-click programmeren dat visuele tools propageren)
-  goede kennis van het gesproken en geschreven Engels
-  kennis van Ada, Eiffel en design by contract strekt tot aanbeveling
-  kennis van usability-literatuur strekt tot aanbeveling

Ervaring met het programmeren van grote systemen in een taal als Delphi, Ada, Eiffel of Java wordt wel verlangd. De opdrachten gaan verder dan het hangen van wat kode achter een aardig interaktief formulier. De afstudeerders krijgen regelmatig te maken met modulen van duizenden regels zonder enige interaktie met de gebruiker. Een open en nieuwsgierige geest is ook belangrijk, want behalve veel nieuwe dingen zullen een aantal slechte gewoonten ook afgeleerd moeten worden (bijvoorbeeld het gebruik van debuggers).

Niet gevraagd: hackers die snel iets in elkaar rammen. Ook niet gevraagd: mensen met een C of C++ houding. Wij werken graag wat professioneler.

Bij Garabit kun je een unieke ervaring op doen op gebied van programmeren van pakketsoftware, extreme programming/RAD, software-kwaliteit en high-integrity programmeringstechnieken. Veel leren terwijl je met plezier werkt aan een aansprekend produkt!