Kiedy warto przepisać system na nową technologię?

Plusy i minusy przepisania systemu na nową technologię.

Nie ma jednoznacznej odpowiedzi, czy lepiej jest ulepszać istniejący już system, czy jednak napisać go od początku w nowej technologii. Każdorazowo rozwiązanie należy dopasować do konkretnej sytuacji, biorąc pod uwagę zarówno szczegóły techniczne jak kwestie biznesowe. W jakich przypadkach lepiej przepisać aplikację od podstaw? Dowiedz się, co należy wziąć pod uwagę podczas podejmowania decyzji.

Z reguły firmy stawiają raczej na ulepszanie istniejących już systemów niż zamawianie nowych aplikacji. Niestety czasem zdarzają się przypadki beznadziejne, wymagające ponownego stworzenia. Najczęściej dzieje się to wtedy, gdy cały system opiera się na technologiach przestarzałych, gdy konserwacja i rozwój są znacznie utrudnione lub wręcz powoli stają się niemożliwe. W takich sytuacjach lepiej, aby zespół programistów (może być to zespół outsource’owany) przepisał system, dzięki czemu uzyskamy to samo (lub podobne) narzędzie  sprawnie funkcjonujące w nowym otoczeniu technologicznym i biznesowym, dobrze współpracujące z pozostałymi aktualnie używanymi systemami.

Co oznacza, że systemy informatyczne się starzeją oraz kiedy to następuje?

Każdy zespół programistów, którzy tworzy system, doskonale zdaje sobie sprawę, że z dużym prawdopodobieństwem w ciągu kilku lub co najwyżej kilkunastu lat program się zestarzeje i konieczne będzie jego przepisanie. Kiedy tak się dzieje? Przede wszystkim gdy system nie nadąża za zmianami rzeczywistości biznesowej. W praktyce oznacza to, że nie współgra m.in. ze zmianami w modelu działania firmy, z innymi systemami lub rozwiązaniami technologicznymi czy nowoczesnymi koncepcjami (np. nie wspiera technologii mobilnych). Często system, który zestarzał się i wymaga przepisania, to taki, który napisany został w oparciu o przestarzałą technologię. Nowsze wersje technologii już nie powstają, przez co nie są usuwane wykrywane w niej błędy (bezpieczeństwo!), a uruchomienie napisanych w niej programów na nowszych systemach operacyjnych staje się niemożliwe.

Kolejnym aspektem jest również moda, która wpływa również na programistów. Pojawianie się nowości oferujących atrakcyjniejsze rozwiązania programistyczne sprawia, że developerzy przestają się interesować starszymi technologiami. A to skutkuje problemami rekrutacyjnymi i utrudnia utrzymywanie systemu.

Dlatego istotnym czynnikiem, który musi pod uwagę wziąć firma posiadająca dawno wytworzone systemy, jest ryzyko odejścia ostatniego pracownika, który zna daną technologię. Należy zdawać sobie sprawę, że w takiej sytuacji prawie niemożliwym będzie znalezienie dla niego zastępstwa. A jeśli już się to uda, to z pewnością będzie to wiązało się z dużymi kosztami. Taka sytuacja jest dla firmy bardzo trudna i za wszelką cenę należy jej unikać.

Jakie kwestie warto wziąć pod uwagę podczas podejmowania decyzji o przepisaniu starego systemu?

Przede wszystkim należy pamiętać, aby decyzja nie była podjęta zbyt pochopnie. Należy rozważyć wszystkie „ZA” i „PRZECIW” tak, by zmniejszyć ryzyko potencjalnych zagrożeń i pułapek. Oto kilka kwestii, które trzeba wziąć pod uwagę przed podjęciem decyzji o przepisaniu konkretnego systemu na nową technologię lub zamówieniu nowego oprogramowania dedykowanego:

1. Czy system jest przestarzały biznesowo czy technologicznie?

Programy na zamówienie, które nie są aktywnie utrzymywane z czasem się starzeją. Jeśli sama technologia jest przestarzała, prędzej czy później czeka Cię migracja. Ala nadal masz wybór między „prędzej” a „później”. Jeśli system jest bezawaryjny, a do tego dysponujesz zespołem, który zna technologię systemu, możesz na spokojnie zacząć rozglądać się za alternatywami do zastosowania w przyszłości. Ale jeśli awaria goni awarię, a ostatni specjalista właśnie złożył wypowiedzenie, lepiej od razu przejdź do działania.

