.

Jakość kodu - czym jest dobry kod i dlaczego jest ważny dla Twojej firmy?

O tym czym charakteryzuje się dobry kod, jak pisać dobry kod i dlaczego dobry kod… jest dobry od strony programistycznej, powstało już wiele artykułów. Bez trudu można je znaleźć w sieci oraz na naszym blogu. Dzisiaj jednak chcemy podejść do wpływu dobrego (lub złego) kodu na oprogramowanie od strony biznesowej. Dlaczego nie warto oszczędzać na początku tworzenia nowego systemu i jak kiepski kod może w przyszłości generować gigantyczne koszty?

Jakość kodu - czym charakteryzuje się dobry kod?

Tutaj pojawia się pierwszy problem. Jako programiści bez trudu możemy ocenić, nawet po wstępnej, pobieżnej analizie, czy kod jest dobry, czy nie. Jesteśmy w stanie wskazać konkretne błędy i wytłumaczyć, dlaczego zastosowane rozwiązania są złe. Jednak w jaki sposób jakość kodu może ocenić osoba, która kupuje oprogramowanie, czyli klient, który kompletnie się na tym nie zna?

Istnieje kilka atrybutów, takich jak niezawodność i testowalność, które świadczą o jakości kodu

Podczas użytkowania aplikacji trudno jest ocenić, czy bazuje ona na dobrym kodzie, szczególnie jeśli nie została jeszcze upubliczniona i nie jest masowo używana. Są jednak dwie oznaki, które mogą się pojawić i ostrzec nas, że z oprogramowaniem jest coś nie tak.

Szybkość działania

Jeżeli dopiero co kupiliśmy system od firmy programistycznej (niezależnie od tego czy jest to aplikacja mobilna, strona internetowa czy aplikacja webowa), należy zwrócić szczególną uwagę na szybkość działania. Jeśli już na wstępie pojawiają się problemy z wydajnością, z całą pewnością w przyszłości się pogłębią. Świeżo napisana aplikacja nie ma prawa działać wolno. Jeśli serwer, na którym znajduje się to oprogramowanie, ma problem z obsłużeniem jednego odwiedzającego, na pewno nie będzie w stanie obsłużyć użytkowników, gdy jednocześnie tysiąc lub nawet kilka tysięcy osób zacznie korzystać z aplikacji.

Stabilność działania oraz brak błędów

Zazwyczaj budowanie aplikacji przebiega w kliku etapach. Najpierw tworzona jest wersja alpha, następnie wersja beta, później wersja RC (release candidate) i dopiero na końcu powstaje wersja produkcyjna. Pierwsze dwie wersje (alpha oraz beta) mogą zawierać błędy i używanie takich aplikacji może być uciążliwe. Jednak nie są to wersje przeznaczone do publicznego użytku, a dla testerów. Każda solidna agencja programistyczna posiada odpowiednie procedury, które pozwalają wyłapać i poprawić błędy z pierwszych wersji.

Jeśli zatem otrzymujemy produkt końcowy, który zawiera błędy, to znaczy, że zespół testerów albo się obijał, albo w danej firmie w ogóle nie istnieje i aplikacje wypuszczane są bez sprawdzenia.

Niestety powyższe dwa objawy mogą wystąpić na początku, ale nie muszą. Skoro więc dostaniemy aplikację, która co prawda jest kiepsko napisana, ale działa szybko i stabilnie, w czym jest problem? Już śpieszymy z wyjaśnieniem.

Zły kod może zrujnować Twój budżet

Fakt, że problemy z szybkością i stabilnością działania aplikacji nie występują od początku jej użytkowania nie oznacza, że nie pojawią się one w przyszłości. Problemy, które nie zostały od razu wykryte, dadzą o sobie znać. Jednak, kiedy jeszcze o nich nie wiemy, jako właściciele oprogramowania zaciągamy swego rodzaju dług technologiczny (sytuacja, w której pozornie łatwiejsze i prostsze rozwiązania w dłuższej perspektywie czasu okazują się mniej opłacalne). Odkładamy problemy na później. Niestety z czasem narosną, a ich naprawa stanie się bardziej uciążliwa. Spójrzmy na scenariusz, którzy zdarza się bardzo często.

Klient na początku wybrał najtańszą ofertę wśród firm programistycznych i dostał aplikację z kiepskim kodem. Początkowo wszystko działało prawidłowo, ale z czasem zaczęło pojawiać się coraz więcej problemów. Oprogramowanie działało coraz wolniej, a klienci odchodzili, ponieważ nie byli z niego zadowoleni z powodu braku stabilności oraz ciągłych awarii. Właściciel aplikacji w końcu miał dość i postanowił zatrudnić inny zespół deweloperski, teraz już za większą cenę, mając słuszne oczekiwania, że wraz z ceną jakość dostarczanych usług również będzie wyższa. Z nowym zespołem programistycznym klient wiązał duże nadzieje, mając świadomość, że należy poprawić kod. W tej sytuacji możliwe były tylko dwa scenariusze:

  • napisanie całej aplikacji od początku, co wiązałoby się z ogromnymi kosztami,
  • naprawianie, kawałek po kawałku, tego co już jest (i również oznaczałoby bardzo duże koszty).

Napisanie aplikacji od początku

Napisanie całej aplikacji od początku może się wydawać dobrym krokiem. W końcu będziemy mieli pewność, że jakość kodu będzie wysoka, a aplikacja będzie działać stabilnie. Niestety, tak jak pisaliśmy wcześniej, będzie się to wiązało z ogromnymi kosztami. Pieniądze, które wydaliśmy na początku na stworzenie nowego oprogramowania przepadną, a my będziemy musieli ponownie niemało zainwestować.

