dinsdag 16 oktober 2007

Instant Mantis: snel en direct een bug/issue tracking systeem opzetten

Een uitgebreid (!) verslag van een uit de hand gelopen experiment :-) voor het gebruiken van een issue tracking systeem.

Het bedrijf
Ik ben nu dik 2,5 jaar bij hetzelfde bedrijf gedetacheerd, en in die tijd is het bedrijf (ondanks of dankzij :-) ) flink gegroeid. Momenteel zitten we met 50 man in het nieuwe pand omdat het oude veel te klein werd. Niet alleen het bedrijf groeide, ook de projecten zelf groeiden (groter, ingewikkelder, etc).

Werkwijze
Wat niet direct mee groeide waren de werknemers zelf. Nog steeds wordt per project 1 status document in Word bijgehouden (groot, onoverzichtelijk, 1 persoon tegelijk wijzigen, etc). Nu worden daar voornamelijk mechanische dingen van de machines bijgehouden (aanpassingen), of klant/project gerelateerde zaken (wat besteld en geregeld moet worden). Want om alles van software bij te houden is een onbegonnen zaak.

Nu gaat dat meestal wel goed. De Voordelen van een klein bedrijf zijn de korte lijnen en de informele contacten. En de projecten waren nog te overzien. Er is een versie beheersysteem (Borland Starteam) en een eigen framework (met dank aan Aaldert :-) ). Bij problemen wordt de programmeur in kwestie aangesproken: “Als ik dit en dat doe, doet ie het niet meer” -> “Oké, ik zal even debuggen en een nieuwe versie maken”. Echter, niet iedereen houdt consequent een “changelog” bij van wat er bij welke versie veranderd is.

Huidig project
Momenteel werk ik aan een machine die nu bij 2 klanten staat: 4 in Duitsland en 2 in Engeland. En op de zaak zelf staat een proto type (voor testen). De laatste tijd hield ik de meeste dingen bij in de email: “Ik heb een probleem”, “Kun je dit en dat even voor me doen of maken?” -> “Stuur maar een email, anders vergeet ik het”. In Outlook gaf ik dan een vlag aan emails die ik af moest handelen. Dingen die mij te binnen schoten, schreef ik op een kladblok, of hield ik in een draft e-mail bij. Maar met 2 klanten die al met de machine werken (dankzij “Agile development” in plaats van de “Waterfall methode” :-) ) kreeg ik vaak de vraag (van projectleider) of iets al opgelost was, en zo ja in welke versie. Dankzij de changelog kon ik daar wel een antwoord opgeven, maar alleen ik had dus eigenlijk het overzicht.

Op zoek naar iets beters…
Natuurlijk wist ik wel dat het beter/anders kan en moest, maar je past je al gauw aan aan het bedrijf en komt in een bepaalde sleur vast te zitten (druk genoeg met programmeren, bug fixen, etc). Toen een nieuwe klant erbij kwam (in Nederland, met weer andere eisen & wensen) en de vakantie dichterbij kwam, werd het voor mij duidelijk: zo kan het niet meer, dit moet ik anders gaan doen. Ik ben toen op Internet wezen zoeken naar een bug/issue tracking systeem. Nu schrok ik een beetje van het aanbod: welke moest ik kiezen, en kon niet alles uitproberen (geen tijd). 1 naam kwam ik een aantal keren tegen, met goede recensies: Mantis. Op 1 site kreeg het zelfs een cijfer 9. Na wat zoeken op de site (http://www.mantisbt.org/) kwam ik “Instant Mantis” voor Windows tegen, wat precies voor mij geschikt was!

Instant Mantis
Mantis is een (open source) issue tracking systeem. Op site downloade ik gratis :-) de 20mb zip, wat na uitpakken 70mb groot bleek te zijn. In de hoofddirectory vond ik 2 batchbestanden: 1 om te starten en 1 op te stoppen. Zo simpel is het. Bij het starten wordt automatisch MySQL (database) en Apache (website) gestart. Default start Apache op poort 8008, maar dit kon in het batch bestand eenvoudig aangepast worden naar 80. Firefox opgestart en ik kon direct aan de slag. Alles kan/moet via de webpagina ingesteld en aangepast worden: projecten, users, issues, etc.

Bugs en todo’s worden als “issues” ingevoerd. Hierbij kunnen de standaard velden ingevoerd worden: priority, severity, description, notes, attachments, status, etc. Er kunnen ook eenvoudig “custom fields” aangemaakt worden, bijvoorbeeld een required “customer” veld met een lijst van klanten waarvoor een issue geldt. Gebruikers krijgen automatisch een e-mail bij een nieuwe issue, en de “poster” krijgt e-mails terug als de status veranderd (fixed,feedback), notitie is toegevoegd, etc.

Acceptatie
Eerst wilde ik gewoon voor mezelf gebruiken en uitproberen. Ik liet het even vallen bij een (assistent) projectleider bij de klant op locatie (heeft VPN verbinding naar de zaak zelf). Deze was meteen geïnteresseerd en heb hem toen de computernaam opgegeven waarop het draaide (vmware build server). Na 1 dag proberen was hij helemaal enthousiast en moest voor hem ook de andere machines bij die klant als projecten toevoegen, en de nodige users voor die projecten. Hij kan precies zien welke bugs en todo’s openstaan, krijg bericht als iets in een volgende versie gefixed is, etc. Alles kan nu precies gevolgd worden (evt discussies via notes, extra info via attachments, automatische changelog voor een versie etc. Na nu een week draaien willen hij en ik niet meer anders :-). Steeds meer mensen gaan het nu gebruiken, en zijn enthousiast. Er is vorige jaar iets vergelijkbaars geprobeerd met T-Plan, maar dit beviel erg slecht: traag via VPN, onoverzichtelijk en onduidelijke GUI (op een label klikken om editbox te krijgen…) en te beperkt.

Huidige status
Na de vakantie heeft Mantis zich steeds verder verspreidt over het bedrijf. Ondertussen is het duidelijk geworden dat dit officiëler gebruikt moet gaan worden. In plaats van dat het draait op een van de vmware build/release images, moet het natuurlijk op een “echte” interne server draaien, en ook voor buitenaf via de website bereikbaar zijn (in plaats van alleen via VPN).

Toekomst
Voorlopig zal Mantis nog wel gebruikt worden :-). Het biedt bovendien perspectieven voor de toekomst. Er zijn namelijk verscheidene 3rd party koppelmogelijkheden zoals test management en project en release management. Bijvoorbeeld de test scripts worden in het test management pakket ingevoerd, en als een test faalt of opmerkingen zijn, dan worden deze als issues in Mantis ingevoerd en gekoppeld.
Maar het is ook mogelijk dat eerst een uitgebreid onderzoek gedaan wordt naar andere mogelijkheden, omdat Mantis 1 van de vele pakketten is. Voorlopig voldoet het echter prima.

Discussie
Hebben anderen ook dergelijke ervaringen? En wat gebruiken jullie zelf? Hebben jullie nog aanbevelingen of tips?

Geen opmerkingen: