Applicatie Ontwikkeling bij Infrae bv
Kit Blake
Managing Partner
Agenda
- Infrae als bedrijf
- Applicaties en klanten
- Ontwikkelingsmethodologie
- Vragen
Infrae
- Software ontwikkeling bedrijf
- Gevestigd in Rotterdam, opgericht in 2001, bv in 2006
- Concentratie op web applicaties
- Focus op content management en databeheer, voor grote organisaties
- Open source business model
Infrae applicaties/producten
- Project naar product aanpak
- Silva Content Management System
- MOAI Open Archives Repository Server
- Document Library
- Mobile middleware*
- PopiView wordt een GAE project
Klantenkring
- Klanten in 8 Europese landen, US en Australië
- Universiteiten, overheden, NGO’s*
- ETH Zürich, Wirtschaftsuniversität Wien, Universidade de Coimbra, University College London (Silva)
- Erasmus Universiteit bibliotheek, TU Delft bibliotheek, Coimbra (MOAI)
- Eerste klanten zijn nog steeds betrokken
Meer Infrae klanten en applicaties
- UMC (Universitair Medisch Centrum Utrecht): registratie systemen
- Bijvoet Centrum voor Biomolecular Research: forum
- SFK (Stichting Farmaceutische Kerngetallen): inventarisatie applicatie
- Vlaamse Overheid: ‛Zonder is Gezonder’ pesticiden tracker
- Vlaamse Milieumaatschappij site/intranet
Open Source
- Onze software heeft geen aanschafkosten
- Wel een OSI (Open Source Initiative) goedgekeurde licentie (BSD)
- Wij investeren (constant) in de code en community
- Software is services
Infrae Services
- Boek: ‟Crossing the Chasm: Marketing and Selling High-Tech Products to Mainstream Customers” (Geoffrey A. Moore)
- The Whole Product concept
- Support
- Integratie
- Customisatie
- Documentatie
- Training
- Applicatie hosting
Werkwijze: agile programming
methodologie
- Methoden om risico’s te verminderen
- Software is ontwikkeld in korte iteraties
- Elke iteratie is een software project op zich
- Inclusief planning, analyse, ontwerp, testen en documentatie
- Doel van een iteratie is iets bruikbaars op te leveren
Enkele principes van agile ontwikkeling
- Klanttevredenheid door snelle levering van bruikbare software
- Regelmatig aanbod van nieuwe werkende software
- Voortgang wordt afgemeten aan de hand van werkende software
- Wijzigingen van doelstellingen zijn welkom, ook laat in het proces
- Alle functionaliteit moet eigen tests hebben (‛test driven development’)
Definitie van functionele eisen
- Infrae gebruikt ‛use cases’ (gebruikers scenario’s), dit zijn gewoon verhalen
- Er zijn stakeholders en ‛actors’, de mensen die het systeem gebruiken
- Alle actors moeten betrokken zijn in het proces
- Direct persoonlijk contact is de beste vorm van communicatie
- Citeer het YAGNI principe: You Aren’t Going to Need It
Reference sites
Detaillering van de project planning
- Bepalen van de inhoud (scope)
- Rangschikken van features met MoSCoW analyse
- Must have
- Should have
- Could have
- Won’t have
- Timing (schedule)
- Kostenraming
Sprints
- Een ‛sprint’ is een gezamenlijke programmeersessie
- Verzameling van deskundige programmeurs
- Snel en nauwkeurig ontwikkelen
- Veelgebruikt proces bij Python ontwikkeling
- Werkt ook goed voor klanten met een multidisciplinair team: mensen
van de uitvoerder, de opdrachtgever en eindgebruikers
Agile development methodologieën
- http://agilemanifesto.org/
- eXtreme Programming (XP) en pair programming
- Scrum is heel populair
- Scrum/XP Hybrid
- Lean
- Velocity tracking
Open source business model issues
- Code base maintenance is een groot probleem
- Software services heeft beperkingen, uurtje/factuurtje
- Support voor de communiteit is ook een afleiding
- Recent overgestapt van Subversion naar Mercurial, met syncing naar Github/Bitbucket
- Aankomst van ‛apps’ zijn een conceptueel probleem
- Om het model uit te werken hebben wij meer iteraties nodig
Vragen....
Dank u wel