Delen via


Architectuur voor start-ups

Het bouwen van een startup is een unieke uitdaging. De kerntaak is om een plek te vinden voor innovatie als product of dienst op de markt. Dit proces vereist het testen van meerdere veronderstellingen die zijn ingebouwd in de innovatie. Een succesvolle start-up moet deze aannames herhalen en groeien en schalen naarmate het product product en de markt passend maakt. Nadat deze fit is gevonden, moet de startup worden geschaald om te voldoen aan de marktvereisten.

In de verschillende opstartfasen verwerken ontwikkelaars, architecten en hoofd technische officieren (CTU's) verschillende fasen van ontwikkeling. Deze fasen vereisen fundamenteel verschillende benaderingen en verschillende technologische keuzes. Onderdeel van de taak is om te bepalen in welke fase uw opstartfase zich bevindt. Kies de technologieën en architecturen die overeenkomen met die fase.

Innovatiefasen

Kent Beck beschrijft een driefasenproces van softwareproductinnovatie. Deze fasen zijn verkennen, uitvouwen en extraheren. U kunt denken aan de verschillende onderdelen van dit proces als een grafiek:

Een grafiek met de fasen Verkennen, Uitvouwen en Extraheren van productontwikkeling.

Een grafiek met een sigmoid-curve die is uitgezet op een y-as "Zekerheid/Investering/Risico op verandering" en een x-as "Tijd". De grafiek heeft drie gebieden gemarkeerd: het eerste gedeelte vóór opwaartse inflection met het label Verkennen, het hoge groeigedeelte van de sigmoid-curve met het label 'Uitvouwen' en het plateau met het label 'Extract'.

  • De fase Verkennen begint met een lage helling, waar u probeert te vinden wat er werkt. Zekerheid is laag, u investeert slechts kleine bedragen en het risico van wijzigingen die u aanbrengt, is ook laag.

  • Op een bepaald moment neemt de grafiek sneller toe. Deze snelle groei is de uitbreidingsfase . Uw zekerheid neemt aanzienlijk toe, u investeert veel meer en u bent veel beter op de hoogte van risico's.

  • Als de grafiek afvlakt, bereikt u ten slotte de fase Extract . De zekerheid, investeringen en het risico van verandering zijn allemaal hoog, maar het groeipercentage heeft een plateau bereikt.

Verkennen

Wanneer uw startup zich in de verkenningsfase bevindt, is het belangrijk om kleine hoeveelheden tijd en moeite te investeren in veel verschillende productideeën. Het feit dat de meeste ideeën niet goed zijn, is het verkennen. Alleen door itereren en leren kun je product en markt passend vinden. Door veel kleine weddenschappen te maken, wilt u een productidee vinden dat afbetaalt.

Voor deze fase is discipline vereist. Het is gemakkelijk om te investeren in een idee dat je met minder tijd en energie kunt testen. Een technoloog vindt het vooral gemakkelijk om in deze val te vallen. Als u architectuurkeuzes wilt maken die het verkennen vereenvoudigen, moet u er rekening mee houden dat u verkent. U weet nog niet of het huidige productidee een idee is dat wordt geschaald.

Kies vanuit architectuurperspectief services die optimaliseren voor snelheid, kosten en opties. Gebruik beheerde services en platforms als een dienst (PaaS) zoals Azure-app Service om snel aan de slag te gaan zonder dat u zich zorgen hoeft te maken over complexe infrastructuur. Beheer de kosten door gratis lagen en kleinere instantiegrootten te kiezen terwijl u verkent. Containers ondersteunen het ontwikkelen met alle hulpprogramma's die voor u zinvol zijn en bieden u flexibele implementatieopties voor de toekomst.

Uw eerste stack bouwen

Net als bij uw eerste productversie moet uw eerste technologiestack stevig zijn geroot in verkenning. Dat betekent dat de technologiestack snelle product iteratie moet vereenvoudigen zonder moeite te verspillen. U wilt geen tijd of moeite besteden aan infrastructuur of architectuur die niet is vereist voor het beantwoorden van huidige vragen.

Tijdens de verkenningsfase moet u optimaliseren voor snelheid, kosten en optioneel. Snelheid gaat over hoe snel je kunt bouwen en vooruit kunt gaan met een idee, of naar het volgende idee gaan. De kosten zijn hoeveel u besteedt om uw infrastructuur uit te voeren. Optioneel beschrijft hoe snel u de richtingen kunt wijzigen op basis van de huidige architectuur.

Het is belangrijk om kosten, snelheid en optioneel te verdelen. Te veel aandacht voor snelheid en optionele kostenlimieten. Te veel focus op snelheid kan leiden tot hogere kosten en minder opties. Ontwerpen voor te veel opties bouwt complexiteit op, waardoor de kosten worden verhoogd en de snelheid wordt verlaagd.

Overweeg het gebruik van onze voorgestelde eerste technologiestack. Deze architectuur maakt gebruik van PaaS-services voor een eenvoudige implementatie, kan worden gestart met een minimale schaal en maakt gebruik van container- en opensourcetechnologieën die eenvoudig kunnen worden geïmplementeerd op verschillende technologiestacks wanneer u volwassen wordt.

Uitvouwen

Zodra uw startup groei vindt door middel van verkenning, schakelt u versnellingen naar uitbreiding. U richt zich op het verwijderen van eventuele obstakels voor de voortdurende groei van uw product en bedrijf. Vanuit technisch oogpunt kunt u uitdagingen op het gebied van infrastructuurschaal oplossen en de ontwikkelingssnelheid verhogen. De doelstellingen zijn om te voldoen aan de behoeften van uw nieuwe klanten en uw productroadmap te bevorderen.

Uw architectuur uitbreiden

Terwijl u uw product doorgeeft, zult u onvermijdelijk gebieden vinden waar uw architectuur moet worden uitgebreid. Mogelijk moet u langlopende taken op de achtergrond uitvoeren of regelmatig updates verwerken vanaf IoT-apparaten (Internet of Things). Mogelijk moet u zoeken in volledige tekst of kunstmatige intelligentie toevoegen aan uw product.

Mogelijk hebt u architectuurwijzigingen nodig om items in uw roadmap weer te geven. Verzet je tegen de verleiding om die wijzigingen te ver van tevoren aan te brengen. Extensies riskeren het toevoegen van complexiteit aan uw architectuur- en infrastructuurkosten aan uw balans.

In vroege opstartfasen moet elke architectuurextensie Just-In-Time zijn. De uitbreiding mag slechts zoveel tijd en energie in beslag nemen als nodig is om de volgende hypothese te testen. Wees klaar om extensies te verwijderen om de complexiteit te verminderen. Zoek naar productfuncties die uw klanten niet gebruiken als mogelijkheden om uw architectuur te vereenvoudigen en uw infrastructuuruitgaven te verminderen.

Uw architectuur kan op veel manieren worden uitgebreid, zoals:

Extraheren

In de extractiefase vertraagt het tempo van de groei naarmate u de grenzen van de marktkans bereikt. Omdat u zich door de vorige fase hebt uitgebreid, is er nu veel te verliezen, dus u neemt een meer voorzichtige benadering. Margeuitbreiding, kostenreductie en efficiëntieverbeteringen karakteriseren de extractiefase. Zorg er tijdens de extractiefase voor dat u het product niet in gevaar kunt brengen voor de klanten die u in de uitbreidingsfase hebt gewonnen.

Groei afhandelen en uw stapel volwassen maken

Zodra een product product en markt passend is, worden veel eisen gesteld aan de architectuur. Voor verhoogd gebruik is mogelijk schaalaanpassing van de infrastructuur vereist om de belasting te verwerken. Voor nieuwe bedrijfsnalevingsvereisten is mogelijk meer isolatie vereist. Deze wijzigingen zijn veelvoorkomende stappen bij het rijpen van een geslaagde toepassing.

Wijzigingen die u aanbrengt om groei af te handelen en volwassenheid toe te voegen, verschillen van de uitbreidingsarchitectuur. Deze wijzigingen zijn geen functionele vereisten, maar hebben betrekking op het ontgrendelen van de schaal. Grotere schaal kan afkomstig zijn van netto nieuwe klanten, verhoogd gebruik van bestaande klanten en klanten met hogere wettelijke vereisten.

Verzet je tegen de verleiding om voortijdig te optimaliseren. Zorg ervoor dat u groei- en rijpingsstappen uitvoert waarmee u uw product kunt herhalen en verbeteren.

Volgende stappen