Wdrażanie technologii CASE

W poprzednich dwóch odcinkach naszego cyklu, oprócz garści uwag praktycznych, przedstawiliśmy podstawowe pojęcia związane z zarządzaniem procesem produkcji oprogramowania (ang. process management), w tym również Capability Maturity Model amerykańskiego Software Engineering Institute.

W poprzednich dwóch odcinkach naszego cyklu, oprócz garści uwag praktycznych, przedstawiliśmy podstawowe pojęcia związane z zarządzaniem procesem produkcji oprogramowania (ang. process management), w tym również Capability Maturity Model amerykańskiego Software Engineering Institute.

W dzisiejszym, ostatnim już, odcinku poświęconym technologii CASE, omówimy narzędzia wspomagające zarządzanie procesem produkcji oprogramowania.

W ten sposób cykl naszych artykułów zostanie zamknięty: od rozważań poświęconych wdrażaniu "zwykłych" narzędzi CASE przeszliśmy do rozważań ogólnych, co zakończyło się opowieścią o zarządzaniu procesem produkcji oprogramowania i pięciu poziomach Modelu Dojrzałości i Umiejętności. Okazuje się jednak, że process management również może być wspomagany narzędziowo. Doprowadziło to do powstania nowej generacji narzędzi CASE. Jako przykład tego typu narzędzi zostaną zaprezentowane Process Engineer i Process Engineer Hyperguide firmy Learmonth & Burchett Management Systems.

Metodyka, czyli proces produkcyjny

Technologia produkcji oprogramowania wyznaczona jest przez zastosowaną metodykę. To ona określa i “zagospodarowuje” niezbędne kwalifikacje i role członków zespołu.

Metodyka określa strukturę zadań (czyli to, jak jedne zadania dzielą się na inne, mniejsze i w jakiej kolejności należy je wykonywać) umożliwiającą zarządzanie zasobami i kontrolę przebiegu projektu. Daje też sposoby adaptacji standardowych wzorców projektów do konkretnych, nie zawsze typowych sytuacji.

Metodyka definiuje produkty, które powinny powstać w trakcie realizacji poszczególnych zadań określając ich postać (standardy notacji dla diagramów, standardowe spisy treści kluczowych dokumentów) oraz kryteria oceny ich jakości.

W każdej "zwyczajnej" fabryce musimy umieć jednoznacznie odpowiedzieć na pytanie czy dany półprodukt, materiał, czy produkt końcowy spełnia wyznaczone normy technologiczne, czy nadaje się do zastosowania go w dalszej produkcji lub do dostarczenia go klientowi. Podobne pytania należy stawiać sobie również w "informatycznym" procesie produkcyjnym. Tutaj odpowiedź uzyskamy jedynie wtedy jeśli mamy jednoznaczne kryteria weryfikacji.

Znając produkty, które mają powstać, musimy wiedzieć też jak je wykonać. Dla tego niezbędnym elementem metodyki jest definicja technik - przepisów na wykonanie wymaganych produktów. Mogą to być przepisy dotyczące przeprowadzania sesji analitycznych i weryfikacyjnych, przepisy tworzenia planów projektu, przepisy dotyczące tworzenia różnych elementów specyfikacji projektowej czy komponentów gotowego systemu.

Biblioteta metodyki

Nowoczesna metodyka pracy dzisiejszych zespołów informatycznych jest rzeczą niezwykle ważną i absolutnie niezbędną. Pozostaje oczywiście pytanie skąd ją wziąć. Istnieją metody będące własnością ogółu, powszechnie dostępne i opisane w książkach - np. metody Yourdona lub Oracle CASE*Method. Niestety - zazwyczaj są to metody stosunkowo proste i mało przydatne. Bardziej wartościowe biblioteki metodyk są tworzone przez wielkie organizacje zajmujących się tworzeniem lub integracją systemów informatycznych (np. Method/1 używana przez Andersen Consulting lub Navigator firmy Ernst & Young). Inne firmy, takie jak np. James Martin & Co. i LBMS sprzedają je razem z programami i usługami typu process management. Biblioteki metodyk bywają też oferowane razem z systemami CASE.

Na rysunku 1. przedstawiamy stronę tytułową hipertekstowej biblioteki metodyki Systems Engineering firmy LBMS -Process Engineer Hyperguide. Biblioteka ta w pełnej wersji jest rozprowadzana razem z pakietem Process Engineer, w wersji nieco zubożonej jest sprzedawana razem z pakietem CASE Systems Engineer.

Sam wygląd strony tytułowej nie jest niczym interesującym, natomiast niewątpliwie zasługują na uwagę wzorce cykli projektowych, które opisano w bibliotece. Poniżej przedstawiamy ich krótkie omówienie.

Strategic Planning - metoda planowania strategicznego użycia informatyki w oganizacjach komercyjnych i niekomercyjnych.