Jeśli system jest przestarzały biznesowo, ale technologia nadal jest wspierana, pewnie lepiej będzie prowadzić bieżący serwis zamiast przepisywać system. Często spotykaną wśród programistów postawą jest obarczanie winą za problemy właśnie technologii. Najczęściej takiej, którą wybrał poprzedni zespół lub oryginalny dostawca, a której programista nie zna i nie rozumie. Nic bardziej mylnego. Pamiętaj, że to nie technologia tworzy (i rozwiązuje) problemy. Odpowiedzialność zawsze leży po stronie ludzi, którzy mogą popełniać błędy projektowe i implementacyjne. Jeśli zatem ktoś przekonuje Cię, że przepisanie systemu z technologii X do technologii Y to właściwe rozwiązanie, bądź czujny. To może być oznaka niekompetencji. W istocie pierwszym krokiem powinno być usunięcie najważniejszych błędów w oryginalnym systemie. Pozwoli Ci to na spokojnie przeanalizować, czy modernizacja będzie najlepszym rozwiązaniem. To gra, w której możesz stracić stosunkowo niewiele, a zyskać bardzo dużo.

2. Jak wygląda dostępność programistów?

Oceń dostawców starej i nowej technologii. Jeśli bez problemu zrekrutujesz pracownika lub znajdziesz firmę pracującą w danej technologii, to raczej nie powinieneś mieć z nią problemów w przyszłości.

Jeśli specjaliści są trudno dostępni, to technologia ta nie jest raczej dobrym wyborem. No chyba że to nowość – może wówczas warto trochę poczekać, bo wkrótce rynek roić się będzie od speców.

Podkreślmy raz jeszcze – takiej oceny należy dokonać zarówno w kontekście starej (aktualnej) jak i nowej (planowanej) technologii. Chyba nie chcesz wpaść z deszczu pod rynnę.

3. Oceń koszt inwestycji

Przed podjęciem decyzji należy sprawdzić koszt utrzymania obecnego systemu i zestawić go z kosztem zamówienia nowej aplikacji. Trzeba tutaj wziąć pod uwagę, czy np. do modernizacji wystarczą pracownicy własnego działu IT, czy może konieczny będzie outsourcing dodatkowych programistów.

Przyjmij realistyczny horyzont czasowy: czy chcesz rozwiązać problem na rok, na pięć czy na więcej lat? Systemy informatyczne nie są wieczne.

Pamiętaj również, że w nowym systemie również będą błędy do usunięcia. Z dużym prawdopodobieństwem może być ich więcej.

Nie zapomnij o tym, każda nowość przejściowo dezorganizuje działanie pracowników.

4. Zastanów się, czy nie kierują Tobą uprzedzenia lub moda

Wbrew pozorom to częsta motywacja. Czy rzeczywiście aktualny system jest przestarzały, czy po prostu z jakiegoś powodu go nie lubisz? A może podoba Ci się jakieś inne rozwiązanie, na tle którego Twój systemy wygląda na przestarzały? Czy rzeczywiście potrzeba przepisania ma twarde podstawy merytoryczne?

Pamiętaj, że chociaż faktycznie mogą istnieć bardziej nowoczesne technologie, to ich użycie może być sprzeczne z Twoim interesem. Może lepszym rozwiązaniem będzie wprowadzenie zmian lub usprawnień w starym systemie?

Podsumowanie

Przepisanie systemu na nową technologię czasem jest dobrym pomysłem, a niekiedy wręcz koniecznością. Ale praktycznie zawsze jest sporą inwestycją. Dlatego decyzję o dobrze jest podejmować po gruntownej analizie, biorąc pod uwagę sytuację technologiczną, biznesową, koszty i dostępność specjalistów.

Nowa aplikacja na zamówienie jest zwykle kuszącą alternatywą, ale czasem dalsze utrzymywanie systemu w starej technologii jest lepszym rozwiązaniem. Jeśli aktualny system sprawia problemy, zwykle warto zacząć od ich rozwiązania, nawet jeśli w dłuższej perspektywie i tak planujesz przepisanie.

Zwróć też uwagę, że są firmy specjalizujące się w przestarzałych lub egzotycznych technologiach. Zwykle trudniej je znaleźć na rynku zdominowanym przez dostawców pracujących wyłącznie w nowych językach i frameworkach. Niemniej jednak warto poświęcić trochę czasu na upewnienie się, czy nie da się skorzystać z ich usług. W końcu napisanie systemu od nowa to poważna inwestycja.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *