Modernizacja aplikacji: 5 kroków opartych na procesach

Discover how to deliver better software and systems in rapidly scaling environments. Join our Community

Wiele firm podchodzi do modernizacji aplikacji poprzez aktualizację technologii, ale ta strategia może szybko się zdezaktualizować. Skoncentruj się na modernizacji procesów tworzenia i wdrażania, aby zapewnić długoterminową innowacyjność, skalowalność i przewagę konkurencyjną.

app modernization featured image

Jeśli poprosisz specjalistów IT o opisanie strategii modernizacji aplikacji w ich firmach, prawdopodobnie usłyszysz odpowiedzi koncentrujące się na technologii.

Mogą powiedzieć, że migrują aplikacje lokalne do chmury, przenoszą aplikacje już działające w chmurze do nowych rodzajów usług chmurowych albo refaktoryzują aplikacje, aby działały jako mikrousługi.

Innymi słowy, gdy wiele osób myśli o modernizacji aplikacji, myśli w kategoriach zmian technologicznych.

Chcę powiedzieć, że jest to niewłaściwe podejście do modernizacji aplikacji. Zamiast modernizować technologie, firmy naprawdę powinny modernizować procesy tworzenia i wdrażania aplikacji.

Pozwól, że wyjaśnię, dlaczego organizacje powinny dążyć do opartego na procesach podejścia do modernizacji aplikacji, a także przedstawię praktyczne wskazówki dotyczące modernizacji procesów dostarczania aplikacji.

Modernizacja aplikacji: historia bez końca

Technocentryczne podejście do modernizacji aplikacji nie sprawdza się po prostu dlatego, że technologie nieustannie się zmieniają. Innowacje techniczne, które sprawiają, że aplikacja jest dziś „nowoczesna”, mogą sprawić, że za rok, trzy lub dziesięć lat będzie wyglądać jak aplikacja starszego typu.

Na przykład, gdy około dekady temu modernizacja aplikacji stała się modnym hasłem, technologie chmurowe, takie jak infrastruktura jako usługa (IaaS), stanowiły podstawę wielu strategii modernizacji aplikacji. W tamtym czasie IaaS było niezwykle istotne dla wielu organizacji, które wcześniej hostowały obciążenia lokalnie. Dla nich możliwość uruchamiania aplikacji na infrastrukturze zarządzanej przez kogoś innego i płacenia wyłącznie za zasoby wykorzystywane przez obciążenia była rewolucyjna.

Dziś oczywiście IaaS wydaje się znacznie mniej przełomowe. Nadal jest wartościowe, ale stało się tak powszechne, że nie znajduje się już w centrum rozmów o modernizacji aplikacji. Zamiast tego ludzie mówią dziś częściej o nowszych rodzajach technologii i koncepcjach technicznych, takich jak kontenery i funkcje bezserwerowe.

Oznacza to, że jeśli strategia modernizacji aplikacji koncentruje się na aktualizowaniu aplikacji w celu wykorzystania najnowszych i najlepszych technologii (czymkolwiek będą one w momencie rozpoczęcia inicjatywy), wcześniej czy później aplikacja przestanie być innowacyjna. Nie będzie też doskonale zapewniać firmie znaczącej przewagi konkurencyjnej. W wielu przypadkach nie skorzystasz również z najnowszych zabezpieczeń, które są niezbędne, aby wyprzedzać ewoluujące zagrożenia.

Zdrowsze podejście do modernizacji aplikacji polega na skupieniu się na modernizacji procesów. Pomimo ogromnych zmian w technologii wdrażania aplikacji na przestrzeni ostatniej dekady lub dwóch, procesy tworzenia oprogramowania, które najlepiej wspierają innowacyjność i efektywność – takie jak powiązane ze sobą koncepcje i praktyki zwinnego wytwarzania, ciągłej integracji/ciągłego dostarczania (CI/CD) oraz DevOps – pozostały zasadniczo takie same.

Dlatego rzeczywistym celem każdej firmy powinna być modernizacja procesów dostarczania aplikacji, aby korzystać z najbardziej innowacyjnych technik. Gdy procesy są nowoczesne, zdolność do wykorzystywania nowoczesnych technologii i szybkiego aktualizowania aplikacji w celu korzystania z nowych technologii pojawia się naturalnie.

Jak usprawnić proces modernizacji aplikacji

Wyzwaniem dla wielu firm jest oczywiście faktyczne przeprowadzenie modernizacji procesu dostarczania oprogramowania w sposób, który sprawi, że wprowadzanie zmian będzie szybsze, łatwiejsze i bezpieczniejsze. Które konkretne procesy należy zmodyfikować i jak można pokonać przeszkody, które prawdopodobnie pojawią się po drodze?

Aby odpowiedzieć na te pytania, przyjrzyjmy się kilku taktykom modernizacji procesów, które mogą pomóc zmienić sposób, w jaki firmy „tworzą” oprogramowanie, niezależnie od używanych technologii.

Get Free Access
Get regular tech leadership wisdom for delivering better software and systems.
Get Free Access

Have an account? Log In

1. Znajdź problematyczne procesy dzięki analizie strumienia wartości

Pierwszym krokiem w modernizacji procesów jest określenie, które z nich najbardziej wymagają zmian. Aby uzyskać tę wiedzę, należy przeprowadzić analizę strumienia wartości. Analiza strumienia wartości dostarcza informacji o zadaniach wykonywanych w ramach dostarczania oprogramowania oraz o tym, ile czasu zajmuje każde z nich – podobnie jak przegląd budżetu pomaga zespołom znaleźć sposoby na poprawę wyników finansowych poprzez zajęcie się najpierw największymi pozycjami budżetowymi.

Podczas przeprowadzania analizy strumienia wartości dostarczania oprogramowania dowiadujesz się, które części procesu tworzenia aplikacji trwają najdłużej lub wymagają największego nakładu pracy ręcznej, a także które elementy zarządzania infrastrukturą są najbardziej podatne na błędy.

Chociaż prawdopodobnie niemal wszystkie procesy można w pewnym stopniu usprawnić, analiza strumienia wartości pozwala skupić się na tych, które najbardziej nadają się do ulepszenia. Pomaga również zidentyfikować niepotrzebne zadania lub kroki, które można wyeliminować, aby proces wdrażania był prostszy, szybszy i mniej ryzykowny.

2. Mierz dostarczanie oprogramowania

Analizowanie praktyk dostarczania oprogramowania jest najbardziej skuteczne, gdy procesy są systematycznie i ilościowo monitorowane. Można to robić za pomocą struktur, takich jak metryki DORA firmy Google, które mierzą efektywność istniejących procesów tworzenia i wdrażania oprogramowania.

Podejście oparte na metrykach umożliwia precyzyjne monitorowanie wyników dostarczania oprogramowania. Dzięki temu firmy mogą dokładnie ocenić, jak dużą poprawę (lub jej brak) osiągają po wprowadzeniu zmian w procesach dostarczania oprogramowania.

3. Wypowiedz wojnę procesom manualnym

Jeśli Twoja organizacja jest podobna do większości innych, analiza strumienia wartości ujawni sporą liczbę procesów, które zespoły nadal wykonują ręcznie. Automatyzacja wszędzie tam, gdzie jest to możliwe, powinna być priorytetem. Automatyzacja oszczędza czas, zmniejsza ryzyko błędów i ułatwia bezpieczniejsze wdrażanie.

W większości przypadków procesy manualne są przeciwieństwem modernizacji aplikacji z dwóch powodów. Po pierwsze, spowalniają pracę i powodują nieefektywność. Po drugie, operacje wykonywane ręcznie zwykle zwiększają ryzyko błędów, ponieważ istnieje możliwość, że człowiek przeoczy coś ważnego lub popełni błąd podczas stosowania konfiguracji, otwierając drogę do naruszenia bezpieczeństwa.

4. Zrefaktoryzuj procesy i procedury zarządzania

Tak jak można zrefaktoryzować aplikację monolityczną poprzez zdefiniowanie jej architektury na nowo, można również na nowo zdefiniować procesy i procedury zarządzania – takie jak podejście do tworzenia aplikacji i administrowania systemami.

W wielu przypadkach zwiększenie szybkości wdrażania aplikacji oraz wdrożenie ciągłego wdrażania i dostarczania wymaga przepisania procesów zarządzania zmianami w oprogramowaniu, ponieważ starsze podejścia, takie jak te związane z modelem kaskadowym, nie skalują się. Nie są w stanie nadążyć za tempem potoków ciągłego dostarczania, w których nowy kod jest wdrażany na produkcję kilka razy w tygodniu, a czasami nawet częściej.

