Kan ik mijn software project niet beter uitbesteden?

Het is best een ingewikkelde vraag, want er is geen eenduidig antwoord op te geven. Of ict-outsourcing slim is, hangt namelijk af van meerdere factoren, zoals je wensen, bedrijfssituatie, budget, doelen, de markt en de complexiteit van het project. Heb je de juiste mensen al in dienst? Dan stel je jezelf deze vraag niet. Maar wel als je capaciteit te kort komt of een andere expertise nodig hebt. Het ene bedrijf haalt liever specialisten in huis, een ander huurt een software bureau in en een derde organisatie besteed het werk uit naar het buitenland. Voor iedere keuze is wat te zeggen. Ze hebben allemaal hun voor- en nadelen. 

Algemeen

Dit blijft altijd een lastige. De ontwikkelaar die de indicatie maakt moet namelijk met heel veel zaken rekening houden, bijv.: wat moet er precies ontwikkeld worden en hoe complex is dat? Voorzie ik problemen bij de implementatie die extra uitzoekwerk gaan kosten? Zijn er zaken die nog onduidelijk of onbekend zijn en mogelijk na oplevering nog extra tijd gaan kosten? Zijn er afhankelijkheden van derden? Een globale richtlijn is dat een Minimum Viable Product (MVP) zo’n 2-4 maanden nodig heeft om ontwikkeld te worden.

Zonder een gedegen aanpak, bouw je geen fatsoenlijke software. Daar hebben we software ontwikkelingsmethodes voor, zoals Agile en Waterval. Agile is iteratief en Waterval is lineair. Beide hebben zijn voor- en nadelen, afhankelijk van het project wordt de methode gekozen. Vaak wordt de Agile methode gebruikt, omdat softwareprojecten aan verandering onderhevig zijn.

De kosten om een maatwerk applicatie te ontwikkelen variëren enorm. Een kleine software applicatie kost al snel een paar duizend euro. Gemiddeld liggen de kosten van een maatwerk app tussen de 10.000 en 50.000 euro, maar er zijn ook genoeg applicaties waarvan de investering meer dan 100.000 euro is.

Bij ons betaal je voor hosting, onderhoud en doorontwikkeling. Mogelijk kunnen we losse afspraken maken over maandelijkse technische support. Afhankelijk van de grote van de applicatie betaal je in de eerste fases zo’n € 200 tot € 400 per maand voor hosting en onderhoud. Daarnaast betaal je voor nieuwe features die je door ons laat ontwikkelen, deze worden los ingeschat en geef jij akkoord op voordat we ze ontwikkelen. Wanneer je een mobiele app laat ontwikkelen dan betaal je ook een fee aan de app stores, namelijk eenmalig $25 voor de Google Play Store en €99 per jaar voor de iOS store.

De diensten die wij leveren zijn app development, webdevelopment, prototyping, hosting, onderhoud, doorontwikkeling, strategische en technische consulting, automatisering en digitalisering.

De producten die wij maken zijn mobiele apps, online platformen, online portalen, systemen, API koppelingen, databases, specifieke tooling, search engines en dashboards.

Het intellectueel eigendom van maatwerk software ligt over het algemeen bij de ontwikkelaar. Omdat zij degene zijn die de software ontwikkelen, zijn zij de eigenaar van het product. Veel maatwerk software ontwikkelaars maken gebruik van standaard en open source ‘packages’. Dit zijn stukken ‘standaard’ code en oplossingen die zij, of andere developers, eerder ontwikkeld hebben voor functionaliteiten die vaker terugkomen. Een login scherm is hier een voorbeeld van.

Je kunt altijd proberen te onderhandelen met een software leverancier. Een deal kan vaak gesloten worden op het gedeelte applicatie specifieke code dat wordt geschreven. De code die de software developer zelf inbrengt blijft in de realiteit vaak bij hem of haar. In deze code zit jaren aan ervaring verwerkt en zorgt voor onderscheidende waarde ten opzichte van andere software ontwikkelaars.

Overweging

Ja, dat kan, al is er één grote maar. Het kan slechts wanneer de reeds bestaande software ontwikkeld is in dezelfde framework(s) als waar jouw nieuwe partner mee werkt, de code leesbaar is geschreven en jouw nieuwe partner er mee kan dealen om andermans werk en de daarbij horende stress over te nemen.

Is dat niet het geval, dan gaat de code deels herschreven moeten worden of compleet opnieuw worden ontwikkeld. Wel kan je dan de learnings uit de eerder gemaakte applicatie meenemen. Dat kan een enorm verschil maken in de doorlooptijd.

