ZARZĄDZANIE WIEDZĄ W PROCESIE TWORZENIA OPROGRAMOWANIA



Podobne dokumenty
Transkrypt:

ZARZĄDZANIE WIEDZĄ W PROCESIE TWORZENIA OPROGRAMOWANIA Bogdan Burkot Wprowadzanie Tworzenie oprogramowanie to dziedzina działalności, w ramach której rezultaty są efektem procesów myślowych człowieka. Ludzie określają i przekazują wymagania, projektują rozwiązania informatyczne, realizują je i wdraŝają. Technologia wytwarzania, choć jest niezmiernie waŝna, nie jest jedyną przyczyną sukcesu lub niepowodzenia realizowanych przedsięwzięć. Potwierdzać to mogą wymieniane w literaturze najczęstsze przyczyny niepowodzeń ich realizacji, do których naleŝą [Kruch07, s.4]: niedokładne rozpoznanie potrzeb uŝytkowników, słaba jakość oprogramowania, niezgodne z oczekiwaniami działanie systemu, niepasujące do siebie komponenty oprogramowania, brak koordynacji działań członków zespołu, zbyt duŝe skomplikowanie oprogramowanie, uniemoŝliwiające jego utrzymywanie oraz rozwój. Cześć z wymienionych problemów (np. niezgodne z oczekiwaniami działanie systemu, niepasujące komponenty oprogramowania) moŝe być wyeliminowane poprzez usprawnienie procesów związanych z poszerzaniem, kodyfikacją oraz transferem wiedzy. Uogólniając, moŝna wyróŝnić dwa rodzaje czynników, które wymuszają wdroŝenie zarządzania wiedzą [Pere05, s.66]: wewnętrzne, tkwiące w samej organizacji (np. wiedza nie jest przekazywana pomiędzy róŝnymi jednostkami organizacyjnymi, brak zabezpieczenia związanego z odpływem wiedzy z organizacji),

zewnętrzne, tkwiące w otoczeniu (np. globalizacja, postęp gospodarczy). Wymienione czynniki, uzasadniające wdroŝenie zarządzania wiedzą moŝna równieŝ odnieść do organizacji tworzącej oprogramowanie. Celem artykułu jest przedstawienie koncepcji zarządzania wiedzą w procesie tworzenie oprogramowania, realizowanego według metodologii Rational Unified Process. Proces tworzenia oprogramowania realizowany w oparciu o metodologię Rational Unified Process Proces tworzenie systemu technologii informacyjnej, obejmujący równieŝ oprogramowanie, ma wyraźnie określonym wynik końcowy - systemem technologii informacyjnej [Beyn04, s.71]. Procesy tworzenia oprogramowania mogą być realizowane w oparciu o róŝne metodyki. Do ich oceny moŝna zastosować dwa wymiary: stopień formalizacji oraz rodzaj podejścia (tj. kaskadowe, iteracyjne). Stopień formalizacji odzwierciedla zakres tworzonej dokumentacji oraz odnosi się do określenia i przestrzegania porządku realizacji. Im mniej dokumentacji oraz słabiej są zdefiniowane procesy, tym mniejsza jest formalizacja. Na podstawie przeglądu metodyk tworzenia oprogramowania dokonanego przez P. Kroll i P. Kruchten [KrKr07, s.47 59] moŝna stwierdzić, Ŝe metodyką iteracyjną oraz umoŝliwiającą wprowadzenie dowolnego stopnia formalizacji jest RUP (ang. Rational Unified Process). RUP jest metodyką tworzenia oprogramowania, opracowaną przez firmę Rational Software Corporation. Jest on modelem procesu wytwarzania oprogramowania, którego wdroŝenie w organizacji moŝe być dostosowane do jej potrzeb. Metodyka ta opiera się na dobrych praktykach tworzenia oprogramowania, takich jak [Kruc07, s.16]: iteracyjne tworzenie oprogramowania, zarządzanie wymaganiami, stosowanie architektury opartej na komponentach oraz obrazowe modelowanie. Powstania metodyki w duŝej mierze wynika z [Kruc07, s.45-50]: zmienności wymagań uŝytkowników,

