ZMIANA TEMPA TWORZENIA APLIKACJI

Chodzenie po wodzie i programowanie na podstawie specyfikacji są łatwe, jeśli woda i specyfikacja zostaną zamrożone.

Edward V. Berard.

Przedsiębiorstwa usilnie starają się zwiększyć swoją “zwinność biznesową”. W najczystszej postaci zwinność biznesowa oznacza zdolność przedsiębiorstwa do błyskawicznego przystosowywania się do zmian zachodzących w otoczeniu biznesowym bez ponoszenia wysokich kosztów.

Stabilność i trwałość przedsiębiorstwa zależą w coraz większym stopniu od jego dynamizmu i umiejętności szybkiego wprowadzania zmian. Kluczem do przetrwania przedsiębiorstwa jest natomiast szybkość wprowadzania na rynek nowych produktów, procesów i usług.

Aby przedsiębiorstwa mogły nabrać zwinności, konieczne jest zwiększenie elastyczności wielu czynników. Do osiągnięcia tej elastyczności nie wystarczy jedynie zmiana struktury i sposobu funkcjonowania przedsiębiorstwa; konieczne są również inne zmiany. Wraz ze wzrostem poziomu automatyzacji w większości przedsiębiorstw informatyka staje się istotnym czynnikiem wspierającym nabywanie zwinności biznesowej. Pojawia się tu jednak pewne wyzwanie: informatyka w przedsiębiorstwie zwykle nie cechuje się zwinnością... Istniejące systemy backendowe nie są efektywne w zderzeniu ze stale zmieniającymi się potrzebami biznesowymi.

Informatyka musi być wyraźniej ukierunkowana na biznes. Takie trendy jak usługi w chmurze i rosnące zainteresowanie upraszczaniem informatyki w przedsiębiorstwie wywołują potrzebę spojrzenia z nowej perspektywy na tworzenie oprogramowania dla przedsiębiorstw. Obecnie widoczne są trendy w kierunku budowania tzw. zbiorów szablonów i tworzenia oprogramowania dla jednostek biznesowych, które są wspaniałym sposobem udostępnienia ludziom szerszej palety narzędzi do tworzenia innowacyjnych zastosowań dla nowych produktów i usług z dziedziny informatyki. Rodzą one jednak nowe wyzwania dla działów IT - wynikające z ryzyka związanego z koniecznością zapewnienia kontroli, spójności i bezpieczeństwa. Informatycy muszą znaleźć sposób na to, by uzyskać kontrolę nad nowymi „niepokornymi” aplikacjami.

Oto główne wyzwania, z jakimi muszą się zmierzyć przedsiębiorstwa chcące zwiększyć swoją zwinność biznesową:

  •  Przedsiębiorstwo musi zwiększać ROI ze swoich dotychczasowych systemów
  •  Należy wykorzystywać dostępne rozszerzenia systemów są to m.in. portale frontendowe, złożone aplikacje do przetwarzania wewnętrznego, portale B2B i aplikacje z interfejsem typu "Single-page application"
  •  Jednostki biznesowe muszą sprawniej reagować na zmiany i potrzeby, koncentrując się na biznesowym aspekcie informatyki, dostępnym dzięki zbiorom szablonów i rozwiązaniom opartym na chmurze



  •  Specjaliści działu IT muszą stale wprowadzać innowacje przy kurczącym się budżecie, kontrolując otoczenie nowych aplikacji z uwzględnieniem ich efektywności i zarządzania nią
  •  Należy kierować się przekonaniem, że musi istnieć lepszy sposób uproszczenia współpracy między biznesem a informatyką

Platforma aplikacyjna Dysant daje nowoczesnym przedsiębiorstwom możliwość zmierzenia się z tymi wyzwaniami, umożliwiając im korzystanie z modelu „platforma jako usługa” (Platform-as-a-Service, PaaS). Oferuje ona kompletne rozwiązanie umożliwiające elastyczne tworzenie aplikacji i zarządzanie cyklem jej życia.

Proces





Inżynieria polega nie tylko na podejmowaniu lepszych decyzji, ale również na skracaniu cykli obiegu informacji zwrotnych.