Het is best een ingewikkelde vraag, want er is geen eenduidig antwoord op te geven. Of ict-outsourcing slim is, hangt namelijk af van meerdere factoren, zoals je wensen, bedrijfssituatie, budget, doelen, de markt en de complexiteit van het project. Heb je de juiste mensen al in dienst? Dan stel je jezelf deze vraag niet. Maar wel als je capaciteit te kort komt of een andere expertise nodig hebt. Het ene bedrijf haalt liever specialisten in huis, een ander huurt een software bureau in en een derde organisatie besteed het werk uit naar het buitenland. We denken graag met je mee, dus bel ons gerust.

Maatwerk software, t.o.v. standaard software, wordt specifiek voor jouw bedrijf en processen op maat gemaakt. Maatwerk biedt een oplossing voor processen die uniek zijn en niet geautomatiseerd kunnen worden of te complex zijn om te digitaliseren met standaard oplossingen. Ook is maatwerk een oplossing wanneer de standaard software niet voldoet aan de behoeften en wensen van de gebruikers. Er zijn ook gevallen waar standaardsoftware duurder is dan maatwerk.

Wil je een applicatie een eigen look & feel geven? Of moet de software ingewikkelde taken uitvoeren? Dan kom je al snel terecht in het maatwerk. Denk aan een platform waarop je vragers en aanbieders matcht aan de hand van een groot aantal parameters, die tevens gelinkt zijn aan andere systemen. Dit is zo complex en uniek dat je met maatwerk verder komt dan no code of low code. Het werken met high code (maatwerk) platformen, zoals React en Laravel, is alleen weggelegd voor ervaren software developers. Het is ideaal voor organisaties die specifieke oplossingen zoeken voor complexe vraagstukken, en die de techniek aan willen passen aan hun proces, i.p.v. andersom. In sommige gevallen is het ook beter betaalbaar vanwege de hoge licentiekosten van no code en low code platformen.

Over het algemeen; ja. We hebben veel ervaring in het koppelen met veel systemen, zoals een ERP, WMS, TMS, boekhoudpakket, marketing automation tools en e-commerce platformen. Het belangrijkste is dat ze een API beschikbaar hebben gesteld, waardoor wij kunnen koppelen met het betreffende systeem. In sommige gevallen is er geen API beschikbaar, waardoor we naar een andere oplossing moeten zoeken. Hiervoor kan je het beste contact met ons opnemen.

Samenwerking

Met een update kan enerzijds een nieuwe functionaliteit (of bugfix) worden bedoeld en anderzijds een update aan de tech stack. Het eerste is afhankelijk van de veranderende behoefte van (eind)gebruikers en de go vanuit een opdrachtgever om door te ontwikkelen. Het tweede heeft te maken met bijv. een nieuwe versie van het Laravel framework (de basis waarop jouw applicatie wordt ontwikkeld). Aan dit framework wordt continu doorontwikkeld en iedere maand wordt er wel een nieuwe versie gereleased. Een nieuwe versie zorgt vaak voor security en/of performance patches.

Goed dat je het vraagt. Naast dat er dingen van de ontwikkelaar wordt verwacht, worden er ook zaken van de opdrachtgever verwacht. Er dient namelijk iemand aangewezen te worden voor de rol als Product Owner en vaak is dat de opdrachtgever. De Product Owner is een essentieel onderdeel van het ontwikkelteam en voedt de ontwikkelaars met belangrijke (branche-specifieke) informatie zodat de programmeurs effectief kunnen blijven coderen.

Zie het als rallysport, waarbij wij de coureur zijn en jij de bijrijder. Jij navigeert het circuit en vertelt hoe wij rekening moeten houden met onderstuur om op de apex van bocht 3 uit te komen. Tja, zulke vaktermen krijgen we regelmatig mee te maken, jij bent namelijk degene met verstand van jouw organisatie en jouw branche dus jij weet wat de software moet kunnen, wij hebben verstand van het bouwen. Met deze combinatie maken we er samen iets succesvols van.

Het belangrijkste aan Scrum vinden wij de transparante samenwerking. Transparantie is aanwezig als het proces goed wordt gevolgd. Per sprint worden vooraf gedefinieerde features bepaald en continu inzichtelijk uitgewerkt. Je weet dus altijd waar we mee bezig zijn en hoe lang we met features bezig zijn.

