Programutveckling för innovativa program
Enligt beskrivningen i Demokratisera data med digitala uppfinningar driver data de flesta innovationer i den digitala ekonomin. Med utgångspunkt i den analogi är tillämpningar de bränslestationer och den infrastruktur som krävs för att få bränslet i rätt händer.
I vissa fall räcker det med enbart data för att driva på ändringar och uppfylla kundernas behov. Vanligare är dock att lösningar till kunder kräver att program formar data och skapar en upplevelse. Innovativa program engagerar och interagerar med användaren och ger information och vägledning. Den här artikeln sammanfattar flera principer som kan hjälpa dig att hitta rätt lösning för programutveckling, baserat på de hypoteser som ska valideras.
Delad kod
Team som är snabba med att svara på kundfeedback, marknadsförändringar och affärsmöjligheter innoverar vanligtvis bäst. Den första principen för innovativa tillämpningar är en del av tillväxttänket: "Dela koden." Koddelning inbjuder till olika perspektiv och bidrag och sporrar innovation. Därför bör programutvecklingen börja med en delad kodlagringsplats.
Ett vanligt verktyg för att hantera kodlagringsplatser är GitHub, som gör att du snabbt kan skapa en delad kodlagringsplats. Ett alternativ är Microsoft Azure Repos, som är en Azure DevOps-tjänst som tillhandahåller obegränsade, molnbaserade privata lagringsplatser för ditt projekt. För versionskontroll när du använder Azure Repos kan du välja antingen Git, som är en distribuerad typ, eller Team Foundation Version Control (TFVC), som är centraliserad. Mer information om Azure-lagringsplatser, Git och TFVC finns i dokumentationen för Azure Repos.
Medborgarutvecklare
Professionella utvecklare är viktiga för innovationen. När en hypotes visar sig vara korrekt i stor skala kan de stabilisera lösningen och förbereda den för skalning. Tyvärr kan professionella utvecklare vara en bristvara, och professionell utveckling kan öka kostnaderna och långsam innovation.
Medborgarutvecklare är användare som skapar nya affärsprogram med hjälp av utvecklings- och körningsmiljöer som sanktioneras av företagets IT- och miljö. Användningen av medborgarutvecklare kan bidra till att skala utvecklingsarbetet och påskynda tidig hypotestestning. Den här strategin är användbar och effektiv när tidiga hypoteser kan valideras via verktyg som Power Apps för programgränssnitt, AI Builder för processer och förutsägelser, Power Automate för arbetsflöden och Power BI för dataförbrukning.
Anteckning
När du förlitar dig på att medborgarutvecklare ska testa hypoteser är det lämpligt att även ha professionella utvecklare som kan stödja, granska och vägleda arbetet. Proffsen kan hjälpa till att utveckla en robust design som påskyndar avkastningen på innovationen. Genom att involvera professionella utvecklare vid rätt tidpunkt kan du genomföra renare övergångar senare.
Intelligenta upplevelser
Intelligenta upplevelser kombinerar hastigheten och skalan hos moderna webbprogram med intelligensen hos kognitiva tjänster och robotar. Individuellt kan dessa tekniker vara tillräckliga för att uppfylla kundernas behov. När de kombineras på rätt sätt breddar de det spektrum av behov som kan uppfyllas genom en digital upplevelse, samtidigt som de bidrar till att begränsa kostnaderna för programutveckling.
Moderna webbappar
Moderna webbprogram kan vara det snabbaste sättet att uppfylla interna eller externa kunders behov. De upplevelser som de erbjuder kan engagera kunderna snabbt och möjliggöra en snabb utveckling av lösningen.
Lägga till intelligens
Det blir enklare hela tiden för professionella utvecklare och medborgarutvecklare att lägga till maskininlärnings- och AI-funktioner i program som hjälper till att uppfylla kundens behov och skapa en interaktiv upplevelse. Några exempel på dessa funktioner är:
- Tal till text
- Text till tal
- Datorvision
- Visuell sökning
- Förutsägelse-AI
Innovatörer bör vara uppmärksamma på att dra nytta av sådana funktioner för att skapa en interaktiv och modern upplevelse.
Robotar
En robot är ett konversations-AI-program som ger användarna en upplevelse som mer liknar att hantera en person och mindre som att hantera ett konventionellt datorprogram. Användare samtalar med en robot via text, interaktiva kort och tal. En robotinteraktion kan vara allt från en snabb fråga och svar, till exempel att göra en middagsreservation, till en sofistikerad konversation som intelligent ger åtkomst till tjänster.
Robotar kan göra samma saker som andra typer av programvara: läsa och skriva filer, använda databaser och API:er och hantera vanliga beräkningsuppgifter. Det som gör robotar unika är deras användning av mekanismer som vanligtvis är reserverade för kommunikation mellan människor. Robotar är mycket som moderna webbprogram: de lever på Internet och använder API:er för att skicka och ta emot meddelanden. Vad som finns i en robot varierar mycket beroende på vilken typ av robot den är. Modern robotprogramvara förlitar sig på en hög med teknik och verktyg för att leverera allt mer komplexa upplevelser på en mängd olika plattformar. En enkel robot kan dock bara få ett meddelande och skicka tillbaka det till användaren med mycket lite kod.
Molnbaserade lösningar
Med molnbaserad arkitektur kan du använda snabba förändringar och köra elastiska och skalbara program enklare. Molnbaserade program skapas vanligtvis med containrar, mikrotjänster, hanterade tjänster, serverlösa funktioner och händelsebaserad programmering. Oftast använder molnbaserade lösningar kontinuerlig leverans för att uppnå snabbare tid till marknaden.
Med en molnbaserad lösning kan centraliserade utvecklingsteam behålla kontrollen över affärslogik utan att behöva monolitiska, centraliserade lösningar. Det skapar också ett ankare för att driva konsekvens över indata från medborgarutvecklare och moderna upplevelser. Slutligen erbjuder molnbaserade lösningar en innovationsaccelerator genom att befria medborgare och professionella utvecklare från att förnya på ett säkert sätt och med ett minimum av blockerare.
Förnya genom befintliga lösningar
Många kundhypoteser kan bäst levereras med en moderniserad version av en befintlig lösning. Detta kan inträffa när den aktuella affärslogik är nära att uppfylla kundernas behov.
De flesta former av modernisering, inklusive refaktorisering, ingår i migreringsmetodiken inom Cloud Adoption Framework. Den metoden vägleder molnimplementeringsteamen genom migreringen av en digital egendom till molnet. Azure-migreringsguiden ger en effektiv metod för samma metod, som är lämplig för ett litet antal arbetsbelastningar eller till och med ett enda program.
När en lösning har migrerats och moderniserats finns det en mängd olika sätt att använda den för att skapa nya, innovativa programlösningar som uppfyller kundernas behov. Till exempel kan medborgarutvecklare testa hypoteser, eller så kan professionella utvecklare skapa intelligenta upplevelser eller molnbaserade lösningar.
Utöka en befintlig lösning
Att utöka en lösning är en vanlig form av modernisering. Detta kan vara den snabbaste vägen till innovation när följande gäller för kundhypotesen:
- Befintlig affärslogik uppfyller eller kommer nära kundernas behov.
- En förbättrad upplevelse, inte en ny, passar bäst för kundernas behov.
- Affärslogik som krävs av MVP-lösningen (Minimum Viable Product) har centraliserats, vanligtvis via en design med n-nivå, webbtjänster, API eller mikrotjänster . Den här metoden består av att omsluta den befintliga lösningen i en ny upplevelse som finns i molnet. I Azure skulle den här lösningen förmodligen finnas i Azure App Service.
Återskapa en befintlig lösning
Om en befintlig lösning uppfyller eller är nära att uppfylla kundernas behov, men inte enkelt kan utökas, kan det vara nödvändigt att omstrukturera den. Med den här metoden migreras programmet till molnet. När programmet har migrerats ändras eller dupliceras delar av det, som webbtjänster eller mikrotjänster, som distribueras parallellt med den befintliga lösningen. Den parallella tjänstbaserade lösningen kan behandlas som en utökad lösning. Den här lösningen skulle helt enkelt omsluta den befintliga lösningen med en ny upplevelse i molnet. I Azure skulle den här lösningen förmodligen finnas i Azure App Service.
Varning
Refaktorisering eller omarbetning av lösningar eller centralisering av affärslogik kan snabbt utlösa en tidskrävande teknisk topp i stället för en källa till kundvärde. Detta är en risk för innovation, särskilt tidigt i hypotesvalidering. Med lite kreativitet i utformningen av en lösning bör det finnas en väg till MVP som inte kräver refaktorisering av befintliga lösningar. Det är klokt att fördröja refaktorisering tills den inledande hypotesen kan valideras i stor skala.
Driftsmodellinnovationer
Förutom moderna innovativa metoder för programutveckling har det skett anmärkningsvärda innovationer inom programdriften. Dessa metoder har skapat många organisationsrörelser. En av de viktigaste är driftsmodellen för molncenter för utmärkthet . När företagsteamen är fullt bemannade och mogna har de möjlighet att tillhandahålla sitt eget operativa stöd för en lösning.
Den typ av drifthanteringsmodell med självbetjäning som finns i ett molncenter med utmärkthet möjliggör strängare kontroller och snabbare iterationer i lösningsmiljön. Dessa mål uppnås genom överföring av operativ kontroll och ansvarstagande till affärsteamet.
Om du försöker skala eller möta den globala efterfrågan på en befintlig lösning kan den här metoden vara tillräcklig för att validera en kundhypotes. När en lösning har migrerats och moderniserats något kan affärsteamet skala den för att testa en mängd olika hypoteser. Dessa omfattar vanligtvis kundkohorter som arbetar med prestanda, global distribution och andra kundbehov som hindras av IT-driften.
Minska omkostnader och hantering
Ju mer det finns att underhålla inom ett innovativt program eller en innovativ lösning, desto långsammare itereras programmet eller lösningen. Det innebär att du kan påskynda innovationen genom att minska effekten av åtgärder på tillgänglig bandbredd.
För att förbereda för de många iterationer som krävs för att leverera en innovativ lösning är det viktigt att tänka framåt. Du kan till exempel minimera driftsbördan tidigt i processen genom att prioritera serverlösa alternativ. I Azure kan serverlösa programalternativ innehålla Azure App Service eller containrar.
Överväg parallellt alternativen för serverlösa transaktionsdata i Azure som också kan minska omkostnaderna. Azure-produktkatalogen innehåller databasalternativ som är värdar för data utan behov av en fullständig dataplattform.
Nästa steg
Beroende på hypotesen och lösningen kan principerna i den här artikeln hjälpa dig att utforma program som uppfyller MVP-definitioner och engagerar användare. Härnäst är principerna för att underlätta implementeringen, som erbjuder sätt att få programmet och data i händerna på kunder snabbare och effektivare.