Czym jest aplikacja i dlaczego jest to takie ważne?

Kategoria II

Przygotowując prezentację nt. portfela IT analizowałem zarządzanie portfelem aplikacji, jako jedną z jego składowych. Zacząłem oczywiście od zdefiniowania czym jest zarządzanie portfelem aplikacji (application portfolio management). Wykorzystałem tutaj propozycję S. Daniela, F. Kai i S. Detlef, którzy uważają, że zarządzanie portfelem aplikacji to realizowany w sposób ciągły i ustrukturalizowany proces ewaluacji aplikacji używanych w organizacji (wykorzystujący kryteria biznesowe oraz technologiczne), będący podstawą do podejmowania decyzji w zakresie działań mających na celu optymalizację, rozwiązywanie zidentyfikowanych problemów oraz dopasowanie aplikacji do celów organizacji. Jednocześnie w dalszej części prezentacji nt. portfela IT, kiedy dotarłem do omówienia portfela infrastruktury zacząłem się zastanawiać jakie systemy IT są aplikacjami (i podlegają pod zarządzanie portfelem aplikacji), a jakie nie są aplikacjami (i należy zaliczyć je do komponentów infrastrukturalnych). Zagadnienie być może na pierwszy rzut oka wydało się trywialne i niewarte poświęcenia mu czasu, ale dyskusja jaka wywiązała się na IMPAKCIE (wśród PRAKTYKÓW – bo obawiałem się również, że ten problem może być odebrany jako akademickie dzielenie skóry na niedźwiedziu) wskazała, że ten temat budzi wiele emocji. Dlaczego? Gdy nie wiadomo o co chodzi, to chodzi o pieniądze i władzę ;). Czyli w części organizacji za aplikacje (biznesowe) odpowiada departament rozwoju, a za systemy nie będące aplikacjami odpowiada departament utrzymania. Co więcej – listy aplikacji życzy sobie audyt wewnętrzny, dział bezpieczeństwa itp (i nie wystarczy podać enumeratywnie wymienionych z nazwy systemów – tylko wskazać kryteria ich umieszczenia na tej liście).

Dyskusja podczas IMPAKTU zaczęła się niewinnie – od zapytania czy MS SharePoint to aplikacja (po dyskusji stwierdziliśmy, że nie  – naszym zdaniem jest to komponent infrastrukturalny)? Czy MS Excel to aplikacja (tutaj nie udało się osiągnąć konsensusu – ustaliliśmy, że należy udzielić odpowiedzi konsultanckiej – “to zależy” – w części organizacji Excel będzie aplikacją – bo jest wykorzystywany “z półki” i już, dla znacznej części organizacji nie będzie aplikacją, bo stanowi on PLATFORMĘ, na której buduje się aplikacje). Mniejsze emocje dotyczyły systemów operacyjnych, serwerów baz danych, serwerów aplikacyjnych. Tutaj było prosto – to nie są aplikacje. Niestety później było już pod górę – czy system SAP to aplikacja biznesowa? A czy narzędzie klasy BI to aplikacja biznesowa? Tutaj także był brak konsensusu.

Dlatego wykonaliśmy krok do tyłu i zdefiniowaliśmy “aplikację”. Oczywiście istnieje wiele definicji aplikacji (np. aplikacje są zdefiniowane w TOGAFie, ArchiMate). Ja jednak, na potrzeby zarządzania portfelem aplikacji zaproponowałem następującą jej definicję (powstała ona jako kompilacja iluś różnych definicji): wykonywalny komponent oprogramowania lub ściśle związany ze sobą zbiór komponentów, stosowanych razem, który/które zapewniają niektóre lub wszystkie działania związane z tworzeniem, aktualizacją, zarządzaniem, obliczeniami lub wyświetlaniem informacji związanych z realizacją konkretnego celu biznesowego. Czyli jeżeli system nie przetwarza informacji powiązanych z realizacją KONKRETNEGO celu biznesowego NIE JEST aplikacją biznesową.

Ta definicja ma wadę, bo wymaga określenia czym jest “komponent oprogramowania”. Według mnie jest to zestaw wykonywalnych instrukcji, zawarty w jednym, wdrażalnym kontenerze, w taki sposób, że zestaw ten nie może być zdekomponowany na podkomponenty. Co więcej przyjęto założenie, że każdy komponent oprogramowania może być składnikiem dokładnie jednej aplikacji.

Oczywiście takie ujęcie aplikacji nie wyczerpuje tematu. Będę wdzięczny za Państwa opinie.