Arkitektur för nystartade företag

Att skapa en start är en unik utmaning. Huvuduppgiften är att hitta en plats för innovation som produkt eller tjänst på marknaden. Den här processen kräver att du testar flera antaganden som är inbyggda i innovationen. En lyckad start måste iterera genom dessa antaganden och växa och skala när dess produkt vinner produkt och marknadsanpassning. Efter att ha hittat denna passform måste startupen skalas för att uppfylla marknadens krav.

I de olika faserna i startlivsfasen hanterar utvecklare, arkitekter och chief technical officers (CTOs) distinkta utvecklingsfaser. Dessa steg kräver fundamentalt olika metoder och olika teknikval. En del av uppgiften är att fastställa vilken fas din start befinner sig i. Välj de tekniker och arkitekturer som matchar den fasen.

Innovationsfaser

Kent Beck beskriver en process i tre steg för programvaruproduktinnovation. Dessa steg utforskar, expanderar och extraherar. Du kan tänka på de olika delarna i den här processen som ett diagram:

Ett diagram som visar faserna Utforska, Expandera och Extrahera i produktutveckling.

Ett diagram som visar en sigmoidkurva ritad mot en y-axel "Certainty/Investment/Risk of Change" och en x-axel "Time". Diagrammet har tre områden markerade: den första delen före uppåtriktad böjning märkt "Utforska", den höga tillväxtdelen av sigmoidkurvan märkt "Expandera" och platån märkt "Extract".

  • Utforska-fasen börjar med en låg lutning, där du försöker hitta det som fungerar. Säkerheten är låg, du investerar bara små belopp och risken för eventuella ändringar du gör är också låg.

  • Vid något tillfälle stiger grafen snabbare. Den här snabba tillväxten är expanderingssteget. Din säkerhet ökar avsevärt, du investerar mycket mer och du är mycket mer medveten om risker.

  • När grafen slutligen planar ut når du fasen Extrahera . Säkerheten, investeringarna och risken för förändring är alla höga, men tillväxttakten har nått en platå.

Utforska

När din start är i utforskningsfasen är ditt imperativ att investera små mängder tid och ansträngning på många olika produktidéer. Det faktum att de flesta idéer inte kommer att vara rätt driver utforskning. Endast genom att iterera och lära dig kan du hitta produkt- och marknadsanpassning. Genom att göra många små satsningar strävar du efter att hitta en produktidé som lönar sig.

Det här steget kräver disciplin. Det är lätt att överinvestera i en idé som du kan testa med mindre tid och energi. En teknolog tycker att det är särskilt lätt att falla i denna fälla. Kom ihåg att du utforskar om du vill göra arkitektoniska val som underlättar utforskningen. Du vet ännu inte om den aktuella produktidén är en som ska skalas.

Från ett arkitekturperspektiv väljer du tjänster som optimerar för hastighet, kostnad och alternativ. Använd hanterade tjänster och plattformar som en tjänst (PaaS) som Azure App Service för att komma igång snabbt utan att bekymra dig om komplex infrastruktur. Hantera kostnader genom att välja kostnadsfria nivåer och mindre instansstorlekar medan du utforskar. Containrar stöder utveckling med alla verktyg som passar dig och ger dig flexibla distributionsalternativ för framtiden.

Skapa din första stack

Precis som med din första produktversion bör din första teknikstack vara fast rotad i utforskningen. Det innebär att teknikstacken bör underlätta snabb produktt iteration utan att slösa arbete. Du vill inte lägga tid eller arbete på infrastruktur eller arkitektur som inte krävs för att besvara aktuella frågor.

Under utforskningsfasen måste du optimera för hastighet, kostnad och valfrihet. Hastighet handlar om hur snabbt du kan bygga och gå vidare med en idé, eller gå vidare till nästa idé. Kostnaden är hur mycket du spenderar för att köra infrastrukturen. Valfrihet beskriver hur snabbt du kan ändra riktningar med tanke på den aktuella arkitekturen.

Det är viktigt att balansera kostnader, hastighet och valfrihet. För mycket fokus på kostnadsbegränsningar hastighet och valfrihet. För mycket fokus på hastighet kan leda till ökade kostnader och färre alternativ. Design för för många alternativ skapar komplexitet, vilket ökar kostnaderna och minskar hastigheten.

Överväg att använda vår föreslagna första teknikstack. Den här arkitekturen använder PaaS-tjänster för enkel implementering, kan startas med minimal skala och använder container- och öppen källkod tekniker som enkelt kan distribueras på olika teknikstackar när du mognar.

Visa

När din startup hittar tillväxt genom utforskning, byter du växlar till expansion. Du fokuserar på att ta bort eventuella blockeringar av produktens och företagets fortsatta tillväxt. Ur ett tekniskt perspektiv löser du utmaningar i infrastrukturskala och ökar utvecklingshastigheten. Målet är att uppfylla dina nya kunders behov och gå vidare med produktöversikten.

Utöka arkitekturen

När du itererar på din produkt hittar du oundvikligen områden där din arkitektur behöver utökas. Du kan behöva utföra långvariga uppgifter i bakgrunden eller hantera frekventa uppdateringar från IoT-enheter (Internet-of-things). Du kan behöva lägga till fulltextsökning eller artificiell intelligens i din produkt.

Du kan behöva arkitekturändringar för att hantera objekt i översikten. Motstå frestelsen att göra dessa förändringar för långt i förväg. Tillägg riskerar att lägga till komplexitet i din arkitektur och infrastrukturkostnader i balansräkningen.

I tidiga startfaser bör alla arkitekturtillägg vara just-in-time. Tillägget bör bara ta så mycket tid och energi som behövs för att testa nästa hypotes. Var redo att ta bort tillägg för att minska komplexiteten. Leta efter produktfunktioner som dina kunder inte använder som möjligheter att förenkla din arkitektur och minska dina infrastrukturutgifter.

Arkitekturen kan utökas på många sätt, till exempel:

Extrahera

I utvinningsfasen avtar tillväxttakten när du når gränserna för marknadsmöjligheten. Eftersom du expanderade genom föregående fas finns det nu mycket att förlora, så du har en mer försiktig inställning. Marginalexpansion, kostnadsminskning och effektivitetsförbättringar kännetecknar extraheringsfasen. Under extraheringsfasen bör du vara noga med att inte kompromettera produkten för de kunder du vann i expansionsfasen.

Hantera tillväxt och mogna din stack

När en produkt uppnår produkt- och marknadsanpassning driver många krav dess arkitektur. Ökad användning kan kräva infrastrukturskalning för att hantera belastningen. Nya krav på företagsefterlevnad kan kräva större isolering. Dessa ändringar är vanliga steg för att mogna ett lyckat program.

Ändringar som du gör för att hantera tillväxt och lägga till mognad skiljer sig från att utöka arkitekturen. Dessa ändringar är inte funktionella krav, utan gäller upplåsningsskala. Ökad skalning kan komma från nya nettokunder, ökad användning från befintliga kunder och kunder med högre regelkrav.

Motstå frestelsen att optimera i förtid. Se till att vidta tillväxt- och mognadssteg som kan hjälpa dig att fortsätta iterera och förbättra din produkt.

Nästa steg