Tevens vinden we het samenwerkingsaspect met een Product Owner fantastisch werken. Samenwerking betekent precies wat het woord zegt; jij komt in ons midden. Succesvolle software ontwikkel je namelijk samen. Jij bent tenslotte degene met het marktinzicht, toch? Door middel van juiste argumentatie besluiten we samen de richting voor de sprints. Gewoon doen wat er gevraagd wordt levert namelijk nooit het beste resultaat op.

Voor een succesvolle productlancering moet je ervoor zorgen dat er draagvlak is binnen de organisatie. Dit doe je door medewerkers en gebruikers te betrekken bij het ontwikkelproces, de applicatie zorgvuldig te testen, mensen te trainen in het gebruik, communiceren over het uitrolproces en tijdens het gebruik van de applicatie de feedback van gebruikers mee te nemen voor de doorontwikkelingsfase.

De drie belangrijkste stappen stappen die je moet doorlopen om te weten of jouw digitaal product een succes gaat zijn, zijn de ‘Problem/Solution fit’, de ‘Product/Market fit’ en ‘Scale’. Dit topic is te uitgebreid om hier te beantwoorden. Het beste kan je doorklikken naar de betreffende blogpost!

Techniek

Dit doe je op verschillende manieren. Code-technisch kan je er bijvoorbeeld rekening mee houden dat er niet te vaak om data wordt gevraagd aan een database (het minimaliseren van database calls). Dat alleen kan er al voor zorgen dat je niet om de maand een extra server moet bijklikken en dat je applicatie meer gebruikers aankan. Een ander voorbeeld van schaalbaarheid is het modulair opbouwen van de code. Dit is voor de gebruiker niet direct zichtbaar, maar maakt voor de developer de code een stuk leesbaarder en dus beter te onderhouden- en uit te breiden.

Of je nu een groot platform, een klantportaal, of de back-end voor een mobiele applicatie wil ontwikkelen, Laravel has it all. Er is eigenlijk niets te bedenken wat niet met Laravel ontwikkeld zou kunnen worden. Alle “boilerplate” staat al klaar, je kunt als developer meteen aan de slag. Heb je een bepaald onderdeel niet nodig, zoals de MVVC implementatie van Laravel? Dan is er ook de lightweight versie, Laravel Lumen. Wil je snel een MVP opzetten met een simpel geïntegreerd CMS? Laravel Nova helpt je uit de brand. Deze flexibiliteit is nog een reden waarom wij kiezen voor Laravel.

React is een goede keuze vanwege zijn eenvoud; React geeft veel vrijheid in opbouw en gebruik. Tevens anticiperen wij met React op applicaties die veel veranderende data hanteren en vinden wij de schaalbaarheid die React biedt een belangrijke pilaar. Beide zijn ‘strong suits’ van React. Ten slotte is React het populairste front-end framework met een levendige community en een team dat de technologie continu doorontwikkeld. Hierdoor kunnen wij als ontwikkelaars sneller tot oplossingen komen en zijn er continu nieuwe features beschikbaar.

Het ontwikkelen van een mobiele applicatie met React Native gebeurt cross platorm. Dat wil zeggen dat de developer in feite maar één app bouwt voor iOs en Android. Het helpt daardoor zowel met het sneller kunnen schakelen tussen de twee platformen (iOS en Android), als met het schrijven van de code zelf. Wij werken al een aantal jaar met React, dus voor ons was de stap naar React Native niet alleen logisch, maar ook nog eens super makkelijk (het is namelijk gebaseerd op het React framework). Zo kunnen wij de ervaring en kwaliteit leveren die men gewend is van onze webapplicaties. Voor beide platformen tegelijkertijd ontwikkelen kan soms nog wat problemen opleveren, maar de nadelen wegen niet op tegen de voordelen die React Native biedt. Bij Scrumble blijven we daarom ook verder ontwikkelen met dit geweldige framework voor het maken van native apps.

Dit gaat van micro-optimalisaties zoals het hergebruiken van variabelen (data) i.p.v. deze keer op keer te herinitialiseren, tot slim nadenken hoe je de database structuur in elkaar zet om het aantal queries zo laag mogelijk te houden. Een aantal practices die wij toepassen om software razendsnel te maken zijn: zo min mogelijk database requests; zo min mogelijk data over en weer sturen, gebruik maken van caching; simpel gezegd een opslag-laag waarin data wordt gezet, zodat deze een volgende keer sneller aan de gebruiker kan worden gegeven en het implementeren van een Content Delivery Network (CDN); dit zorgt ervoor dat jouw content zo snel mogelijk aan de gebruiker geleverd kan worden, over de hele wereld.