Powolne i manualne procesy powinny być w miarę możliwości zastępowane procesami automatycznymi. Na przykład testy oprogramowania można zautomatyzować, aby oszczędzać czas i poprawić jakość (ponieważ zbyt często ręczne zatwierdzenia są jedynie formalnością, co oznacza, że spowalniają proces testowania, nie dodając wartości). Ponadto procesy, które są nadmiernie złożone, można potencjalnie podzielić na mniejsze i prostsze procedury.

5. Zmień sposób myślenia o procesach

Oprócz modyfikowania samych procesów modernizacja aplikacji powinna również obejmować zmianę sposobu, w jaki organizacje ogólnie postrzegają procesy. Mam na myśli skłanianie programistów, administratorów IT i menedżerów do domyślnego stosowania automatyzacji podczas wdrażania procesów.

Może się to wydawać niepotrzebne, ponieważ wielu specjalistów IT mówi dziś o znaczeniu automatyzacji. Jednak jeśli chodzi o faktyczne wdrażanie procesów, zwykle skłaniają się oni ku podejściom manualnym, ponieważ początkowo są one szybsze i prostsze do wdrożenia. Aby zapewnić długoterminowy sukces modernizacji aplikacji, trzeba sprawić, by zespoły postrzegały automatyzację jako sposób na oszczędzanie czasu i wysiłku oraz ograniczanie ryzyka w dłuższej perspektywie, nawet jeśli na początku wymaga ona więcej pracy.

More Articles

Pokonywanie wyzwań związanych z modernizacją aplikacji

Podczas wprowadzania opisanych przeze mnie zmian procesowych firmy często napotykają problemy takie jak:

  • Opór przed zmianami: Jeśli procesy manualne lub nieefektywne funkcjonowały przez dziesięciolecia, a firma nadal działała, niektóre osoby mogą kwestionować sens wprowadzania zmian.
  • Brak zasobów: Całościowa przebudowa procesów wymaga czasu i wysiłku. Działy IT, które już są nadmiernie obciążone, mogą niechętnie przeznaczać zasoby na zmiany procesów.
  • Brak przywództwa: Bez kadry kierowniczej lub menedżerów, którzy kierowaliby modernizacją procesów, inicjatywy mogą stracić dynamikę.

W pewnym stopniu tych wyzwań nie da się uniknąć. Można je jednak rozwiązać. Częścią rozwiązania jest rozpoczęcie od małych kroków; zamiast przebudowywać procesy z dnia na dzień, wybierz tylko kilka i od nich zacznij skalowanie. Dobrą praktyką jest również rozpoczęcie od jednego lub dwóch zespołów.

Po ustaleniu, od czego zacząć, zadbaj o mierzenie dostarczania oprogramowania za pomocą metryk, przeprowadź analizę strumienia wartości, aby określić obszary wymagające poprawy, i wprowadź zmiany. Po zwiększeniu sprawności początkowych zespołów ich członkowie mogą rozszerzyć działania i pomóc innym we wdrożeniu podobnych procesów i sposobów myślenia.

Firmy powinny również wyznaczyć liderów odpowiedzialnych za nadzorowanie inicjatyw modernizacyjnych oraz delegować odpowiedzialność za określone aspekty procesu osobom posiadającym wymagane umiejętności. Inną możliwością jest zlecenie tych prac firmie zajmującej się tworzeniem aplikacji mobilnych lub firmie zajmującej się tworzeniem aplikacji na iPada.

Nowoczesne podejście do modernizacji aplikacji

Ostatecznie powodzenie każdego projektu modernizacji aplikacji zależy nie tylko od tego, jakie technologie zdecydujesz się wdrożyć, ale także od sposobu ich wdrożenia. Dopóki firmy nie zmodernizują procesów tworzenia i aktualizowania oprogramowania, zawsze będą pozostawać w tyle.

Jednak dzięki wydajnym, niezawodnym i bezpiecznym procesom organizacje mogą modernizować swoje aplikacje, korzystając z najnowszych innowacji technologicznych, gdy tylko pojawią się nowe możliwości technologiczne.

Zapisz się do newslettera The CTO Club, aby poznać więcej wskazówek, porad i narzędzi dotyczących modernizacji aplikacji.

Scott Wheeler
Scott Wheeler is Cloud Practice Lead at Asperitas. He helps organizations successfully implement the most complex and demanding cloud solutions.
Follow the author:

You may also like