Kontrola na każdym etapie produkcji

Przed zespołami produkującymi software stoi coraz więcej wyzwań. Zmiany zachodzące w IT i w biznesie wymagają efektywnego zarządzania cyklem życia aplikacji. Trudno to robić bez odpowiednich narzędzi.

Do głównych wyzwań, jakie stoją obecnie przed zespołami tworzącymi oprogramowanie, należą: optymalizacja kosztów produkcji, komunikacja z klientami, którzy mają różny poziom świadomości na temat produkcji software’u, rozproszone, używające różnych procesów, często bardzo liczne zespoły programistów o międzynarodowym charakterze, edukacja klientów w krótkim czasie, komunikacja z biznesem, który oczekuje rozwiązań "od zaraz". Coraz ważniejsze staje się zarządzanie tworzeniem oprogramowania, kontrola nad produktem, zdefiniowanie wymagań i ich późniejsza weryfikacja, testowanie itp. Trudno to realizować bez odpowiedniego wsparcia narzędziowego.

Życiowy ALM

Wojciech Jaszcz, Head of Quality Management and Software Department w ABB i wiceprezes Stowarzyszenia Jakości Systemów Informatycznych

Dzięki ALM mamy dodatkowy komfort w niełatwej sztuce produkcji oprogramowania. Przede wszystkim możemy śledzić, jak zdefiniowane przez klienta wymagania są implementowane, testowane i dostarczane. Innymi słowy, możemy na bieżąco kontrolować zmiany w wymaganiach, sprawdzać, czy zrobione funkcjonalności są zgodne z wymaganiami. Dzięki metrykom możemy również kontrolować jakość i efektywność implementacji. Bez tego trudno tworzyć oprogramowanie na wysokim poziomie.

ALM (Application Lifecycle Management), czyli zarządzanie cyklem życia aplikacji, to odpowiedź na wiele spośród ww. wyzwań. "Dzięki ALM mamy dodatkowy komfort w niełatwej sztuce produkcji oprogramowania. Przede wszystkim możemy śledzić, jak zdefiniowane przez klienta wymagania są implementowane, testowane i dostarczane. Innymi słowy, możemy na bieżąco kontrolować zmiany w wymaganiach, sprawdzać, czy zrobione funkcjonalności są zgodne z wymaganiami. Dzięki metrykom możemy również kontrolować jakość i efektywność implementacji. Bez tego trudno tworzyć oprogramowanie na wysokim poziomie" - mówi Wojciech Jaszcz, dyrektor Działu Zarządzania Jakością i Procesami Programowania w ABB i wiceprezes Stowarzyszenia Jakości Systemów Informatycznych. Zaznacza jednak, że ani narzędzie do ALM, ani zdefiniowane procesy nie będą wystarczające, jeśli nie uda się zaimplementować odpowiedniego podejścia w organizacji i jeśli zespół nie będzie chciał działać według zasad związanych z ALM.

Wojciech Jaszcz wskazuje na trzy podstawowe czynniki, które są potrzebne, aby ALM był "życiowy": zarządzanie wymaganiami, zarządzanie konfiguracją zmiany oraz weryfikacja i walidacja. "Daje mi to gwarancję, że cały development nie wymknie mi się spod kontroli. Kontrola w tych trzech obszarach daje nam informacje o tym, w jakim stanie jest obecnie projekt i co trzeba poprawić" - mówi Wojciech Jaszcz.

Zwinni i przewidywalni

Bartosz Celmer, Method Specialist, Global ADT.NET Team w Volvo

To dział IT podejmuje decyzję o wdrożeniu ALM, żeby było szybciej, prościej i taniej dla biznesu. Ale biznes jest świadomy, że coś takiego jak ALM istnieje. Ponieważ w Volvo nie robimy produktów pudełkowych, musimy w jakimś zakresie angażować biznes w proces produkcji. ALM nas wspiera w kontaktach z biznesem.

Dzięki zarządzaniu cyklem życia aplikacji, firmie łatwiej jest określić, na jakim etapie procesu wytwarzania oprogramowanie się znajduje. Ponadto zwiększa się przewidywalność działań i rośnie gwarancja komunikacji - rozproszone po całym świecie zespoły programistów mogą używać tego samego języka i procesów. To samo dotyczy komunikacji z klientem. Użycie narzędzi ALM zwiększa też weryfikowalność tworzonego oprogramowania i produktywność zespołów. "ALM jest krytyczne w przypadku dużych, międzynarodowych software house’ów. Klient wewnętrzny oczywiście jest ważny, ale może wybaczyć, jeśli dostarczenie produktu się opóźni, a w przypadku klienta zewnętrznego może się to skończyć koniecznością zapłacenia wielomilionowych kar" - mówi Wojciech Jaszcz.

Eksperci zwracają też uwagę, że ALM jest szczególnie potrzebne w przypadku firm realizujących wiele projektów dla różnych zewnętrznych klientów, którzy mają różne wymagania, kiedy każdy projekt jest inny i gdy potrzebna jest szybka edukacja tych klientów. Dzięki narzędziom do zarządzania cyklem życia aplikacji można pokazać, jak będzie wyglądał proces, ponieważ jest on ściśle zdefiniowany.

Pomoc, nie smycz

