Een zelf ontwikkelde bedrijfsapplicatie is vaak noodzakelijk voor een blijvend concurrentie voordeel. Ondanks vele decennia IT innovatie is het ontwikkelen van applicaties nog altijd een dure en risicovolle stap. Voor het ontwikkelen van een bedrijfsapplicatie zijn naast kundige en ervaren software ontwikkelaars ook een veelheid aan dure ontwikkeltools nodig om de dure ontwikkelaars op een zo efficiënt en productief mogelijk manier te laten werken.
Traditioneel werken software ontwikkelaars met dure ontwikkelsuites op hun desktop. Deze IDE (Integrated Development Environments) kennen inmiddels zoveel functionaliteit dat de perceptie is ontstaan dat het gehele ontwikkelproces vanuit IDE toolling ondersteund en gestuurd kan worden. Zo bevatten deze tools naast alle denkbare mogelijkheden om daadwerkelijk effectief code te schrijven, ook mogelijkheden voor onder meer testen, versiebeheer, documentbeheer, koppeling met architectuurmodellen en natuurlijk de relatie met de business use-cases. De nadelen van de meest gebruikte IDE suites (Microsoft Visual Studio, IBM Rational, Eclipse) zijn bekend:
- Ondersteuning voor productie deployment is vaak mager; Om deze pijn te verzachten zijn er natuurlijk vele add-ons beschikbaar.
- Door de veelheid van functionaliteit zijn de tools niet foutloos en is het frequent installeren van een update een must.
- Ondersteuning voor nieuwe standaarden en devices loopt vaak achter. Om bijvoorbeeld snel vanuit een gekochte IDE een android applicaties met gebruik van de laatste Query libraries te ontwikkelen geeft het dure IDE pakket vaak net nog geen ondersteuning.
- HNW (Het Nieuwe Werken) waarbij vanuit een willekeurige locatie de werkplekomgeving beschikbaar is, werkt vaak niet voor de ontwikkelwerkplek. Naast zwaardere resources (krachtige CPU, veel memory) is een IDE vaak gebonden aan een vaste fysieke werkplek door licentiebeperkingen. Het compleet virtualiseren van een ontwikkelwerkplek met bijvoorbeeld VMWare is vaak een duur en tijdrovend traject met vele verrassingen. Om de ROI van deze investering positief te houden is feitelijk een IDE omgeving van een leverancier nodig wat virtualisatie standaard ondersteund.
De wijze om virtualisatie snel kosten effectief te krijgen is gebruik te maken van cloud oplossingen. Nu Office oplossingen volledig werkend beschikbaar zijn vanuit een cloud (Google, Microsoft), is iedereen met een browser direct productief. De fysieke koppeling met een werkplek is verdwenen. Aangezien de noodzaak voor het maken van bedrijfsspecifieke oplossingen een blijvende is, zijn er een aantal producten voor ontwikkelaars waarbij de ontwikkelomgeving vanuit de cloud wordt aangeboden. Het enige wat een ontwikkelaar vervolgens nodig heeft, is een webbrowser.
De volgende cloud IDE’s zijn veelbelovend:
- CloudIDE. Ideaal voor het maken van simpele webapplicaties voor de cloud. CloudIDE bevat veel kennis en code opgedaan vanuit het Mozilla Bespin project. CloudIDE gaat nog een stap verder dan Wavemaker. Naast een volledig browser based IDE, wordt ontwikkeling ‘als een service’ geboden.
- CodeRun. CodeRun is ook een IDE ontwikkeld voor de cloud. Volledig ontwikkelen vanuit de browser, zonder eerst nog lokaal software te installeren. Natuurlijk geoptimaliseerd voor de defacto marktleider: De Amazone cloud.
- Kodingen. Kodingen is een ander alternatief. De samenwerkingsmogelijkheden zijn gericht op verhogen van de productiviteit en kennisdeling. De oorsprong van Kodingen ligt in de Open Source wereld. Kodingen is gericht op het elimineren van onnodige handelingen die vaak nodig zijn bij het extern laten hosten van een webapplicatie.
- Codeanywhere. Ook deze Cloud IDE is gericht op het overal kunnen ontwikkelen van webapplicaties. Heel rijk aan functionaliteit is de IDE van Codeanywhere (nog) niet. Maar de basisfunctionaliteit is bruikbaar in iedere webbrowser, waarbij veel nadruk is gelegd op goede ondersteuning voor mobiele devices (Iphone, Android).
- Wavemaker. Wavemaker is een complete IDE omgeving in een browser. Wavemaker is geen 100% cloud IDE , aangezien lokaal op een pc sotware geinstalleerd moet worden. Wavemaker is echter wel gericht op het maken van applicaties voor de cloud. Nu Wavemaker begin maart 2011 gekocht is door VMWare zal deployment van applicaties naar de cloud oplossingen van VMWare natuurlijk nog verder verbeterd worden. Daarnaast is de Wavemaker IDE omgeving geschikt voor een nieuwe groep ontwikkelaars. Namelijk de business analisten en ontwerpers die tot op heden geen code schreven, maar wel de eisen vaststelde voor de ontwikkelaars. Wavemaker claimt dat zonder programmeerkennis een veelheid aan bedrijfsapplicaties door niet techneuten is te maken. Echter voor serieuze bedrijfsapplicaties is grondige kennis van alle kwaliteitsaspecten van de verschillende processtappen bij het maken van een applicaties echter wel degelijk van belang. Een cruciale applicatie maken zonder inhoudelijke kennis van beveiliging, performance, schaalbaarheid of database relaties is natuurlijk vragen om problemen.
Vanuit een vendorperspectief zitten er veel voordelen aan het aanbieden van een Cloud IDE. Het meten van klanttevredenheid is kinderspel geworden. Voor klanten (gebruikers) lijken de voordelen van Cloud IDE’s te mooi om waar te zijn:
- Lagere kosten (geen tot absurd lage kosten per gebruiker).
- Geen zorgen over hoe het HNW te faciliteren voor ontwikkelaars. Een browser is voldoende.
- De moeizame transitie om van ontwikkeling naar productie te gaan lijkt verdwenen.
- Veel rollen en functies nu betrokken bij het ontwikkelproces worden overbodig. Dit is een gevolg van het Cloud ontwikkel en deploymentmodel. Echer ook de verschillende rollen die nu beschikbaar in traditionele IDE’s ontbreken in Cloud IDE’s. Vanuit een Cloud IDE omgeving is het de ontwikkelaar zelf die verantwoordelijk is voor het correct in productie brengen van de nieuwe applicatie.
Echter voordat op grote schaal wordt gekozen voor het overboord gooien van de vertrouwde IDE omgevingen voor ontwikkelaars, is het verstandig om de volgende punten in de overweging mee te nemen:
- Hoe wordt omgegaan met de vernieuwde vendor lock-in? Naast een afhankelijkheid met een leverancier die ontwikkeling ‘as-a-service’ biedt, zit men ook vaak direct vast aan de cloud of hosting oplossing van deze leverancier.
- Kunnen de ontwikkelaars daadwerkelijk zonder de geavanceerde functionaliteit die desktop IDE’s wel bieden, maar veel cloud IDE’s nog niet?
- Is duidelijk voor welk type bedrijfsapplicatie ontwikkelen met een Cloud IDE geschikt is? Niet ieder type applicatie is geschikt om te ontwikkelen via een Cloud IDE.
- Hoe wordt omgegaan met de nieuwe beveiligingsrisico’s die worden geïntroduceerd via het nieuwe ontwikkelmodel? Naast beschikbaarheidsaspecten is het noodzakelijk om te kijken naar de vertrouwelijkheid en integriteit van de code en webapplicatie zelf.
- Hoe is integratie met het huidige kwaliteitsmanagementsysteem mogelijk? Denk aan requirementstracking, testen, documentatie etc.
- Hoe kan worden omgegaan met noodzakelijk interfaces met backoffice systemen of koppelingen met andere bedrijven?
- Hoe kan de uiteindelijke applicatie worden geïntegreerd binnen het bestaande beheerraamwerk? Denk aan CMDB, systeemmanagement, capaciteitsmanagement en interne of externe SLA’s .
- Wat is de voorkeur van ontwikkelaars zelf? Welke functionaliteit denken zij nodig te hebben om daadwerkelijk beter en sneller te kunnen werken? Naast ontwikkelaars is het ook noodzakelijk om andere relevante stakeholders te betrekken bij de keus voor een nieuwe IDE.
- Komt de nieuwe Cloud IDE in plaats een huidige IDE of wordt deze gepositioneerd naast de huidige tools? Vanuit kosten perspectief is het wenselijk om na te denken over hoeveel ontwikkeltools daadwerkelijk nodig zijn.
Cloud IDE’s zijn nog niet volwassen genoeg voor serieuze complexe bedrijfsapplicaties. Simpele webapplicaties zijn echter prima te maken met een Cloud IDE. Echter dit ook kan nog altijd zonder IDE, door gewoon in vi of vim te ontwikkelen.