Project Management - metoda zarządzania projektami informatycznymi.

GUI & Client/Server - iteracyjna metoda prowadzenia projektów informatycznych w architekturze klient/serwer.

Rapid Delivery - iteracyjna metoda prowadzenia projektów informatycznych w trybie przyspieszonym, silnie oparta na prototypowaniu i wydajnych narzędziach konstrukcyjnych. Dająca się stosować w zespołach o bardzo wysokim poziomie umiejętności.

Classic - tradycyjna, "wodospadowa" metoda prowadzenia projektów informatycznych. Stosowana do przeciętnych problemów przez zespoły o przeciętnym lub niższym od przeciętnej, poziomie umiejętności.

Express - opis ekspresowego podejścia do rozwiązywania typowych, dobrze znanych problemów o niskim ryzyku (np. kadry-płace lub f-k).

Incremental - iteracyjna metoda prowadzenia dużych projektów opierająca się na koncepcji stopniowego rozbudowywania systemów o nowe możliwości. Może być użyta jako szkielet łączący podprojekty innych typów

Package - metoda oceny i wyboru gotowych pakietów.

Maintenance - metoda zarządzania utrzymaniem i rozwojem systemów.

Systems Engineering jest ciągle rozwijany i powstają wciąż nowe jego elementy, jak np. wzorce cykli OO - Object Oriented i BPR - Business Process Reengineering.

Selecting & Adapting - metoda adaptacji standardowych wzorców projektów do potrzeb konkretnych przedsięwzięć informatycznych.

Narzędzia

Metodyka daje nam udokumentowaną technologię produkcji, potrzebny nam teraz zestaw narzędzi dostosowanych do tej technologii.

Typowe elementy takiego zestawu to systemy Upper-CASE, generatory aplikacji, języki 4GL i obiektowe "składacze" aplikacji graficznych dla systemów klient/serwer.

Ważnym elementem jest profesjonalne środowisko do edycji i zarządzania dokumentacją. Zadaniem tego typu oprogramowania jest tworzenie bieżących raportów, dokumentów, planów, produkcja profesjonalnej dokumentacji dla użytkowników, przygotowywanie prezentacji kompetentnie i atrakcyjne przedstawiających osiągnięcia projektu czy problemy wymagające podjęcia przez sponsora ważnych dla przebiegu prac decyzji.

Kolejnym, ważnym składnikiem zestawu narzędzi, są programy menedżerskie wspomagające planowanie i kontrolę przebiegu prac projektowych. Dobrze, jeśli narzędzia te bazują na elektronicznej dokumentacji metodyki, ułatwiając planowanie prac i utrzymanie standardów.

Wspomaganie Process Management

Mając metodykę i narzędzia techniczne pozwalające na efektywne stosowanie jej reguł, jesteśmy w stanie sprawnie realizować kolejne projekty informatyczne korzystając ze zgromadzonej wiedzy. Jest jednak rzeczą oczywistą, że każdy projekt informatyczny może być inny z bardzo wielu względów: zależy to od specyfiki klienta, zespołu projektowego lub problemu, którym się on zajmuje. Skoro tak, to aby korzystać efektywnie z wiedzy zawartej w bibliotece metodyki, należy mieć narzędzia i metody, które pozwolą na jej uzupełnianie o wiedzę bazującą na obserwacjach i pomiarach różnych aspektów własnego procesu wytwórczego oprogramowania. W ten sposób uda się ją nie tylko zastosować, ale i dostroić do swoich potrzeb.

Opisując Model Dojrzałości i Umiejętności przedstawiliśmy klasyfikację poziomów rozwoju zespołów informatycznych począwszy od poziomu Chaotycznego, poprzez Powtarzalny, Zdefiniowany i Zarządzany, aż do Optymalizowanego. Osiągnięcie poziomów Powtarzalnego i Zdefiniowanego jest możliwe dzięki wprowadzeniu programu szkoleń, właściwe zarządzanie i dyscyplinę. Wspięcie się na poziomy Zarządzany i Optymalizowany, na których zespół koncentruje się już tylko na aspektach zarządzania procesem wytwórczym i optymalizacją metodyki, praktycznie jest niemożliwe bez posiadania odpowiednich narzędzi wspomagających Process Management.

LBMS Process Engineer

Przykładem narzędzia wspomagającego Process Management jest pakiet Process Engineer firmy Learmonth & Burchett Management Systems. Jest to narzędzie przeznaczone dla kierowników projektów lub ludzi zajmujących się zarządzaniem procesem wytwórczym oprogramowania (ang. Process Managers).

Podstawową częścią PE jest baza danych metodyki przechowująca informacje o typowych cyklach projektowych. Baza ta zawiera informacje o podziałach pracy (ang. work breakdown structures), technikach i produktach powstających w wyniku ich stosowania, wreszcie zależnościach zachodzących między poszczególnymi czynnościami (a co za tym idzie - produktami).

Ważną funkcją PE jest możliwość gromadzenia metryk stosowanych do mierzenia i szacowania różnych aspektów projektów informatycznych oraz baza danych posiadanych zasobów i umiejętności. Wszystko to umożliwia automatyczne tworzenie harmonogramów projektów przeznaczonych dla typowych schedulerów, takich jak np. Microsoft Project, a następnie ponowne wczytywanie informacji o faktycznym przebiegu przeprowadzonych projektów. Daje to możliwość automatycznego uaktualniania oszacowań dotyczących czasu realizacji lub pracochłonności wykonywanych zadań, a w dalszej perspektywie - "strojenia" metodyki.

Tam gdzie gotowy wzorzec nie daje się automatycznie stosować do nietypowego projektu, istnieje możliwość jego adaptacji przez usunięcie niepotrzebnych lub dodanie nowych zadań. Możliwe jest także definiowanie własnych wzorców i dołączanie ich do biblioteki.

Process Engineer nie jest zależny od konkretnej metodyki. Standardowo obsługuje biblioteki LBMS-u, ale w USA jest także dostępny w James Martin & Co z bazą danych metodyki Information Engineering.

Innym znanym narzędziem wspomagającym process management jest Navigator firmy Ernst & Young.

Czy to ma przyszłość?

Sądząc po karierze, jaką robią obecnie w USA narzędzia wspomagające Process Management, można oczekiwać, że przeżywać będą w najbliższym czasie bardzo burzliwy rozwój. Oczywiście traktowanie ich jako panaceum na złą organizację pracy jest podobnym nieporozumieniem jak nadzieja, że system CASE automatycznie zapewni wysoką jakość tworzonego za jego pomocą oprogramowania. Wydaje się jednak, że narzędzia do Process Management będą niezmiernie użyteczne w trzech podstawowych zastosowaniach:

Zarządzanie definicją metodyki - tu rola narzędzia sprowadza się do inteligentnej (hipertekstowej lub multimedialnej) encyklopedii metodyki, udostępniającej definicje cykli projektowych, technik, produktów oraz przykłady - być może w formie filmów instruktażowych, obrazujących np. sposób przeprowadzenia warsztatów projektowych w cyklu Rapid Delivery Environment. Ważną własnością tego typu narzędzi powinny być mechanizmy pozwalające na modyfikowanie metodyki przez uprawnione osoby i weryfikujące sensowność definiowanego procesu produkcyjnego.

Narzędzia wspomagające fazę inicjacji projektów wspomagając planowanie i szacowanie pracochłonności. Ten rodzaj narzędzi opartych na definicji metodyki, powinien zawierać narzędzia do estymacji złożoności projektów i narzędzia do tworzenia planów projektów. Warunkiem sensowności zastosowania takich narzędzi jest możliwość analizy odchyleń wyników szacowania od rzeczywistych rezultatów projektu i dokonywania na jej podstawie modyfikacji formuł szacujących.

Narzędzia do dynamicznego wspomagania organizacji produkcji przeznaczone dla dużych zespołów projektowych rozproszonych terytorialnie (na terenie instytucji, lub szerzej między różnymi instytucjami). Tutaj, do dwóch powyższych zastosowań, dochodzi jeszcze tworzenie i nadzorowanie wykonania harmonogramów prac w rozproszonym zespole roboczym. Konieczne są zatem narzędzia do projektowania przepływu pracy (wokflow) i zautomatyzowanego dystrybuowania go między członkami zespołu. System, bazując na zaplanowanych w harmonogramie czynnościach, udostępnia pracownikom dane z repozytorium projektu i narzędzia stosowne do techniki niezbędnej do wykonania określonego zadania. Z drugiej strony system bada czy zaplanowana praca jest wykonywana, kontroluje czy powstają wymagane produkty, kontroluje ich jakość (lub przekazuje je do kontroli zespołowi kontroli jakości) i informuje osoby nadzorujące przebieg projektu o postępie prac, wartości współczynników ryzyka, występujących zagrożeniach itp. System zajmuje się też kolekcjonowaniem danych dotyczących pracochłonności poszczególnych faz projektu, dokonując "autoregulacji" mechanizmów szacowania.

Być może nasza wizja jest nieco zbyt futurystyczna, z drugiej strony zaawansowanie współczesnych środowisk pracy grupowej, plany potentatów przemysłu informatycznego dotyczące globalnej informatyzacji oraz strategie czołowych producentów systemów CASE i Process Management wskazują, że przyszłość może nastąpić szybciej, niż się spodziewamy.

Autorzy są pracownikami InfoViDE - przedstawiciela Learmonth & Burchett Management Systems (LBMS), brytyjskiego twórcy metodyk i narzędzi CASE. InfoViDE zajmuje się sprzedażą i wdrażaniem systemów CASE, konsultacjami i prowadzeniem szkoleń dla informatyków.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200