TOP 5 wyzwań software developerów. Czy jesteś na nie przygotowany?
Przełomowe innowacje, dynamiczne trendy i nieustanne zmiany w technologii sprawiają, że branża Software Development stała się jednym z bardziej wymagających obszarów w dziedzinie IT. Programiści na co dzień muszą mierzyć się z różnorodnymi wyzwaniami, które obejmują zarządzanie produktami/projektami, bezpieczeństwo oprogramowania i skalowanie prac rozwojowych. Zapytaliśmy ekspertów z konferencji ACCELER8IT, skoncentrowanej na organizacjach Enterprise IT, przed jakimi wyzwaniami stoją w codziennej pracy.
Spis treści
1. Zarządzanie projektami i produktami oraz ich harmonogramem rozwoju
Wyzwanie: Jak działając w skali dostarczyć wartość biznesową w sposób, który pozwala osiągnąć pewną przewidywalność potrzebną do skutecznego zarządzania dużą organizacją.
Według badania przeprowadzonego przez Project Management Institute (PMI), aż 75% projektów oprogramowania przekracza pierwotnie zaplanowany harmonogram.
Wyznaczenie klarownych celów implementujących wizję, priorytetyzacja zadań i realistyczne oszacowanie czasu pomagają zespołowi skoncentrować się na kluczowych zadaniach. Aktywna komunikacja oraz elastyczne zarządzanie ryzykiem są kluczowe dla dostosowywania projektu do zmian. Skuteczne narzędzia wspierające development oraz automatyzacja procesów, zwłaszcza w ramach Continuous Integration/Continuous Deployment, przyspieszają dostarczanie wartości biznesowej. Upodmiotowienie zespołów przy jednoczesnym osiągnięciu równowagi między ich samodzielnością a potrzebą kontroli kierunku, w którym ten zespół zmierza, wspiera efektywność pracy. Ostatecznie, stosując zintegrowane podejście, można skutecznie osiągnąć sukces w dynamicznym świecie rozwoju oprogramowania.
– Ostatnie lata zdecydowanie udowodniły, że zmienność okoliczności to niestety w pewnym sensie normalność obecnych czasów. Pandemia, kryzysy wojenne, gospodarcze i inne czynniki wpływające na nasze otoczenie pokazały, jak bardzo nasze biznesy zmuszone są na szybkie i zdecydowane reagowanie. Momentami to spore szanse na rynkową wygraną, a czasami kolosalne ryzyka zagrażające stabilności biznesu. Hype medialny na Agile zdaje się, że mamy już dawno za sobą, ale to właśnie teraz niesamowitą siłą organizacji jest zwinne reagowanie. I nie zawsze musi to oznaczać ślepe podążanie za resztą rynku. Niemniej, harmonogramowanie ma nadal istotne znaczenie, choć sam harmonogram nie od dziś jest skutecznym narzędziem do zarządzania ryzykiem i reagowania na zmienne okoliczności, niż jak jeszcze kilka lub kilkanaście lat temu sztywnym planem drogowym, którym spokojnie podąża się zaplanowanymi wcześniej krokami.
Cytując Eisenhowera „Plany są niczym, planowanie jest wszystkim” – niekoniecznie najważniejsze jest dowieźć zakres zgodnie z deadline’em, ale dowieźć wartość biznesową w odpowiednim momencie, uwzględniając zmieniające się okoliczności. A to, że trudności mają to do siebie, że niestety lubią się przytrafiać, nie powoduje, że ślepe podążanie za deadlinem musi być najlepszym rozwiązaniem – to nie wydłużenie czasu realizacji, a jakość rozwiązania końcowego finalnie decyduje o wysokiej wartości produktu lub rezultacie projektu, który przynosi organizacji wcześniej oczekiwane benefity – komentuje Michał Godlewski, CTO w Grupa Morizon-Gratka.
2. Bezpieczeństwo oprogramowania
Wyzwanie: Wdrożenie praktyk bezpieczeństwa, identyfikacja potencjalnych zagrożeń i podatności, oraz implementacja środków ochronnych, aby zminimalizować ryzyko ataków i utraty danych.
Według raportu KPMG: Barometr cyberbezpieczeństwa 2023, nawet 58% firm w Polsce odnotowało w 2022 r. incydent polegający na naruszeniu bezpieczeństwa.
W kontekście bezpieczeństwa, organizacje mogą zwiększać szansę przeciwdziałaniu zagrożeniom poprzez „przesuwanie bezpieczeństwa w lewo”, budowanie kultury bezpieczeństwa, implementację praktyk bezpieczeństwa (m.in. podejście DevSecOps), w tym regularnych audytów kodu, testów penetracyjnych oraz ciągłego monitoringu. Wdrażanie zautomatyzowanych procesów testowania bezpieczeństwa, w tym testów jednostkowych i integracyjnych, stanowi kluczową praktykę w eliminowaniu potencjalnych luk w zabezpieczeniach.
Ponadto, edukacja zespołu produktowego/projektowego w zakresie najlepszych praktyk bezpieczeństwa oraz regularne szkolenia w celu świadomości zagrożeń cybernetycznych stają się integralnymi elementami strategii. Kierowanie uwagi na stałe aktualizacje zależności oraz oprogramowania, w tym zabezpieczeń i reagowanie na bieżące trendy w obszarze bezpieczeństwa, pozwala organizacjom utrzymać ochronę przed rozwijającymi się zagrożeniami. Ostatecznie, skuteczne zarządzanie bezpieczeństwem oprogramowania wymaga ścisłej współpracy między zespołem produktowym a działem bezpieczeństwa, a także ciągłego dostosowywania się do ewoluującego krajobrazu zagrożeń w dziedzinie Software Development.
3. Zarządzanie wymaganiami i komunikacja z klientem
Wyzwanie: Skuteczne zbieranie, dokumentowanie i zarządzanie wymaganiami produktowymi/projektowymi, a także utrzymywanie klarownej komunikacji z klientem w celu zrozumienia i dostosowania się do ich oczekiwań.
– Z praktyki wszyscy bardzo dobrze wiemy, że wymagania lubią się zmieniać. I absolutnie nie ma w tym nic złego, wręcz przeciwnie. Jednak nadal, w jaki sposób można zrozumieć i efektywnie weryfikować oczekiwania klienta? Moją ulubioną metodą weryfikacji i dialogu z klientem, jest po prostu działający kod. Teoria (czytaj – wymagania), nie zawsze, albo wręcz rzadko, lubi się mijać z praktyką (końcowym produktem). Tak po prostu działa świat – czasami to kwestia translacji gdzieś po drodze, upływu czasu czy zwyczajnie ludzkich błędów.
Dlatego jestem zdania, że gdy tylko to możliwe, należy wymagania weryfikować w praktyce. Im częściej to będziemy robić, tym lepiej dla nas i produktu, który chcemy dostarczyć. To może być prototyp, surowe API bez interfejsu użytkownika, okrojony fragment funkcjonalności, kreatywność zespołu na pewno pozwoli coś wymyślić. Co ważne, dema oraz review, to na pewno wartościowe narzędzia i rytuały, ale musimy dać klientom nasz produkt „do ręki”, wejść z nimi w dialog oraz usłyszeć, co nam powiedzą po użyciu tego, co im zaoferowaliśmy. Tylko w ten sposób dojdziemy do tych mitycznych właściwych wymagań. I na koniec, jeszcze jeden pro tip – im wcześniej i bardziej zaangażujemy w to inżynierów, tym korzystniej dla wszystkich stron – komentuje Łukasz Halicki, Senior Engineering Manager w Atlassian.
Z tej perspektywy kluczowe stają się eksperymentowanie, poszukiwanie problem-solution fit oraz product-market fit niezależnie od skali organizacji.
4. Skalowanie prac rozwojowych
Wyzwanie: Rozwinięcie zdolności organizacyjnej w celu obsługi wzrostu skali, uwzględniając efektywne zarządzanie zasobami, infrastrukturą i komunikacją.
W obliczu wyzwania skalowania organizacje mogą skutecznie zastosować strategie, takie jak implementacja elastycznych architektur (np. mikrousługi), które umożliwiają niezależne rozwijanie poszczególnych komponentów systemu. Dodatkowo, stosowanie praktyk DevOps oraz Continuous Integration/Continuous Deployment (CI/CD) przyspiesza procesy dostarczania oprogramowania, co jest kluczowe przy skalowaniu. Strategiczne partnerstwa z dostawcami chmur obliczeniowej pozwalają na dynamiczną dostosowalność zasobów, umożliwiając organizacjom płynne skalowanie infrastruktury w zależności od potrzeb produktu/projektu.
Wprowadzenie efektywnego zarządzania zespołem, skupiającego się na zasadach Agile oraz zdecentralizowanego podejścia, sprzyja elastycznemu dostosowaniu się do rosnących wymagań. Ostatecznie, skuteczne skalowanie prac rozwojowych wymaga holistycznego podejścia, zbalansowanego zarządzania zasobami i efektywnego wykorzystywania nowoczesnych technologii, co umożliwia osiągnięcie sukcesu w dynamicznym środowisku Software Development.
– Rozwinięcie prac rozwojowych w miarę wzrostu wymagań lub rozwoju firmy to wyzwanie, zwłaszcza w kontekście zachowania wydajności i jakości. Aby łatwo skalować prace rozwojowe cała organizacja musi być do tego dostosowana. Podstawą są dwa fundamenty: organizacyjny i technologiczny. Pierwsza „noga” to nowoczesna, bezpieczna, technologia. Niezbędna jest skalowalna architektura i infrastruktura IT, a także łatwo integrowalne systemy IT. Organizacja musi umieć łatwo dołączać nowe komponenty do architektury np. przez „APIfikację”. Należy też pamiętać o zwiększających się wolumenach danych i za tym idącą koniecznością podnoszenia wydajności rozwiązań, np. przez korzystanie z rozwiązań chmurowych, tych prywatnych, jak i publicznych. Druga „noga” to zapewnienie szybkiego finansowania tych prac, zaalokowanie dodatkowych zasobów/squadów potrzebnych do realizacji czy też reorganizacja prac. Zgodnie z zasadą, że jeżeli nie rozpoczniemy realizacji nowych wymagań w ciągu 3 miesięcy, nie rozpoczniemy ich nigdy, bo w między czasie pojawią się nowe wymagania.
Jednym z rozwiązań, aby zarządzić tym wyzwaniem jest przeprowadzenie kompleksowej transformacji Agile i wyskalowanie jej w całej organizacji uwzględniając istotne elementy, takie jak finansowanie, realokacja zasobów, przekazanie decyzyjności do zespołów wytwórczych. Podsumowując, im bardziej nowoczesne, bezpieczne i lepiej zorganizowane IT, tym skalowanie projektów jest łatwiejsze, szybsze, efektywniejsze przy zachowaniu wydajności i jakości – komentuje Marcin Szatkowski – Business & IT Growth (BIG) Bureau director w Bank BNP Paribas Polska.
5. Definiowanie i tworzenie wartości biznesowej
Organizacje Enterprise są w nieustannych próbach usprawniania tego, jak definiują i tworzą wartość biznesową. Poddawane są także nieustającej presji zewnętrznej i wewnętrznej. Presja zewnętrzna może pochodzić od m.in.: konkurencji (już istniejącej, jak i od tzw. disruptors na rynku), rozwoju generatywnego AI i pogoni za AGI (artificial general intelligence), zmieniających się regulacji, nowej normalności post-pandemicznej, inflacji czy niepewności geopolitycznej.
Wewnętrzna presja to z kolei zjawisko, w którym organizacje klasy Enterprise ze względu na swój rozmiar i skalę wewnętrznych powiązań same w sobie są wystarczająco złożonymi organizmami, które nie potrzebują zewnętrznych zagrożeń, by zmagać się z przetrwaniem. Z tych powodów bardzo często ich uwaga kieruje się w stronę DevOps i skalowaniu zwinności jako próbie „ucieczki do przodu”.
Odpowiedzią na powyższe wyzwania jest konferencja ACCELER8IT, które celem jest pokazanie historii z organizacji klasy Enterprise, którym ta ucieczka się udała i są liderami w swoich branżach. Czekają na Ciebie cenne wskazówki, praktyczne strategie i możliwość wymiany doświadczeń z ekspertami, którzy podzielą się swoimi najlepszymi praktykami. Nie przegap okazji, aby odkryć kluczowe narzędzia i strategie potrzebne do osiągnięcia sukcesu w dynamicznym świecie Software Development.
Źródła:
Zdjęcie główne artykułu pochodzi z envato.com.