Opracowywanie aplikacji dla innowacyjnych aplikacji
Zgodnie z opisem w dokumencie Demokratyzowanie danych za pomocą wynalazków cyfrowych dane napędzają większość innowacji w gospodarce cyfrowej. Opierając się na tej analogii, zastosowania to stacje paliwowe i infrastruktura wymagana do uzyskania tego paliwa w prawo ręce.
W niektórych przypadkach same dane są wystarczające do zmiany i zaspokojenia potrzeb klientów. Częściej jednak rozwiązania dla klientów wymagają od aplikacji kształtowania danych i tworzenia środowiska. Innowacyjne aplikacje angażują się i wchodzą w interakcję z użytkownikiem, dostarczając informacje i wskazówki. Ten artykuł zawiera podsumowanie kilku zasad, które mogą pomóc w znalezieniu odpowiedniego rozwiązania do tworzenia aplikacji na podstawie hipotez do zweryfikowania.
Kod udostępniony
Zespoły, które szybko reagują na opinie klientów, zmiany w rynku i możliwości zwykle najlepiej wprowadzają innowacje. Pierwszą zasadą innowacyjnych aplikacji jest element myślenia o rozwoju: "Udostępnianie kodu". Udostępnianie kodu zaprasza różne perspektywy i wkłady oraz pobudza innowacje. W związku z tym tworzenie aplikacji powinno rozpoczynać się od repozytorium kodu udostępnionego.
Powszechnie stosowanym narzędziem do zarządzania repozytoriami kodu jest usługa GitHub, która umożliwia szybkie tworzenie udostępnionego repozytorium kodu. Alternatywą jest microsoft Azure Repos, która jest usługą Azure DevOps, która zapewnia nieograniczone, hostowane w chmurze prywatne repozytoria dla projektu. W przypadku kontroli wersji w przypadku używania Azure Repos możesz wybrać usługę Git, która jest typem rozproszonym, lub Kontrola wersji serwera Team Foundation (TFVC), która jest scentralizowana. Aby uzyskać więcej informacji na temat Azure Repos, usługi Git i kontroli wersji serwera Team Foundation, zobacz dokumentację Azure Repos.
Amatorscy deweloperzy
Profesjonalni deweloperzy są ważne dla innowacji. Gdy hipoteza okaże się dokładna na dużą skalę, mogą ustabilizować rozwiązanie i przygotować je do skali. Niestety, profesjonalni deweloperzy mogą mieć krótką podaż, a rozwój zawodowy może zwiększyć koszty i spowolnić innowacje.
Deweloperzy obywatelscy to użytkownicy, którzy tworzą nowe aplikacje biznesowe przy użyciu środowisk deweloperskich i środowisk uruchomieniowych zaakceptowanych przez firmowe infrastruktury IT. Wykorzystanie deweloperów obywateli może pomóc w skalowaniu wysiłków programistycznych i przyspieszeniu wczesnego testowania hipotez. Ta strategia jest opłacalna i skuteczna, gdy wczesne hipotezy można zweryfikować za pomocą narzędzi, takich jak usługa Power Apps dla interfejsów aplikacji, narzędzie AI Builder dla procesów i przewidywań, usługa Power Automate dla przepływów pracy i usługa Power BI na potrzeby użycia danych.
Uwaga
Jeśli polegasz na deweloperach obywateli do testowania hipotez, zaleca się również, aby profesjonalni deweloperzy mogli wspierać, przeglądać i kierować pracą. Specjaliści mogą pomóc w opracowaniu niezawodnego projektu, który przyspiesza zwroty z innowacji. Dzięki zaangażowaniu profesjonalnych deweloperów w odpowiednim czasie możesz później zrealizować czystsze przejścia.
Inteligentne środowiska
Inteligentne środowiska łączą szybkość i skalę nowoczesnych aplikacji internetowych z analizą usług Cognitive Services i botów. Indywidualnie te technologie mogą być wystarczające do spełnienia potrzeb klientów. Po prawidłowym połączeniu rozszerzają spektrum potrzeb, które można spełnić za pomocą środowiska cyfrowego, a jednocześnie pomagają one zawierać koszty tworzenia aplikacji.
Nowoczesne aplikacje internetowe
Nowoczesne aplikacje internetowe mogą być najszybszym sposobem zaspokojenia potrzeb klientów wewnętrznych lub zewnętrznych. Środowiska, które zapewniają, mogą szybko zaangażować klientów i umożliwić szybką ewolucję rozwiązania.
Dodawanie analizy
Ułatwia to cały czas deweloperom zawodowym i obywatelskim dodawanie funkcji uczenia maszynowego i sztucznej inteligencji do aplikacji, które pomagają spełnić potrzeby klienta i tworzyć interaktywne środowisko. Oto kilka przykładów tych funkcji:
- Zamiana mowy na tekst
- Zamiana tekstu na mowę
- Przetwarzanie obrazów
- Wyszukiwanie wizualne
- Predykcyjna sztuczna inteligencja
Innowatorzy powinni być czujni, aby skorzystać z takich funkcji w celu utworzenia interaktywnego i nowoczesnego środowiska.
Boty
Bot to konwersacyjna aplikacja sztucznej inteligencji, która zapewnia użytkownikom środowisko, które jest bardziej podobne do radzenia sobie z osobą, a mniej jak radzenie sobie z konwencjonalną aplikacją komputerową. Użytkownicy rozmawiają z botem za pośrednictwem tekstu, kart interaktywnych i mowy. Interakcja z botem może obejmować szybkie pytanie i odpowiedź, takie jak dokonywanie rezerwacji kolacji, po zaawansowaną konwersację, która inteligentnie zapewnia dostęp do usług.
Boty mogą wykonywać te same czynności co inne typy oprogramowania: odczytywać i zapisywać pliki, używać baz danych i interfejsów API oraz obsługiwać regularne zadania obliczeniowe. To, co sprawia, że boty są unikatowe, to ich użycie mechanizmów zwykle zarezerwowanych do komunikacji między ludźmi. Boty są bardzo podobne do nowoczesnych aplikacji internetowych: działają w Internecie i używają interfejsów API do wysyłania i odbierania komunikatów. Zawartość bota różni się w zależności od rodzaju bota. Nowoczesne oprogramowanie botów opiera się na stosie technologii i narzędzi w celu dostarczania coraz bardziej złożonych środowisk na różnych platformach. Jednak prosty bot może po prostu otrzymać komunikat i przekazać go z powrotem do użytkownika z bardzo niewielkim udziałem kodu.
Rozwiązania natywne dla chmury
Architektura natywna dla chmury umożliwia szybkie zmiany oraz łatwiejsze uruchamianie odpornych i skalowalnych aplikacji. Aplikacje natywne dla chmury są zwykle tworzone przy użyciu kontenerów, mikrousług, usług zarządzanych, funkcji bezserwerowych i programowania opartego na zdarzeniach. Najczęściej rozwiązania natywne dla chmury korzystają z ciągłego dostarczania w celu osiągnięcia szybszego czasu obrotu.
Rozwiązanie natywne dla chmury umożliwia scentralizowanym zespołom deweloperów kontrolowanie logiki biznesowej bez konieczności korzystania z monolitycznych, scentralizowanych rozwiązań. Tworzy również kotwicę, aby zapewnić spójność w danych wejściowych deweloperów obywateli i nowoczesnych środowisk. Wreszcie rozwiązania natywne dla chmury zapewniają akcelerator innowacji, uwalniając deweloperów obywatelskich i profesjonalnych do bezpiecznego wprowadzania innowacji i z minimalnymi blokadami.
Wprowadzanie innowacji za pomocą istniejących rozwiązań
Wiele hipotez klientów może być najlepiej dostarczonych przez zmodernizowaną wersję istniejącego rozwiązania. Może się to zdarzyć, gdy bieżąca logika biznesowa zbliża się do potrzeb klientów.
Większość form modernizacji, w tym refaktoryzacji, jest uwzględniona w metodologii migracji w Cloud Adoption Framework. Ta metodologia prowadzi zespoły wdrażania chmury przez proces migrowania majątku cyfrowego do chmury. Przewodnik po migracji na platformę Azure zawiera usprawnione podejście do tej samej metodologii, która jest odpowiednia dla niewielkiej liczby obciążeń, a nawet jednej aplikacji.
Po przeprowadzeniu migracji i modernizacji rozwiązania można użyć różnych sposobów tworzenia nowych, innowacyjnych rozwiązań aplikacji spełniających potrzeby klientów. Na przykład deweloperzy obywateli mogą testować hipotezy lub profesjonalni deweloperzy mogą tworzyć inteligentne środowiska lub rozwiązania natywne dla chmury.
Rozszerzanie istniejącego rozwiązania
Rozszerzanie rozwiązania jest jedną z typowych form modernizacji. Może to być najszybsza droga do innowacji, gdy spełnione są następujące warunki hipotezy klienta:
- Istniejąca logika biznesowa spełnia lub zbliża się do potrzeb klientów.
- Ulepszone środowisko, a nie nowe, najlepiej spełnia potrzeby klientów.
- Logika biznesowa wymagana przez minimalne realne rozwiązanie produktu (MVP) została scentralizowana, zazwyczaj za pośrednictwem n-warstwowej, usług internetowych, interfejsu API lub mikrousług . Takie podejście składa się z opakowywania istniejącego rozwiązania w nowym środowisku hostowanym w chmurze. Na platformie Azure to rozwiązanie prawdopodobnie będzie żyć w Azure App Service.
Ponowne kompilowanie istniejącego rozwiązania
Jeśli istniejące rozwiązanie spełnia lub zbliża się do potrzeb klientów, ale nie można go łatwo rozszerzyć, może być konieczne jego refaktoryzacja. W tym podejściu aplikacja jest migrowana do chmury. Po przeprowadzeniu migracji aplikacji części są modyfikowane lub duplikowane jako usługi internetowe lub mikrousługi, które są wdrażane równolegle z istniejącym rozwiązaniem. Rozwiązanie oparte na usługach równoległych może być traktowane jak rozwiązanie rozszerzone. To rozwiązanie po prostu opakowuje istniejące rozwiązanie przy użyciu nowego środowiska hostowanego w chmurze. Na platformie Azure to rozwiązanie prawdopodobnie będzie żyć w Azure App Service.
Przestroga
Refaktoryzacja lub zmiana architektury rozwiązań lub scentralizowanie logiki biznesowej może szybko wywołać czasochłonny wzrost techniczny zamiast źródła wartości klienta. Jest to ryzyko innowacji, szczególnie na wczesnym etapie walidacji hipotez. Przy odrobinie kreatywności w projektowaniu rozwiązania powinna istnieć ścieżka do MVP, która nie wymaga refaktoryzacji istniejących rozwiązań. Warto opóźnić refaktoryzację, dopóki początkowa hipoteza nie zostanie zweryfikowana na dużą skalę.
Innowacje modelu operacyjnego
Oprócz nowoczesnych innowacyjnych podejść do tworzenia aplikacji wprowadzono istotne innowacje w operacjach aplikacji. Te podejścia zrodziły wiele ruchów organizacyjnych. Jednym z najbardziej znanych jest model operacyjny centrum doskonałości w chmurze . Gdy w pełni obsadzony i dojrzały, zespoły biznesowe mają możliwość zapewnienia własnego wsparcia operacyjnego dla rozwiązania.
Typ modelu samoobsługowego zarządzania operacyjnego znaleziony w centrum doskonałości w chmurze umożliwia ściślejsze kontrole i szybsze iteracji w środowisku rozwiązania. Te cele są realizowane przez przeniesienie kontroli operacyjnej i odpowiedzialności do zespołu biznesowego.
Jeśli próbujesz skalować lub zaspokoić globalne zapotrzebowanie na istniejące rozwiązanie, takie podejście może być wystarczające do zweryfikowania hipotezy klienta. Po zmigrowanym i nieco zmodernizowanym rozwiązaniu zespół biznesowy może go skalować, aby przetestować różne hipotezy. Zwykle obejmują one kohorty klientów, które są związane z wydajnością, dystrybucją globalną i innymi potrzebami klientów utrudnianymi przez operacje IT.
Zmniejszenie nakładu pracy i zarządzanie
Tym bardziej jest utrzymanie w innowacyjnej aplikacji lub rozwiązaniu, tym wolniej ta aplikacja lub rozwiązanie będzie iterować. Oznacza to, że można przyspieszyć innowacje, zmniejszając wpływ operacji na dostępną przepustowość.
Aby przygotować się do wielu iteracji wymaganych do dostarczania innowacyjnego rozwiązania, ważne jest, aby myśleć o przyszłości. Na przykład minimalizuj obciążenia operacyjne na wczesnym etapie procesu, faworyzując opcje bezserwerowe. Na platformie Azure opcje aplikacji bezserwerowych mogą obejmować Azure App Service lub kontenery.
Równolegle rozważ opcje danych transakcji bezserwerowych na platformie Azure, które mogą również zmniejszyć obciążenie. Katalog produktów platformy Azure udostępnia opcje bazy danych hostujące dane bez konieczności korzystania z pełnej platformy danych.
Następne kroki
W zależności od hipotezy i rozwiązania zasady przedstawione w tym artykule mogą pomóc w projektowaniu aplikacji spełniających definicje MVP i angażowanie użytkowników. W dalszej kolejności przedstawiono zasady zwiększania możliwości wdrażania, które oferują sposoby uzyskiwania aplikacji i danych w ręce klientów szybciej i wydajniej.