Rywalizacja w biznesie, a wsparcie technologiczne
W biznesie sukces sprzyja lepszym, tym którzy wcześniej dostrzegają nowe okazje i tym którzy są w stanie szybciej dostosować się do zmieniającej sytuacji rynkowej. W każdym z przypadków mamy do czynienia z pewnego rodzaju zmianą, która pociąga za sobą modernizacje po stronie naszych systemów informatycznych. W poniższym artykule omówimy takie zagadnienia, jak:
- czym są rozszerzenia i dlaczego ich potrzebujemy?
- wdrażanie rozszerzeń kiedyś i dziś,
- rodzaje rozszerzeń,
- rozszerzanie i modyfikacja funkcjonalności naszych systemów w 5 krokach.
Rozszerzenia
Patrząc z perspektywy biznesowej, możemy wyróżnić dwa aspekty, które sprawiają, że potrzebujemy dostosowywać nasze systemy przez modyfikację lub wdrożenie nowych funkcjonalności. Pierwszym z wariantów zgodnym z hasłem: „zainwestujmy, aby zaoszczędzić” jest potrzeba redukcji kosztów poprzez podniesienie wydajności realizowanych procesów. W tym wypadku potrzebujemy upraszczać oraz automatyzować realizowane przez nas procesy biznesowe. Drugim, zgodnym z hasłem: „zainwestujmy, aby zarobić więcej” jest potrzeba zmiany modelu działania lub wdrożenia nowych funkcjonalności. W obu przypadkach musimy wykonać pewnego rodzaju zmiany w działaniu naszych systemów informatycznych.
Wdrażanie rozszerzeń
Jak było kiedyś?
Dość często spotykaną praktyką szczególnie w przeszłości była realizacja u zmian, w tym również dodawanie nowych funkcjonalności w ramach naszego głównego systemu. O ile początkowo była to wygodna forma, o tyle z biegiem czasu ujawniały się różnego rodzaju negatywne konsekwencje, a w szczególności:
- utrudnienia w bieżącej aktualizacji systemu. Każda aktualizacja wymagała testowania wdrożonych wcześniej modyfikacji, co ostatecznie skutkowało zarzucaniem aktualizacji systemu i brakiem możliwości korzystania z funkcjonalności nowszych wersji systemu. Finalnie nasz system stawał się coraz bardziej zacofany technologicznie,
- niewykorzystywane już wdrożone modyfikacje i rozszerzenia nie były wycofywane, co sprawiało, że nasz system główny był coraz to bardziej „zaśmiecony”,
- coraz większa liczba rozszerzeń budowanych w ramach systemu głównego powodowała, iż wdrażanie nowych funkcjonalności było wolniejsze i obarczone coraz większą pracochłonnością - efekt „kuli śniegowej”.
Podsumowując, nasz główny system stawał się coraz mniej wydajny i przestarzały technologicznie. Utrzymanie systemu było coraz trudniejsze, a wdrażanie zmian i dodawanie nowych funkcjonalności trwało dłużej i kosztowało więcej.
Jak może być dziś?
Chcąc uniknąć błędów z przeszłości, powinniśmy zmienić podejście w kwestii realizowania zmian w naszych systemach. Krótko mówiąc zmiany te powinniśmy realizować w dedykowanych do tego środowiskach, zachowując nasz główny system możliwie „czysty” – „keep the core clean”. Nie chodzi tutaj o całkowite odejście od „dotykania” naszego systemu głównego. Modyfikacje czy też rozszerzenia funkcjonalne, które sprowadzają się do zmian w konfiguracji systemu czy też uruchamianiu wbudowanych funkcjonalności - tzw. „In-App Extensibility” dalej powinny być realizowane w ramach naszego systemu głównego. Natomiast zmiany, które wymagają głębokiej modyfikacji środowiska systemu głównego, czy też dobudowania nowych funkcjonalności powinny być realizowane w dedykowanym do tego celu środowisku z wykorzystaniem najlepszej dla nas technologii - tzw. „Side-by-Side Extensibility”. Dość dobrze odzwierciedla to poniższa grafika.