API staat voor Application Programming Interface, ofwel in het Nederlands applicatie programmeer interface. Het stukje “interface” betekent hier als het ware “koppeling” of “verbinding”. Voorbeelden van een interface zijn websites of het dashboard van een Tesla. In deze gevallen biedt de interface een koppeling tussen wat je ziet als gebruiker, de interactiemogelijkheden en de achterliggende verwerking door de software. In het geval van een API biedt de applicatie een interface voor andere applicaties om mee te koppelen, i.p.v. gebruikers. Die applicaties kunnen dan ook informatie uitlezen of als het ware op “buttons drukken” om acties door te sturen of data op te slaan.

Over het algemeen; ja. We hebben veel ervaring in het koppelen met veel systemen, zoals een ERP, WMS, TMS, boekhoudpakket, marketing automation tools en e-commerce platformen. Het belangrijkste is dat ze een API beschikbaar hebben gesteld, waardoor wij kunnen koppelen met het betreffende systeem. In sommige gevallen is er geen API beschikbaar, waardoor we naar een andere oplossing moeten zoeken. Hiervoor kan je het beste contact met ons opnemen.

Onderhoud van maatwerk software heeft veel te maken met frequente updates. Technologie staat immers nooit stil en de ontwikkelaars van frameworks en programmeertalen zijn dan ook continu op zoek naar verbeteringen. Nieuwe features, betere veiligheid en betere performance zijn dingen die je in updates vaak terug ziet komen. Om jouw applicatie goed te laten functioneren is het wijs om een afspraak te maken met jouw ontwikkelaar zodat updates frequent worden uitgevoerd.

Naast updates kun je jouw software ook doorontwikkelen. Hierbij kijk je verder dan alleen updates en kijk je juist hoe de veranderende markt en gebruikersbehoeften bevredigd kunnen worden met nieuwe functionaliteiten of betere kwaliteit. Op die manier kun je een grotere groep gebruikers aantrekken of huidige gebruikers beter ten dienste zijn.

Nog een veel terugkerend onderwerp in de online wereld is een database.

Een database is de plek waar een applicatie zijn data opslaat en ophaalt. Een database is voor software applicaties essentieel, omdat veel applicaties dynamische content hebben.

Design

Een Design Sprint is een intensief proces van ontwerp, prototyping en testing. In vijf werkdagen krijg je antwoord op complexe vraagstukken, bijvoorbeeld rondom de introductie van een nieuw product, de verbetering van een product of het opzetten van een nieuwe online business. Zonder aannames beginnen aan een nieuw project dus, en dat in een extreem korte tijd. Daar houden wij van.

UX is de afkorting voor User Experience, oftewel gebruikerservaring. Niet te verwarren met UI, User Interface. UI is onderdeel van het grotere geheel dat UX is. Kort gezegd is het verschil tussen UX en UI dat UI draait om hoe je als gebruiker interacteert met een applicatie en UX de overkoepelende (emotionele) ervaring is van die interactie. Kun je makkelijk een knop vinden? Dat is UI. Als je klikt op die knop en er gebeurt precies (of iets beters dan) wat je had verwacht, dat is UX. UX draait om gevoel.

Voor het ontwikkelen van een website of mobiele app kun je een software prototype, ook wel mockup genoemd, maken. Dit is een visuele weergave van de app, die ook interactief gemaakt kan worden. Een vormgever maakt een ontwerp van bijvoorbeeld een aantal pagina’s (vaak de core) van jouw website. In werkelijkheid bestaat het prototype dus slechts uit een grafisch design, zonder code. Buttons worden klikbaar gemaakt, zodat je naar de volgende pagina binnen de app of op de website wordt geleid. De app lijkt functioneel te zijn, maar er zit nog geen achterkant achter. Een prototype is een handig hulpmiddel om de haalbaarheid van je idee te onderzoeken en op welke punten je jouw concept nog kan verbeteren. Een prototype kan veel onzekerheden wegnemen en dient tevens als ontwerp voor het ontwikkeltraject.

Logistiek

Er zijn tal van kansen op het gebied van digitalisering binnen de transport- en logistieke sector. Vanwege lage marges is operationele efficiency cruciaal. Dit kan bereikt worden door o.a. planningen te optimaliseren, selfservice kanalen in te zetten, realtime dashboarding te gebruiken en systemen aan elkaar te koppelen.

Wij werken trots samen met

Dit is onze contactpersoon Vincent van Laarhoven, met hem kan je contact opnemen
Dit is onze contactpersoon Vincent van Laarhoven, met hem kan je contact opnemen

Plan een afspraak met Vincent om kennis te maken.