Co najczęściej jest motorem wdrożenia ALM w firmach? "To dział IT podejmuje decyzję o wdrożeniu ALM - żeby było szybciej, prościej i taniej dla biznesu. Ale biznes jest też świadomy, że coś takiego jak ALM istnieje. Ponieważ w Volvo nie robimy produktów pudełkowych, musimy w jakimś zakresie angażować biznes w proces produkcji. ALM nas wspiera w kontaktach z biznesem" - tłumaczy Bartosz Celmer, Functional Manager, Global ADT.NET Team w Volvo.

Krzysztof Kołtuniewicz, Kredyt Inkaso

Jesteśmy na początku drogi, jeśli chodzi o implementację ALM. Nie nazywamy tego nawet jeszcze ALM, tylko mówimy o konieczności wprowadzenia pewnych sformalizowanych etapów testowania oprogramowania. Na razie, bez wsparcia ze strony rozwiązań IT, wprowadzamy zmiany proceduralno-organizacyjne. Naszą największą obawą jest to, czy wdrożenie narzędzia do ALM nie wydłuży całego procesu wytwarzania oprogramowania.

Piotr Czarnas z Roche Polska zwraca uwagę, że jeśli dział IT powie, że chce wdrożyć ALM, to strona biznesowa może pomyśleć, że IT chce mieć kolejną zabawkę. Dlatego ważne jest, by pokazać korzyści, jakie przynosi wdrożenie ALM. Biznes chce kontrolować, a ALM zapewnia transparentność działania developmentu. Biznes powinien popierać pomysł takiego wdrożenia.

Czy w takim razie ALM to smycz dla IT? Eksperci mówią, że nie. To tylko narzędzie do kontrolowania poszczególnych projektów. Trudno mówić, ile firma zarobi na wdrożeniu zarządzania cyklem życia aplikacji. W tym przypadku mówimy raczej o tym, ile firma nie straci. Czasami można mówić o konkretnych i… bardzo dużych kwotach.

Ile może kosztować niedostateczna jakość oprogramowania? Pewna firma straciła ostatnio 400 mln USD w pół godziny w wyniku błędu software’u. To była konsekwencja niedostatecznego przetestowania programu. Dlatego ALM jest szczególnie ważne w branżach czułych na jakość. "Jesteśmy na początku drogi, jeśli chodzi o implementację ALM. Nie nazywamy tego nawet jeszcze ALM, tylko mówimy o konieczności wprowadzenia pewnych sformalizowanych etapów testowania oprogramowania. Na razie, bez wsparcia ze strony rozwiązań IT, wprowadzamy zmiany proceduralno-organizacyjne. Naszą największą obawą jest to, czy wdrożenie narzędzia do ALM nie wydłuży całego procesu wytwarzania oprogramowania" - mówi Krzysztof Kołtuniewicz z Kredyt Inkaso.

Narzędzie nas nie uzdrowi

Często popełnianym błędem jest chęć rozwiązania wszystkich problemów związanych produkcją oprogramowania poprzez wdrożenie narzędzia ALM lub książkowej metodyki. Należy pamiętać, ze wybór nowego narzędzia nie załatwi wszystkich spraw. Kluczowymi czynnikami są: mentalność zespołu, procedury, podejście do realizacji projektu itp. Bartosz Celmer z Volvo podkreśla, że nawet najlepsze narzędzia dostosowane do procesów nie będą działały, jeśli nie będziemy mieli zaangażowanych wszystkich ról. Największy problem jest z tym, żeby zaimplementować podejście w całej organizacji.

W listopadzie 2012 r. odbyła się polska premiera Visual Studio MS 2012, produktu szczególnie ważnego w kontekście rozmów o zarządzaniu, kontrolowaniu i tworzeniu oprogramowania. "Visual Studio MS 2012 jest u nas w fazie testów i bardzo dobrze się sprawdza. Są wprawdzie obszary, takie jak testowanie czy refactoring, w których wspomagamy się np. TFS, ale patrząc na całego ‘ALM-a’, to jest najlepsze rozwiązanie. Wydaje się, że patrząc na poszczególne elementy ALM, można znaleźć lepsze narzędzia, ale do całościowej obsługi procesów to jest najlepsze" - mówi Bartosz Celmer z Volvo.

Użytkownicy Visual Studio zwracają uwagę na jego cenę, sieć partnerów, wsparcie deweloperów, ścisłą integrację z innymi narzędziami, np. Office czy SharePoint, interfejs webowy i dostęp dla klientów. Klienci mogą sobie sami sprawdzać, jak ich wymagania są realizowane na różnych etapach trwania projektów.

Komentarz eksperta

Robert Gajda, Business Development Manager, Microsoft

W dobie, kiedy przewaga konkurencyjna na rynku jest kluczowym czynnikiem dla odniesienia sukcesu rynkowego praktycznie w każdej branży, istotnym elementem jest możliwość wdrażania i udostępniania nowych usług, produktów w krótkim czasie z najwyższą możliwie jakością oraz przy odpowiedniej kontroli kosztów. Te same kryteria odnoszą się również do procesu wytwarzania oprogramowania wspierającego i optymalizującego działanie organizacji zarówno w aspekcie wewnętrznym, jak i zewnętrznym. ALM to mechanizm, który pomaga organizacji zadbać o to, aby procesy związane z zarządzaniem cyklem wytwarzania oprogramowania wewnątrz lub na zewnątrz organizacji były czytelne, efektywne i zrozumiale dla działów IT, jak również dla właściciela biznesowego.