Een app die niet werkt, wat nu?

Waarom je de software die je gebruikt wilt blijven ontwikkelen. (En niet wilt stoppen en het over een andere boeg gooien.)

Onbetrouwbaar

Nadat wij goed en wel aan de slag waren met de liturgie generator bleek dat we een nieuw probleem hadden: Presentaties waarop willekeurig elementen (tot zelfs volledige slides) ontbraken, het generatie proces wat op willekeurige momenten stopte en zelfs het totaal niet opgestart krijgen op bepaalde computers.

Wat nu

In principe was de applicatie een prima softwareoplossing voor ons druk probleem: we hadden de presentatie samensteltijd tot 1/3 teruggebracht.

Maar het probleem van onbetrouwbare resultaten begon wel tot vragen te leiden en zelfs tot suggesties om een volledige andere softwareoplossing te gaan gebruiken.

Een oplossing is nog ver weg

Allereerst is er onderzoek gedaan naar de aard van het probleem. Het resultaat was ontluisterend: iedereen ervoer fouten en 25% kon niet eens een liturgie generatie voltooien.

Het probleem bleek zich in de software te bevinden. Microsoft PowerPoint liet zich zeer slecht aansturen door de Windows Form applicatie. (Dit proces is ook wel bekend onder Office Automation en berust op COM Interop.)

Ook het onderzoek naar alternatieven in aansturing was niet hoopgevend. Microsoft Office Automation blijkt een fragiel proces wat berust op verouderde technieken. Software oplossingen van derde partijen kosten aanzienlijke geldbedragen. Zelf bouwen in combinatie met Open XML, het bestand formaat van PowerPoint, blijkt niet haalbaar.

Gezien de omstandigheden leek het opzetten van een stabiele en gecontroleerde omgeving de enige oplossing. Dat betekend dus een andere architectuur waarbij de generatie los op een server draait. Een aanzienlijke investering en nog altijd het risico dat het opeens gewoon niet meer werkt.

Onder het motto van ‘naar de cloud’ is de github milestone gestart om de generatie op een losse server te plaatsen.

Maar toen

Tijdens de werkzaamheden om de stap naar de cloud te maken deed zich opeens een wending voor.

Het oog viel op NetOffice. Het belooft dezelfde functionaliteit als Microsoft Office Automation te geven maar dan ingepakt in een laagje waardoor timing problemen bij de zogenoemde ‘COM Interop’ minder een rol spelen.

We hadden al naar veel oplossingen gezocht maar deze specifieke uitwerking was nog niet onder onze aandacht gekomen. Als dit zou werken zou dat wel eens het project een stuk vooruit kunnen helpen.

En het blijkt precies dat te doen wat het zegt: net dat extra beetje stabiliteit.

Naar de cloud

Nu de applicatie stabieler is zonder dat we naar de cloud zijn gegaan is er wel een nieuwe vraag: brengt het gaan naar de cloud ons nog wat we voor ogen hadden?

We hebben nog steeds het plan om de applicatie naar de cloud te brengen. Maar nu met nobelere redenen: een groter publiek bereiken en de app een eenvoudigere ervaring te laten zijn.

Waarom doorzetten

Gelukkig hebben wij er niet voor gekozen om te stoppen met het gebruiken van deze open source software. De NetOffice oplossing bleek eenvoudig en sterk. We hebben er in korte tijd veel mee kunnen verbeteren.

Maar waarom toch de applicatie zoal deze was doorzetten? Waarom niet gewoon ergens een deadline stellen waarin verbeteringen moeten komen en het daarna over een volledig andere boeg gooien?
Het is mijn overtuiging dat deze liturgie generatie software niet meer dan een middel is. De mensen rond deze software zijn dezelfde mensen en het domein rond deze software is hetzelfde als dat je over zou stappen naar een ander stuk software. De schat aan ervaring die is opgebouwd rond deze software is heel veel waard.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s