istnienia ukrytych wad projektu, mimo zastosowania formalnych metod jego realizacji, duŝego ryzyka niepowodzenia realizacji przedsięwzięć o długim czasie realizacji. Rational Unified Process na strukturę dwuwymiarową. Jeden z wymiarów odnosi się do elementów statycznych (dyscyplin procesu), a drugi do części dynamicznej etapów i iteracji. Dyscypliny procesu grupują czynności realizowane w ramach wytwarzania. MoŜna je podzielić na dyscypliny techniczne oraz pomocnicze. Wśród grupy dyscyplin technicznych moŝna wyróŝnić: modelowanie działalności, wymagania, analizę i projektowanie, implementację, testowanie oraz wdroŝenie. Dyscypliny pomocnicze obejmują natomiast zarządzanie konfiguracją, zmianami oraz środowisko. WyróŜnić moŝna następujące etapy realizacji: rozpoczęcie, opracowywanie, budowę oraz przekazanie. W obrębie kaŝdego z etapów prace mogą być wykonywane w jednej lub więcej iteracjach. WiąŜąc etapy i dyscypliny techniczne, stwierdzić moŝna, Ŝe: w etapie rozpoczęcia najwaŝniejsze jest zrozumienie całości wymagań oraz określenie zakresu przedsięwzięcia, w etapie opracowywania dominujący udział stanowią prace projektowe oraz implementacyjne, mające na celu stworzenie prototypu architektury, w etapie budowy istotne jest projektowanie oraz implementacja gotowego systemu, w etapie przekazania przewaŝają prace związane z testami oraz oceną systemu przez uŝytkownika. Koncepcja zarządzania wiedzą w organizacji Pojęcie wiedzy nie jest jednoznacznie rozumiane w obszarze zarządzania. Najczęściej definiuje się je jako [Pere05, s.13; ProRa04, s.35]: informacje powiązane ze zrozumieniem,

ogół wiadomości i umiejętności wykorzystywanych przez jednostkę do rozwiązywania problemów, potwierdzone przekonanie, efekt umysłowego procesu przetwarzania informacji i uczenia się. W literaturze przedmiotu [KoNo07, s. 49] wyróŝnić moŝna trzy podstawowe podejścia do zarządzania wiedzą: japońskie, procesowe oraz zasobowe. Ze względu na kompleksowość, trafny opis procesów zarządzania wiedzą oraz wskazanie praktycznych rozwiązań dalsze rozwaŝania będą dotyczyć podejścia procesowego. Pozostałe zostaną potraktowane jako uzupełniające i uszczegóławiające wybrane aspekty zarządzania wiedzą. W podejściu procesowym ma miejsce całościowe spojrzenie na zarządzania wiedzą. Wiedza jest w nim traktowana jako centralny punkt, wokół którego zbudowana jest cała struktura zarządzania wiedzą [PrRa04, s.46]. Koncepcja zarządzania wiedzą obejmuje następujące elementy: cele, procesy zarządzania wiedzą oraz ocenę wiedzy (Rys. 1). Rys. 1. Elementy zarządzania wiedzą Źródło: Opracowanie własne na podstawie [PrRa04, s.46] Punktem wyjścia w zarządzaniu wiedzą jest określenie celów, które nadają kierunek wszelkim działaniom. Cele są formułowane na poziomie [PrRa04, s.56] :