Przyjrzyjmy się uważniej zarządzaniu cyklem życia aplikacji (application lifecycle management, ALM). ALM jest ciągłym procesem zarządzania cyklem życia aplikacji przez wszystkie jego sprinty (etapy). Rozwiązania ALM mają ułatwiać i integrować wymagania, zarządzanie aktualizacjami, programowanie, wdrażanie, utrzymanie itd. W kolejnych częściach niniejszego opracowania wyjaśnimy ten proces i podejście potrzebne do zrealizowania go oraz wyjaśnimy szczegółowo jak sami go usprawniamy. Przedtem jednak przyjrzyjmy się określeniu „zwinny”, które jest powiązane ze skrótem ALM.

Elastyczność

Co kryje się pod określeniem “elastyczne zarządzanie cyklem życia aplikacji”?

  •    Interakcje między osobami – tj. programowanie zespołowe w celu osiągnięcia wspólnego celu
  •   Efektywne oprogramowanie – tj. oprogramowanie spełniające wymagania
  •   Współpraca z klientem – tj. cykle wymiany informacji z użytkownikami końcowymi
  •   Odpowiadanie na zmiany – tj. umożliwienie wprowadzania zmian w obszarze informatyki w tempie wymaganym przez jednostki biznesowe

Podejście elastyczne, określane często również mianem “lekkiego” czy „zwinnego”, jest skoncentrowane na dostarczaniu oprogramowania w relatywnie krótkich odstępach czasu przy rozwijaniu wymagań na drodze współpracy. Z perspektywy technicznej takie kwestie jak ciągła integracja, programowanie oparte na technice programowania sterowanego testami („test-driven development”), refaktoryzacji itd. są potrzebne do utrzymania elastyczności w procesie wdrożeniowym.

Wierzymy, że ALM musi być osadzone w regułach zwinnego programowania, aby zapewnić elastyczność niezbędną do wdrażania zwinności w całym przedsiębiorstwie. Jedynym sposobem na rzeczywiste udoskonalenie tworzenia oprogramowania jest rozszerzenie współpracy między wszystkimi interesariuszami projektu. Dlatego też nasza platforma kładzie nacisk na podejście określane mianem zwinnego. Projektowanie z wykorzystaniem naszej platformy jest kluczowym czynnikiem sukcesu w zakresie dostarczania elastycznych produktów klientom.

Cykl życia aplikacji jest ciągłym procesem, na który składają się cztery etapy: rejestracja, programowanie, wdrożenie i iteracja. Ponadto uważamy, że ważne jest samo zarządzanie procesem i jego wynikami. W dalszej kolejności wyjaśnimy każdy etap szczegółowo.

 


Rejestracja

Źródłem nowej aplikacji (nowej wersji) jest zwykle pomysł. Pomysł ten jest dopracowywany w drodze dyskusji prowadzonej przez interesariuszy, czego owocem jest zbiór wymagań. Wymagania te mają formę krótkich historii użytkowników (ang. user stories), czyli uproszczonych opisów przypadków, które należy doprecyzować i ocenić pod względem wagi. Jedna historia użytkownika rodzi często wiele dyskusji między interesariuszami. Istotne jest, aby wspierać proces właściwego tworzenia, precyzowania i kategoryzowania historii użytkownika celem usprawnienia komunikacji i udokumentowania procesu.

Historie użytkownika powinny być oceniane i włączane do poszczególnych, oddawanych kolejno etapów projektu. Zespół projektowy musi mieć do dyspozycji narzędzia, dzięki którym będzie mógł planować kolejne aktualizacje, jak również narzędzia do monitorowania, np. elastyczne statusy i wykresy malejące. Wraz z coraz szerszym przyjęciem zwinnego podejścia do realizacji projektów rosnące zespoły starają się zastosować tę metodologię we właściwy sposób. Uważamy, że takie zespoły powinny być odpowiednio przeszkolone i powinna w nich zajść zmiana sposobu myślenia tak, aby mogły właściwie wdrożyć tę metodologię. Powinny one mieć również dostęp do odpowiednich narzędzi, w pełni zintegrowanych w cyklu życia aplikacji.

Programowanie

Gdy dany etap projektu jest już w pełni zdefiniowany i udało się zbudować zespół, który zobowiązał się wykonać zadanie w terminie, czas na rozpoczęcie programowania. Na tym etapie ważne jest, aby zastosować odpowiednie techniki celem właściwego wsparcia zwinnego cyklu życia. Oznacza to, że programowanie powinno odbywać się w warunkach wspierających komunikację, produktywność, utrzymanie wysokiej jakości i realizację prac w krótkich etapach - sprintach.