Pamiętajmy również, że rozpatrujemy scenariusz, w którym aplikacja już działa i korzystają z niej klienci. Nawet jeśli jednocześnie zaczniemy budowę nowej aplikacji, nadal równolegle będziemy musieli ponosić koszty “łatania” na bieżąco błędów w starym systemie. Dodatkowo stworzenie nowego rozwiązania będzie się wiązało z przeniesieniem danych, zmianą ich struktury itp. Podczas tego procesu działająca aplikacja będzie musiała być wyłączona przynajmniej na kilka godzin, co z pewnością nie ucieszy klientów.

Naprawianie istniejącej aplikacji

Drugi możliwy scenariusz to naprawianie, kawałek po kawałku, istniejącego kodu. To rozwiązanie też ma swoje wady. Po pierwsze, podobnie jak w poprzednim scenariuszu, nadal trzeba będzie na bieżąco poprawiać już istniejące błędy, co oczywiście zwiększy koszty. Dodatkowo taka operacja musi być zaplanowana z chirurgiczną precyzją. Należy spędzić bardzo dużo czasu na analizę i ustalenie każdego kroku. Sporo czasu należy również poświęcić na napisanie testów automatycznych, aby naprawiając jedną funkcjonalność mieć pewność, że przez przypadek nie popsujemy czegoś w zupełnie innym miejscu. Cały proces naprawy jest bardzo czasochłonny i ryzykowny.

Nie jesteśmy w stanie łatwo wskazać, który z dwóch opisanych scenariuszy jest lepszy. Każdy z nich ma swoje wady. Podjęcie danej decyzji musi być poprzedzone szczegółową analizą sytuacji, charakterystyki aplikacji, jakości kodu oraz kosztów.

Dobry kod to inwestycja

Bardzo często klient w trakcie poszukiwań prosi o wycenę projektu różne firmy, a następnie porównuje oferty. Nie jest to nic nadzwyczajnego ani złego. Problem pojawia się dopiero wtedy, gdy przy wyborze firmy jedynym lub kluczowym kryterium jest cena. Osobie nieznającej się na programowaniu trudno jest zrozumieć, dlaczego jedna firma zrealizuje zlecenie za 10 tysięcy, a druga za 50 tysięcy złotych. Z czego wynika taka różnica w cenie? Dlaczego już na samym początku nie warto oczczędzać i lepiej potraktować ten zakup jako inwestycję, która zwróci się w przyszłości?

Dobra firma oferuje znacznie więcej niż samo napisanie kodu

Jak już napisaliśmy wcześniej, solidna firma programistyczna ma wypracowane odpowiednie procedury, aby nie dopuścić do wydania niskiej jakości kodu. Do tych procedur należy między innymi:

  • Code review. Każdy fragment kodu napisany przez programistę jest sprawdzany przed wydaniem przez co najmniej jednego innego dewelopera. Jeśli będzie on miał jakiekolwiek uwagi lub dostrzeże błędy, nie będzie możliwe wypuszczenie kodu tak długo, jak wszystkie uwagi nie zostaną poprawione.
  • QA (quality assurance). Jest to osobny zespół do spraw zapewnienia jakości, czyli po prostu zespół testerów, którzy szczegółowo sprawdzają stabilność oraz bezpieczeństwo aplikacji. Takie testy potrafią trwać nawet kilka dni i wykazać najdrobniejsze błędy.
  • Testy automatyczne. Oprócz osobnego zespołu, którego zadaniem jest manualne testowanie, istnieją jeszcze testy automatyczne. Dzięki nim, za pomocą jednej komendy jesteśmy w stanie sprawdzić, czy kod, który właśnie napisaliśmy, nie zepsuł przez przypadek aplikacji w zupełnie innym, niespodziewanym miejscu (a zdarza się to dość często).
  • Dokumentacja - Dobra dokumentacja pozwala w szybki sposób wdrożyć nowych programistów do projektu oraz zrozumieć, jak działają poszczególne komponenty aplikacji. Może się to wydawać błahe, jednak szczególnie w przypadku dużych systemów brak dokumentacji stanowi nie lada problem.

Utrzymanie i rozwój aplikacji

Pamiętajmy, że technologia rozwija się bardzo szybko. Wraz z nią powinien również rozwijać się kod naszej aplikacji. Nawet jeśli na starcie będziemy mieli świetną aplikację, której kod jest najwyżej jakości, po kilku latach może się okazać, że nie jest on już nic wart. Dobra firma programistyczna na bieżąco przeprowadza aktualizacje oraz dostosowuje kod do bieżących trendów i technologii. Strona internetowa, która pięć lat temu wyglądała super nowocześnie, bez bieżącego rozwoju, dzisiaj będzie wyglądać na przestarzałą i niespełniającą współczesnych standardów.

Jakość kodu - podsumowanie

Jakość kodu ma bezpośrednie przełożenie na jakość działania oprogramowania. Nikt z nas nie będzie chciał przecież korzystać z aplikacji która cały czas się zawiesza, jest powolna i zawiera błędy. Niestety wraz z jakością w parze idzie też cena. Jednak pamiętajmy, że im więcej pięniędzy zainwestujemy na początku, tym mniejsze koszty poniesiemy w przyszłości

W Droptica stworzymy dla Ciebie aplikację webową lub stronę internetowa w Drupalu, zgodnie z określonymi standardami kodowania. Jakość kodu będą regularnie sprawdzać programiści, testerzy oraz testy automatyczne.

3. Najlepsze praktyki zespołów programistycznych