Udostępnij za pośrednictwem


Tworzenie aplikacji dla innowacyjnych aplikacji

Jak opisano w dokumencie Demokratyzowanie danych przy użyciu wynalazków cyfrowych, dane napędzają większość innowacji w całej gospodarce cyfrowej. Opierając się na tej analogii, aplikacje są stacjami paliw i infrastrukturą niezbędną do dostarczenia tego paliwa właściwym odbiorcom.

W niektórych przypadkach same dane są wystarczające, aby zwiększyć zmiany i spełnić potrzeby klientów. Częściej jednak rozwiązania dla klientów wymagają od aplikacji kształtowania danych i tworzenia doświadczeń. Innowacyjne aplikacje angażują się i wchodzą w interakcję z użytkownikiem, udostępniając informacje i wskazówki. W tym artykule przedstawiono podsumowanie kilku zasad, które mogą pomóc w znalezieniu odpowiedniego rozwiązania do tworzenia aplikacji w oparciu o hipotezy do zweryfikowania.

Diagram przedstawiający elementy, które mogą pomóc w utworzeniu aplikacji, która zapewnia klientom środowisko spełniające ich potrzeby.

Kod udostępniony

Zespoły, które szybko reagują na opinie klientów, zmiany na rynku i szanse sprzedaży, zwykle najlepiej wprowadzają innowacje. Pierwszą zasadą innowacyjnych aplikacji jest element myślenia rozwojowego: "Udostępnianie kodu". Udostępnianie kodu umożliwia wymianę różnorodnych perspektyw i wkładów, stymulując innowacje. W związku z tym tworzenie aplikacji powinno rozpoczynać się od udostępnionego repozytorium kodu.

Powszechnie przyjęte narzędzie do zarządzania repozytoriami kodu to GitHub, które umożliwia szybkie tworzenie udostępnionego repozytorium kodu. Alternatywą jest usługa Microsoft Azure Repos, która jest usługą Azure DevOps , która udostępnia nieograniczone, hostowane w chmurze prywatne repozytoria dla projektu. W przypadku korzystania z Azure Repos do kontroli wersji możesz wybrać pomiędzy Git, który jest typem rozproszonym, a Team Foundation Version Control (TFVC), który jest scentralizowany. Aby uzyskać więcej informacji na temat usług Azure Repos, Git i TFVC, zobacz dokumentację usługi Azure Repos.

Deweloperzy obywateli

Profesjonalni programiści są ważni dla innowacji. Gdy hipoteza okaże się dokładna na dużą skalę, mogą ustabilizować rozwiązanie i przygotować je do wdrożenia na większą skalę. Niestety, profesjonalni deweloperzy mogą być niedostępni, a rozwój zawodowy może zwiększyć koszty i spowolnić innowacje.

Deweloperzy niezawodowi to użytkownicy, którzy tworzą nowe aplikacje biznesowe przy użyciu środowisk do tworzenia i uruchamiania zatwierdzonych przez dział IT firmy. Korzystanie z 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 Power Apps dla interfejsów aplikacji, narzędzia AI Builder do przetwarzania i przewidywania, usługi Power Automate dla przepływów pracy i usługi Power BI na potrzeby użycia danych.

Uwaga / Notatka

Jeśli polegasz na deweloperach-amatorach do testowania hipotez, zaleca się również, aby profesjonalni deweloperzy wsparli, przejrzeli i pokierowali pracą. Specjaliści mogą pomóc w opracowaniu niezawodnego projektu, który przyspiesza zwroty z innowacji. Dzięki zaangażowaniu profesjonalnych programistów we właściwym czasie, możesz później zrealizować bardziej płynne przejścia.

Inteligentne środowiska

Doświadczenia inteligentne łączą szybkość i skalę nowoczesnych aplikacji internetowych z inteligencją usług kognitywnych i botów. Indywidualnie te technologie mogą być wystarczające, aby spełnić potrzeby klientów. Po odpowiednim 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 spełnienia potrzeb klientów wewnętrznych lub zewnętrznych. Doświadczenia, które oferują, mogą szybko zaangażować klientów i umożliwić szybką ewolucję rozwiązania.

Dodawanie inteligencji

Cały czas jest łatwiejszy dla profesjonalnych i obywatelskich deweloperów, aby dodać funkcje 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
  • Konwersja tekstu na mowę
  • Wizja komputerowa
  • Wyszukiwanie wizualne
  • Predykcyjna sztuczna inteligencja

Innowatorzy powinni być czujni, aby skorzystać z takich funkcji w celu utworzenia interaktywnego i nowoczesnego środowiska.

Bots

Bot to konwersacyjna aplikacja sztucznej inteligencji, która zapewnia użytkownikom doświadczenie bardziej przypominające interakcję z człowiekiem, a mniej jak w przypadku konwencjonalnej aplikacji komputerowej. Użytkownicy rozmawiają z botem za pośrednictwem tekstu, kart interaktywnych i mowy. Interakcja bota 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 wykorzystanie mechanizmów, które są ogólnie zarezerwowane dla 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 może się różnić w zależności od jego rodzaju. Nowoczesne oprogramowanie botów opiera się na stosie technologii i narzędzi w celu dostarczania coraz bardziej skomplikowanych doświadczeń na różnych platformach. Jednak prosty bot może po prostu otrzymać komunikat i powtórzyć go użytkownikowi z bardzo małą ilością 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 cloud native korzystają z ciągłego dostarczania, aby szybciej wprowadzać produkty na rynek.

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ę w celu zapewnienia spójności w danych wejściowych deweloperów obywateli i nowoczesnych środowisk. Na koniec rozwiązania natywne w chmurze zapewniają akcelerator innowacji, uwalniając deweloperów amatorskich i profesjonalnych do bezpiecznego wprowadzania innowacji przy minimalnych przeszkodach.

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ę tak zdarzyć, gdy bieżąca logika biznesowa zbliża się do potrzeb klientów.

Większość form modernizacji, w tym refaktoryzacja, jest uwzględniona w metodologii migracji w Cloud Adoption Framework. Ta metodologia prowadzi zespoły ds. wdrażania chmury przez proces migracji majątku cyfrowego do chmury. Przewodnik po migracji platformy 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 ścieżka do innowacji, gdy spełnione są następujące założenia hipotezy klienta:

  • Istniejąca logika biznesowa spełnia lub zbliża się do potrzeb klientów.
  • Ulepszone środowisko, a nie nowe, najlepiej odpowiada potrzebom klientów.
  • Logika biznesowa wymagana przez minimalną wersję produktu (MVP) została scentralizowana, zwykle za pośrednictwem n-warstwowej architektury, usług sieciowych, interfejsu API lub mikrousług. Takie podejście składa się z zawijania istniejącego rozwiązania w ramach nowego środowiska hostowanego w chmurze. Na platformie Azure to rozwiązanie prawdopodobnie będzie aktywne w usłudze 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 aktywne w usłudze Azure App Service.

Ostrożność

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 weryfikacji hipotezy. W przypadku odrobiny 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 w modelu operacyjnym

Oprócz nowoczesnych innowacyjnych podejść do tworzenia aplikacji nastąpiły istotne innowacje w operacjach aplikacji. Te podejścia wywołały wiele ruchów organizacyjnych. Jednym z najbardziej znanych jest model operacyjny centrum doskonałości w chmurze . W pełni obsadzone i dojrzałe zespoły biznesowe mają możliwość zapewnienia własnego wsparcia operacyjnego dla rozwiązania.

Rodzaj modelu samoobsługowego zarządzania operacyjnego stosowany w centrum doskonałości dla chmury umożliwia prowadzenie ściślejszej kontroli i szybsze iteracje 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ć w celu przetestowania różnych hipotez. Zazwyczaj obejmują one kohorty klientów, którzy są zainteresowani wydajnością, globalną dystrybucją i innymi potrzebami klientów utrudnianymi przez operacje IT.

Zmniejszanie obciążeń i zarządzanie

Im więcej elementów do utrzymania jest w innowacyjnej aplikacji lub rozwiązaniu, tym wolniej ta aplikacja lub rozwiązanie będzie się rozwijać. Oznacza to, że można przyspieszyć innowacje, zmniejszając wpływ operacji na dostępną przepustowość.

Aby przygotować się do wielu iteracji wymaganych do dostarczenia innowacyjnego rozwiązania, ważne jest, aby myśleć o przyszłości. Na przykład zminimalizuj obciążenia operacyjne na wczesnym etapie procesu, preferując opcje bezserwerowe. Na platformie Azure opcje aplikacji bezserwerowych mogą obejmować usługę 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.

Dalsze 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 następnej kolejności przedstawiono zasady zwiększania możliwości wdrażania, które oferują sposoby szybszego i wydajnego uzyskiwania aplikacji i danych z rąk klientów.