Nauczyliśmy się, że programowanie techniką Model-Driven Development (MDD) zwiększa produktywność, ponieważ do programowania aplikacji mogą być użyte języki wysokiego poziomu. Języki te są automatycznie przetwarzane przez zaawansowane silniki, co niweluje potrzebę pracochłonnego programowania. Gwarantuje to także skrócenie cykli wymiany informacji zwrotnej, ponieważ zmiana modelu może być przetestowana bezpośrednio w aplikacji. Jeśli języki modelowania są językami wizualnymi (a nie tekstowymi), doskonale ułatwiają komunikację między ekspertami biznesowymi a informatykami. Z tego właśnie powodu uważamy, że MDD jest koniecznym składnikiem procesu zwinnego zarządzania cyklem życia aplikacji.

W zasadzie można powiedzieć, że aplikacja nie jest wynikiem programowania, ale łączenia komponentów na platformie Dysant za pomocą języka wizualnego. W połączeniu ze zbiorem szablonów, w którym dostępne są szablony, widżety, pluginy a nawet kompletne komponenty biznesowe, tworzenie aplikacji zaczyna w coraz większym stopniu przypominać sztukę komponowania.

Wdrażanie

Następnym krokiem w cyklu życia aplikacji jest poddanie jej (akceptacja) testom lub uruchomienie w środowisku produkcyjnym. Wdrożenie kojarzy się z pewnym zamieszaniem - często niebezpodstawnie, ponieważ nierzadko obejmuje również sprzęt, konfigurowanie, wydajność, skalowalność, zaangażowanie innych działów itd. Jeśli Twój proces programistyczny był zwinny, na tym etapie może ulec zablokowaniu.

Naszym zdaniem wdrożenie jest niezbędne dla zwinnego zarządzania cyklem życia aplikacji. Wdrożenie powinno wymagać tylko jednego kliknięcia, którym „model aplikacji” zostanie przeniesiony do środowiska chmury, czego efektem będzie gotowa aplikacja. Nazywamy to usługą wdrożenia modelu (ang. Model-Execution-as-a-Service). Dzięki chmurze, w której uruchomiona zostanie aplikacja, unikniesz zmartwień spowodowanych takimi kwestiami jak dostępność, zabezpieczenia, wydajność i innymi podobnymi zagadnieniami, o których dowiesz się dopiero po uruchomieniu aplikacji w środowisku produkcyjnym.

Iteracje

Niektórzy mogliby pomyśleć, że wszystko jest już gotowe. Aplikacja działa w środowisku produkcyjnym, użytkownicy końcowi korzystają z niej, a my otworzyliśmy szampana. Nic bardziej mylnego! Proces dopiero się rozpoczął. Dopiero wówczas, gdy aplikacja jest używana w środowisku produkcyjnym, użytkownicy końcowi będą mogli zapoznać się z jej działaniem i zastanowić się nad poprawkami. Warto także zauważyć, że proces biznesowy obsługiwany przez Twoją aplikację najprawdopodobniej nie jest niezmienny. Chcąc zwiększyć zwinność biznesową, musimy wdrożyć mechanizm umożliwiający zebranie informacji zwrotnych i uwzględnienie ich w nowej wersji aplikacji. Innymi słowy: musimy gromadzić informacje zwrotne i wykorzystywać je przy kolejnych cyklach.

Działanie

W związku z tym, że wykorzystanie języków wizualnych wysokiego poziomu do tworzenia aplikacji umożliwia specjalistom branżowym uczestnictwo w procesie programistycznym, możemy mieć do czynienia z biznesowym programowaniem aplikacji. Chmura, w której uruchomione są aplikacje, zapewnia dostępność, bezpieczeństwo, efektywność i skalowalność. Ponadto wyposaża ona dział IT w zestaw odpowiednich narzędzi do zarządzania wszystkimi aplikacjami w organizacji z jednego miejsca. Informatycy mogą uruchomić przepływy pracy w obszarze wdrożenia, testowania i konfiguracji. W skrócie: mogą oni opanować dżunglę aplikacji.


Pokaz wszystkie...

Pokaz wszystkie...