Blog IT, Blog Marketing

Czym jest legacy software?

Czym jest legacy software?

Marcin Sarna , 31.12.2020 r.

Nie, to nie tylko niewspierane starocie.

Propozycja definicji

Zacznijmy od definicji starszego oprogramowania. Właściwie istnieje wiele różnych definicji ale co powiesz na taką: legacy software to każde oprogramowanie, którego teraz nie piszesz. To usuwa negatywne skojarzenie wyłącznie z oprogramowaniem, które już nie jest wspierane albo zapomniane leży czternasty już rok na serwerze albo w sterowniku tej obrabiarki w tamtym kącie hali. Jeśli pull request został przesłany wczoraj i został włączony do produkcji, to tak, to też jest legacy code.

Czasami (zawsze) deweloperzy boją się zmienić starszy kod. To nie jest nierozsądne. Strach może wynikać z niewystarczającego pokrycia testów, braku dokumentacji, przestarzałej technologii lub skomplikowanej zależności między modułami. Zmiana tego stwarza duże ryzyko, ponieważ zmiana może skutkować nieprzewidzianym wpływem na cały kod, który jest od tej zmiany zależny.

Problemy legacy software

Jakbyśmy nie próbowali więc pozytywnie wypowiedzieć się o „starym” kodzie (choćby kilkudniowym) to niesie on z sobą pewne nieusuwalne wręcz problemy. Przede wszystkim jest on obsługiwany przez skończoną liczbę osób, które „wiedzą, jak to działa”, a wszelkim próbom wprowadzenia nowych osób do tego kręgu towarzyszy frustracja i wysokie ryzyko biznesowe. Firmę można więc złapać w bardzo niebezpieczną pułapkę, jeśli zewnętrzny sprzedawca utrzymuje stary kod a nikt w firmie nie wie, jak nim zarządzać lub nie ma do niego dostępu. Firma musi mieć jasny i skuteczny sposób zarządzania, zmiany i zrozumienia każdego elementu oprogramowania i technologii, na której polega.

Pierwsze symptomy nadchodzących problemów to:

  • Niewystarczające pokrycie testu (lub brak testów)
  • Brak dokumentacji projektowej, tylko niewielki podzbiór inżynierów wie, jak utrzymać kod
  • Zastosowana technologia jest przestarzała
  • Ryzyka biznesowe
  • Dodawanie nowych funkcji lub zmiana istniejących funkcji staje się wolniejsze
  • Wiedza jest skoncentrowana w małej grupie programistów

Stare nie jest złe gdy się je rozumie

Starsze oprogramowanie jest wszędzie. Nie można tego faktu postrzegać od razu negatywnie, wyobrażając sobie duży, przestarzały system lub rozwiązanie, które istnieje od ponad dziesięciu lat. Faktem jest, że oprogramowanie zmienia się tak szybko, że narzędzia, a nawet podejście używane do konstruowania oprogramowania mogą stać się przestarzałe w ciągu kilku miesięcy. W takim przypadku ważne jest, aby spojrzeć na oprogramowanie jako na coś, co ewoluuje, na coś, o co należy dbać i stale dbać o stan jego hmmmm zdrowia.

Sprawdź oferty pracy na TeamQuest

Owszem, trudno jest prosić o środki (czyt. pieniądze) na zatrudnienie nowych deweloperów wyłącznie w celu rehabilitacji systemu, który może nieco zaczynać trącić myszką. Najgorsze jest wyjaśnienie niektórych bardzo technicznych kwestii osobom nietechnicznym. Możesz usłyszeć „Dlaczego to nie jest OK? Zawsze działało więc czemu zmieniać?”.

Tymczasem każdy system w pewnym momencie potrzebuje pomocy. Tymczasem nowe potrzeby biznesowe są największym czynnikiem powodującym problemy z konserwacją starszego kodu, ponieważ często łatwiej jest znaleźć szybkie rozwiązanie, zamiast wracać, planować i przeglądać całą architekturę oraz szukać najlepszego sposobu dodania nowej funkcji do legacy code’u.

Dobra wiadomość jest taka, że jeśli starsze oprogramowanie wymaga ulepszeń, można zrobić naprawdę pozytywne postępy przy niewielkim budżecie. Można korzystać z narzędzi takich jak Code Climate, sprawdzać zależności i monitorować złożoność kodu. Ale najważniejszą rzeczą, jaką musisz zrobić, jest ciągłe upewnianie się, że systemowi poświęcana jest odpowiednia ilość czasu i wysiłku, aby był zdrowy i zdrowy. Cykliczne wysiłki są tu lepsze niż jednorazowy sprint a profilaktyka tańsza niż leczenie.

Zobacz też nasz artykuł o aktualizacji dużego systemu na przykładzie produktów Oracle’a.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej