Met het project Singularity bouwt internetbedrijf TransIP aan een platform dat alle processen in het bedrijf inzichtelijk en aanpasbaar maakt. Dit doet het met een ‘event sourced’ framework dat extensies mogelijk maakt voor verschillende groepen gebruikers, met op microservices gebouwde tools. Software-architect Bipin Upadhyay deelt enkele ervaringen uit het project.
TransIP is in Nederland een bekende naam op het gebied van verschillende internetdiensten. Van domeinnaamregistratie, webhosting en e-mail tot virtual private servers (vps) en een online opslagdienst (Stack). De focus ligt daarbij op de gebruiker, die de volledige controle moet hebben. Of het nu gaat om de blog die je als hobby bijhoudt, of om de volledige infrastructuur van een bedrijf. Als beginnende ‘techie’ kun je al snel aan de slag met geavanceerde set-ups, terwijl die-hard developers met de slimme oplossingen van TransIP sneller mooie dingen kunnen maken.
Het in Leiden gevestigde bedrijf heeft een echte hackercultuur, gericht op het oplossen van problemen. Het bouwt zelf geavanceerde tools waarmee gebruikers alle ruimte hebben om te maken wat ze willen. Op deze manier heeft TransIP directe invloed op de betrouwbaarheid van de producten, kan men razendsnel doorontwikkelen en is er minder afhankelijkheid van derde partijen. Om de tijd zo efficiënt mogelijk te benutten, automatiseert TransIP daarbij alles wat het kan automatiseren, zodat er tijd overblijft om te innoveren. Om voor de gebruikers ook echt waarde te creëren, worden de producten zo gemakkelijk mogelijk gemaakt zodat zij zich alleen maar hoeven te richten op wat ze ermee willen doen.
Alle teams kunnen oplossingen bouwen met Singularity
Al deze elementen komen terug in Singularity, een door TransIP gebouwd ‘event sourced’ framework dat extensies mogelijk maakt voor verschillende groepen gebruikers, met op microservices gebouwde tools. Met Singularity kan iedereen bedrijfsprocessen mappen met visuele workflows
Het framework, dat nog in ontwikkeling is, maakt design thinking en het oplossen van problemen beter mogelijk voor alle onderdelen van het bedrijf, door middel van duidelijke workflows en automation met business rules. “Al onze teams kunnen oplossingen bouwen met Singularity”, zegt software-architect Bipin Upadhyay, die met zijn business process automation-team het project leidt waar meerdere teams bij betrokken zijn voor onder meer de Kubernetes-stack, analytics en design.
Met Singularity kan iedereen bedrijfsprocessen mappen met visuele workflows. “Het platform maakt onderscheid tussen de minder vaak veranderende technische logica en de constant veranderende workflows en processen van de business. Singularity levert tools om daar vorm aan te geven en contextuele inzichten voor alle gebruikers. Dat wil zeggen: logs en alerts voor developers, monitoring voor systeembeheerders en uitgebreide data voor iedereen die business events wil begrijpen en voorspellende modellen wil bouwen.”
Waarom software nooit af is
Steeds weer veranderende business-vereisten zijn het grootste risico van diensten. “Dat is waarom software eigenlijk nooit af is”, zegt Upadhyay. “Software kan hierdoor rommelig worden waardoor bedrijven hun diensten soms jaren later volledig herschrijven, maar de business logic die tot de voorgaande code heeft geleid kan daarmee verloren gaan. Dat is een groot risisco. Een goed voorbeeld is Digg.com. Dat faalde niet omdat alles herschreven werd en zij naar een andere codebase gingen, zoals mensen vaak beweren, maar omdat features werden verwijderd die mensen graag gebruikten. Daarom vertrokken gebruikers naar Reddit. Het was nooit de code die faalde.”
Singularity gaat uit van het gegeven dat bedrijfsprocessen en low level code van elkaar gescheiden kunnen worden, met verschillende manieren om code uit te breiden en een op microservices georiënteerde (Kubernetes-)architectuur. “Het stelt developers in staat om technische problemen op te lossen via onafhankelijk van elkaar gebouwde microservices.” Het platform volgt de principes van dry (do not repeat yourself) en srp (single responsibility principle) zodat elk van deze oplossingen steeds opnieuw in staat is om te anticiperen op de voortdurend veranderende eisen van de business. Maar ook stelt het iedereen (dus ook niet-developers) in staat om processen te mappen en aan te passen aan de hand van visuele workflows. “Deze workflows gebruiken onderliggende technische componenten en microservices Singularity is bedoeld om door iedereen in het bedrijf gebruikt te worden, van een software-developer tot de ceo
die gebouwd zijn door onze eigen teams.”
Gebruiksvriendelijkheid centraal
Wat zijn de belangrijkste lessen die TransIP nu al trekt uit het project? “Eerst en vooral het belang van gebruiksvriendelijkheid. Singularity is bedoeld om door iedereen in het bedrijf gebruikt te worden, van een software-developer tot de ceo. Gebruiksvriendelijkheid is wat een product maakt of breekt.” Hierin schuilt ook de reden waarom Upadhyay en zijn collega’s Singularity een framework noemen. “We lossen essentiële technische problemen op, van scaling tot deployment, performance, security, autorisatie, enzovoort. Daardoor kan elke developer zich richten op losstaande issues, terwijl elke niet-techie zich kan richten op zijn of haar businessprobleem zonder zich druk te maken over de rest.”
Wat elk succesvol tech-project goed doet, is scoping. Upadhyay legt uit: “Een groot project voer je niet uit in een dag. Je start altijd met een klein aspect en maakt de rest abstract. Dit is de enige manier om een project als dit te begrijpen en te bouwen. Bij heel veel softwareproducten gaat dit verkeerd, vooral als er alleen techies bij betrokken zijn. Je moet ervoor zorgen dat je product bruikbaar is en dat je het project zodanig scoped dat je niet altijd het volledige plaatje voor je hoeft te hebben. Bij Singularity doen wij dit met microservices die op verschillende manieren met elkaar communiceren waardoor dit mogelijk is.”
Elke draak is een prinses
Een derde les is de noodzaak om goede inzichten te hebben. Weten waarom een stukje code of een hypothese voor een zakelijk plan werkt - of niet - is medebepalend voor het succes van projecten. “Dit gaat veel verder dan het debuggen van code. Het gaat ook om meer algemene inzichten voor mensen die helemaal niet technisch onderlegd zijn. Een productmanager geeft er niets om wat er in de logs staat. Maar bijvoorbeeld wel om hoeveel mensen een product gebruiken, hoe groot deze groep is ten opzichte van de doelgroep, wat het budget is en waarom klanten bepaald gedrag vertonen.”
Verder is het noodzakelijk om te begrijpen wie de eindgebruiker is. Een productmanager wil bijvoorbeeld weten hoeveel mensen een product gebruiken, wat het budget is en hoe gebruikers de applicatie gebruiken, terwijl een developer meer heeft aan goede logging en andere technische analyses. Code moet altijd in dienst staan van de uiteindelijke gebruiker.
Tot slot heeft het ontdekken van nieuwe mogelijkheden ook alles te maken met luisteren en nieuwsgierig zijn. “Singularity is dan ook ontstaan door goed te luisteren naar onze klanten en hun problemen te begrijpen. Feedback van gebruikers is zeer belangrijk, achter elke frustratie zit een probleem dat opgelost moet worden. Zelfs ongefundeerde feedback als ‘this sucks’ is de moeite waard om aandacht aan te besteden.” Upadhyay verwijst naar een regel van filosoof Rainer Maria Rilke: ”Misschien is elke draak wel een prinses die gered wil worden. Dit sluit ook mooi aan bij onze hackercultuur. Wat het probleem ook is, we zien het als een uitdaging om het samen op te lossen."
Dit artikel is geen redactioneel artikel, maar een advertorial. Mocht je ideeën met ons willen delen over deze vorm van adverteren, dan horen wij dat graag. Hierover kun je met ons in gesprek via [Discussie] Reclame algemeen, daar zullen collega's aanwezig zijn om jouw vragen en/of opmerkingen te bespreken/beantwoorden.