normatywnym w zakresie polityki i kultury organizacyjnej, strategicznym odnoszące się do długoterminowego kształtowania zasobów wiedzy, operacyjnym zapewniające wdroŝenie celów strategicznych. Cele wyznaczają kierunek dla realizacji procesów zarządzania wiedzą. T.H. Davenport i L. Prusak wyróŝnili następujące procesy: poszerzanie, kodyfikację oraz transfer wiedzy. Wiedza moŝe być poszerzana poprzez [DaPr98, s.52]: zakup przedsiębiorstwa lub zatrudnianie pracowników, dedykowanie zasobów w celu jej rozwoju, połączenie róŝnych działów lub osób w nową jednostkę organizacyjną lub stworzenie sieci lub wspólnot zawodowych. Kodyfikacja jest procesem mającym na celu opracowanie zasobów wiedzy w formie przystępnej dla wszystkich zainteresowanych. Ostatni z procesów transfer wiedzy ma za zadanie jej wymianę pomiędzy pracownikami organizacji. MoŜe ona przybierać formę formalnych (np. konferencje, seminaria) albo nieformalnych działań (np. spontaniczne spotkania pracowników). Ostatnim elementem zarządzania wiedzą jest ocena stopnia osiągnięcia poszczególnych celów. Wynik procesu oceny wywiera wpływ na ustalanie celów zarządzania wiedzą. Zarządzanie wiedzą w procesie tworzenia oprogramowania Przedstawiona koncepcja zarządzania wiedzą w ujęciu procesowym jest adekwatna do specyfiki projektów tworzenia oprogramowania, realizowanych zgodnie z metodologią RUP. Zostanie ona przedstawiona w odniesieniu do kaŝdego z elementów zarządzania wiedzą (Tabela 1).

Elementy zarządzania wiedzą w ramach projektu Tabela 1 Elementy zarządzania Działania na poziomie projektu wiedzą Cele operacyjne określanie celów w zakresie kształtowania kultury organizacyjnej określanie celów, dotyczących kształtowania zasobów wiedzy Poszerzanie nabywanie wiedzy ze źródeł zewnętrznych lub wewnętrznych tworzenie wiedzy podczas realizacji projektu Kodyfikacja kodyfikacja jawnej i niejawnej wiedzy projektowej, kodyfikacja wiedzy organizacyjnej Transfer organizacja formalnych i nieformalnych spotkań projektowych transfer z uŝyciem narzędzi informatycznych i wymiany dokumentów Ocena wiedzy ocena realizacji celów operacyjnych Źródło: Opracowanie własne na podstawie [PrRa04, s.46] Cele związane z zarządzaniem wiedzą na poziomie projektu moŝna podzielić na: wynikające z poziomu normatywnego oraz poziomu strategicznego. Pierwsza grupa odnosi się głównie do kształtowania kultury organizacyjnej zorientowanej na wiedzę. Ich realizacja wymaga od kierownictwa projektu następujących działań [DaPr98, s.97, s.153-154]: tworzenia atmosfery zaufania i likwidowania obaw pracowników związanych z dzieleniem się wiedzą, akceptowania błędów związanych z kreatywnością, tworzenia atmosfery otwartości na pomysły i dyskusje.

Cele wynikające z poziomu strategicznego wyznaczają działania dotyczące wiedzy, jakie naleŝy podejmować podczas realizacji projektu. Organizacja powinna samodzielnie wykonywać zadania, które wymagają kompetencji charakteryzujących się duŝym stopniem konkurencyjności lub moŝliwością wykorzystania, a pozostałe zlecać firmom zewnętrznym [PrRa04, s.66]. Pierwszy z procesów zarządzania wiedzą to poszerzanie wiedzy. Organizacja realizująca projekt powinna zidentyfikować wewnętrzne źródła wiedzy, zdecydować jakie kompetencje będą rozwijane podczas realizacji projektu a jakie zostaną nabyte z zewnątrz organizacji. Lokalizowanie wiedzy moŝna wykonać w podziale odnoszącym się do poszczególnych dyscyplin procesu tworzenia oprogramowania (tj. modelowania działalności, analizy i projektowania, implementacji, testowania, wdroŝenia, środowiska, zarządzania zmianami i konfiguracji oraz zarządzania przedsięwzięciem). Poza akwizycją wiedzy moŝe ona być tworzona w trakcie realizacji przedsięwzięcia. Realizacja procesu tworzenia oprogramowania w strukturze projektowej sprzyja tworzeniu wiedzy. MoŜna wyróŝnić pięć etapów jej tworzenia. Są to: dzielenie się wiedzą w grupie, tworzenie koncepcji w oparciu o wiedzę uczestników, uzasadnianie koncepcji, transformowanie pomysłu na prototyp oraz dzielenie się wiedzą w organizacji [KrIc00, s.5-10]. Kodyfikacji wiedzy w procesie tworzenia oprogramowania ma na celu zamianę wiedzy powstającej podczas jego realizacji w formę dostępną dla innych członków projektu oraz pracowników organizacji. Kodyfikacją powinna obejmować jawną i cichą wiedzę, związaną z bieŝącą realizacją projektu oraz wiedzę wykraczającą poza obszar projektu i obejmującą całą organizacje. Realizując ten proces naleŝy określić cele kodyfikacji, zidentyfikować dostępne źródła wiedzy oraz ocenić przydatność i moŝliwość jego realizacji [DaPr98, s.69]. Analizując poszczególne etapy realizacji przedsięwzięcia według metodologii RUP, moŝna określić potrzeby dotyczące kodyfikacji wiedzy. Są to na etapie [Krkr07, s.85-160]: rozpoczęcia wiedza w zakresie celów i zakresu realizowanego przedsięwzięcia (np. kluczowe wymagania klienta i wynikająca z

nich funkcjonalność systemu, koszty oraz harmonogramu realizacji), opracowywania wiedza dotycząca architektury rozwiązania (np. wymagania funkcjonalne i niefunkcjonalne, projekt i wykonalna architektura systemu, specyfikacja funkcjonalności komponentów, zagroŝenia, koszty oraz harmonogram, opis procesu inŝynierii oprogramowania), budowy - wiedza w zakresie implementacji oprogramowania (np. cele, metody oraz szczegółowe plany testowania, Ŝądania zmian oraz wiedza dotycząca powstających produktów), wdroŝenia wiedza związana z udostępnieniem produktu klientowi (np. sposób instalacji i uruchomienia, dokumentacja uŝytkownika). Wiedzę, która podlega kodyfikacji a wykracza poza projekt moŝna podzielić na: dotyczącą dyscyplin pomocniczych (tj. metodyk zarządzania projektem, zarządzania zmianami i konfiguracją oraz środowiska tworzenia oprogramowania), które mogą być zastosowane w innych projektach, dotyczącą umiejętności nabytych przez uczestników przedsięwzięcia. Kodyfikacja kompetencji pracowników moŝe być realizowana poprzez identyfikację osób posiadających określone kompetencje. Dostarcza to moŝliwość wyszukania pracowników o odpowiedniej wiedzy i doświadczeniu, co moŝe być wykorzystywane podczas obsady ról projektowych. W zakresie kodyfikacji kompetencji istotne jest, by jej rodzaj oraz poziomy zostały określone jednolicie dla całej organizacji. Zakończenie projektu powinno być poprzedzone oceną zmian wiedzy i umiejętności poszczególnych jego członków. Proces transferu wiedzy składa się dwóch wymaganych etapów: transmisji (przesyłania lub prezentacji) oraz absorpcji wiedzy [KoNo07, s. 105]. Sposób transferu wiedzy zaleŝny jest od rodzaju wiedzy. Wiedza jawna (tj. dająca się jasno sprecyzować i usystematyzować) moŝe być

