Technical debt

Definicja pojęcia Technical debt
Metodyki
Definicja Agile

Agile Scrum co to jest Technical debt?


Dług techniczny jest często kojarzony z projektami rozwoju oprogramowania. W rzeczywistości jego pochodzenie wywodzi się ze świata rozwoju oprogramowania, a konkretnie z architektury oprogramowania. Dług techniczny odnosi się do idei, że w każdym kawałku oprogramowania są pewne rzeczy, które można zrobić teraz, ale zapłacić za nie później.

Ponosisz koszty, odraczając te rzeczy, które nazywamy długiem technicznym lub długiem projektowym. Ale co to oznacza w praktyce? Skąd możesz wiedzieć, czy Twój projekt ma dług techniczny? A jeśli tak, to jak możesz go zredukować? Przyjrzyjmy się kilku najczęstszym przykładom długu technicznego i jak sobie z nim poradzić.

Code smell

Zapach kodu jest symptomem problemu w twoim kodzie, który może przekształcić się w prawdziwy problem. Zapachy kodu mogą być wskaźnikami złego projektu, nieczytelności lub innych problemów w twoim kodzie. Istnieją tony zapachów kodu, ale kilka wspólnych to:

– Komentarze, które nie są jasne

– Niepotrzebnie skomplikowany kod

– Wysoka złożoność cyklomatyczna

– Zduplikowany kod

– Kod, który jest trudny do przetestowania

– Kod, który jest trudny do odczytania

– Kod, który jest trudny do rozszerzenia

– Kod, który jest trudny do zrozumienia

– Kod, który jest zbyt skomplikowany

– Kod, który jest zbyt ogólny

– Kod, który jest zbyt prosty

– Kod, który jest zbyt lakoniczny

– Kod, który jest zbyt szczegółowy

– Kod, który nie jest spójny

– Kod, który jest zbyt sztywny

– Kod, który nie jest jasny

– Kod, który nie jest rozszerzalny

– Kod, który nie jest czytelny

– Kod, który nie jest testowalny

Duplicated code

Zduplikowany kod jest bardzo częstym problemem na projektach tworzenia oprogramowania. Często jest on oznaką słabej komunikacji i złego zarządzania projektem. Zduplikowany kod istnieje wtedy, gdy istnieje więcej niż jeden kawałek kodu, który robi to samo. Problem z tym jest taki, że jak tylko jeden z tych kawałków kodu się zmieni, wszystkie inne muszą być zmienione w ten sam sposób.

Jeśli masz zduplikowany kod, oznacza to, że więcej niż jedna osoba pracuje nad tą samą rzeczą. Zduplikowany kod może być oznaką większego problemu w projekcie, takiego jak słaba komunikacja, brak wspólnej wizji lub słaby kierownik projektu. Zduplikowany kod jest jedną z najgorszych form długu technicznego. Nie możesz się go pozbyć, jeśli nawet nie wiesz, że tam jest.

Stagnacja techniczna

Stagnacja techniczna odnosi się do braku wzrostu technicznego w zespole, opartego na braku rozwoju, szkoleń lub możliwości uczenia się nowych rzeczy. Może to być oznaką zespołu, który nie dysponuje wystarczającymi zasobami lub zespołu, który jest nadmiernie skupiony na ukończeniu bieżącego projektu kosztem swojej wiedzy technicznej. Zespół, który jest skupiony na stagnacji technicznej, prawdopodobnie nie będzie w stanie rozwijać swojej bazy danych, co oznacza, że będzie robił w kółko te same rzeczy.

Może to prowadzić do powielania kodu, a także do tworzenia kodu o niejasnych intencjach. Ten rodzaj stagnacji może również prowadzić do większej biurokracji skupionej na procesach. Może to prowadzić do kierowników projektów, którzy mają obsesję na punkcie tworzenia skomplikowanych polityk i procedur dla wszystkiego, ze szkodą dla samego projektu.

Brak automatyzacji

Brak automatyzacji może prowadzić do ogólnego braku koncentracji na ważnych zadaniach i tendencji do skupiania się na rzeczach nieistotnych. Jest to oznaka zbytnio skoncentrowanego na procesach zespołu, który nie skupia się na realizacji swoich podstawowych zadań.

Automatyzacja odnosi się do wykorzystania narzędzi, procedur i języków programowania w celu usprawnienia części projektu. Kiedy zespołowi brakuje automatyzacji, zazwyczaj spędza on więcej czasu na ręcznym wykonywaniu czynności, które mógłby wykonać za pomocą narzędzi. Problem w tym, że procesy ręczne są z natury mniej wydajne niż te zautomatyzowane. Istnieje wiele sposobów, w jaki zespół może zautomatyzować swoje procesy. Może to być tak proste, jak użycie języka programowania do skryptowania małych zadań lub napisanie zestawu standardowych procedur do naśladowania.

Broken windows and moving targets

Zepsute okna i ruchome cele to dwa problemy, które mogą prowadzić do długu technicznego. Rozbite okna to teoria, która sugeruje, że opuszczony budynek z rozbitymi oknami jest bardziej prawdopodobny do wandalizowania i zniszczenia niż budynek z wszystkimi jego oknami nienaruszonymi.

Można to zastosować do rozwoju oprogramowania, mówiąc, że jeśli pozwolisz na istnienie złego kodu i zepsutych funkcji w twoim projekcie, sprawisz, że bardziej prawdopodobne będzie, że twój zespół pozostawi inny zły kod i zepsute funkcje w twoim projekcie. To spowoduje powolne gnicie projektu i uczyni go mniej wydajnym. Utrudni to również dodawanie nowych rzeczy. Ruchome cele są problemem, gdy twój projekt ma ruchome cele. Zwykle dzieje się tak, gdy nie masz jasnego kierunku i nie jesteś pewien, co robisz.

Ruchome cele mogą się zdarzyć, jeśli nie masz solidnego planu tego, co budujesz. Jeśli zmieniasz swoje cele lub kierunek w połowie projektu, prawdopodobnie masz ruchome cele.

Podsumowanie

Dług techniczny może naprawdę zaszkodzić projektowi rozwoju oprogramowania. Jeśli zauważysz któryś z tych znaków w swoim zespole, ważne jest, aby pracować nad jego redukcją. Kiedy napotkasz te problemy, upewnij się, że prowadzisz dyskusje na ich temat i starasz się zmniejszyć ilość długu technicznego w swoim projekcie.

Free

Pytania rekrutacyjne JavaScript

Free

Pytania rekrutacyjne Spring Framework 

Free

Java pytania rekrutacyjne

Scroll to Top