transferowana za pomocą narzędzi informatycznych oraz wymiany dokumentów. Objęte mogą być nią wszystkie produkty, które powstają podczas kolejnych etapów realizacji procesu tworzenia oprogramowania. W transferze wiedzy istotną rolę odgrywają dyscypliny zarządzania konfiguracją i zmianami oraz środowiska. Celem pierwszej z dyscyplin jest obserwowanie i utrzymywanie integralności zmieniających się zasobów przedsięwzięcia. Wszystkie powstające produkty powinny być identyfikowalne, wersjonowane oraz mieć określone zaleŝności pomiędzy sobą. Oprócz moŝliwości identyfikacji, waŝne jest uporządkowane zarządzanie zmianą produktów. KaŜde Ŝądanie zmiany powinno podlegać analizie moŝliwości realizacji. Z punktu widzenia analiz i raportowania waŝne jest nadanie mu odpowiednich atrybutów (np. stan, przyczyna modyfikacji, priorytet). Cele dyscypliny środowiska to określenie i doskonalenie procesów tworzenia oprogramowania oraz zapewnienie niezbędnych narzędzi, umoŝliwiających wspomaganie ich realizacji. Na etapie definiowanie procesu są równieŝ określane produkty, które będą jego efektami. Ostatni element zarządzania wiedzą w projekcie to ocena wiedzy. MoŜna ją dokonać przez pryzmat celów, jakie zostały dla niego określone. MoŜliwym podejściem do weryfikacji osiągnięcia celu, związanego z poszerzeniem kompetencji jest porównanie stanu zasobów wiedzy przed i po podjęciu działań, mających za zadanie ich zwiększenie. Oprócz weryfikacji osiągnięcia celów, oceny zarządzania wiedzą moŝna dokonywać poprzez stosowanie wielowymiarowych wskaźników, opisujących stan zasobów wiedzy, procesy i nakłady na ich modyfikację, pośrednie wyniki działań oraz wyniki działalności [PrRa04, s.264-265]. Zakończenie Projekty informatyczne są przedsięwzięciami złoŝonymi, charakteryzującymi się duŝym ryzykiem realizacji. Zakłócenia komunikacji lub niewystarczająca wiedzą członków zespołu projektowego mogą powodować powstanie zagroŝeń ich realizacji. W związku z tym zarządzanie wiedzą powinno być integralnie związane z procesem tworzenia oprogramowania.

Przedstawiona koncepcja zarządzania wiedzą, opierająca się na podejściu procesowym, jest całościowym pomysłem na zarządzanie wiedzą moŝliwym do wdroŝenia na poziomie procesu tworzenia oprogramowania. W kaŝdym przedsięwzięciu informatycznym naleŝy określić cele, dotyczące zarządzania wiedzą, realizować je poprzez procesy zarządzania wiedzą oraz wykonać ocenę stopnia ich osiągnięcia. Poszczególne procesy zarządzania wiedzą powinny być zintegrowane z zadaniami procesu tworzenia oprogramowania. Warunkiem wdroŝenia zarządzania wiedzą w projektach informatycznych jest istnienie powtarzalnego i sformalizowanego (w stopniu zaleŝnym od organizacji) procesu tworzenia oprogramowania. Organizacje mogą tworzyć ich definicje w oparciu o sprawdzone metodyki. Jedną z istotnych jest RUP, wyróŝniający się duŝymi moŝliwościami adaptacji do potrzeb organizacji, opierający się na podejściu obiektowym w tworzeniu systemów oraz rozwiązujący szereg zagroŝeń, dotyczących realizacji złoŝonych projektów. Literatura [Beyn04] Beynon Davies P., InŜynieria systemów informacyjnych, WNT, Warszawa 2004. [DaPr98] Davenport T.H., Prusak L., Working Knowledge, Harvard Business School Press, Boston, 1998. [KoMo06] Kobyłko G., Morawski M., Przedsiębiorstwo zorientowane na wiedzę, Diffin, Warszawa 2006. [KoNo07] Kowalczyk A., Nogalski B., Zarządzanie wiedzą. Koncepcje i narzędzia, Diffin, Warszawa 2007. [KrIc00] Krogh G., Ichijo K., Noaka I., Enabling Knowledge Creation, Oxford University Press, 2000 [Krkr07] Kroll P., Kruchten P., Rational Unified Process od strony praktycznej, WNT, Warszawa 2007. [Kruc07] Kruchten P., Rational Unified Process od strony teoretycznej, WNT, Warszawa 2007. [Pere05] Perechuta K., Zarządzanie wiedzą w przedsiębiorstwie, PWN, Warszawa 2005.

[PrRa04] Probst G., Raub S., Romhardt K., Zaraządzanie wiedzą w organizacji, Oficyna Wydawnicza, Kraków 2004. Mgr inŝ. Bogdan Burkot doktorant Wydział Informatyki, Zarządzania i Finansów Uniwersytet Ekonomiczny we Wrocławiu ul. Majakowskiego 22/12 54-317 Wrocław Polska Numer telefonu (fax) 609 446 078