CIOProgramowaniePolecane tematy

Najważniejsze kierunki rozwoju narzędzi i praktyk stosowanych przez deweloperów

O możliwościach technologicznych, wyzwaniach organizacyjno-kulturowych i trendach związanych z tworzeniem oprogramowania, a także o wdrażaniu metodyki DevOps i zaangażowaniu Oracle w działania społeczności open source opowiada Artur Kuliński, Cloud Architect w Oracle Polska.

Konferencja Oracle Code Explore to okazja nie tylko do poznania nowych technologii i narzędzi deweloperskich, ale przede wszystkim trendów oraz zmian w sposobie projektowania, pisania i wdrażana aplikacji. Co zatem dzieje się w świecie tworzenia oprogramowania?

Przede wszystkim, widać bardzo mocny zwrot procesów tworzenia oprogramowania w kierunku rozwiązań open source. Oracle – jako dostawca oprogramowania i usług deweloperskich – w pełni wspiera tę tendencję. Angażujemy się np. w szereg projektów typu cloud native – takich, jak np. Kubernetes czy Fn. Projekty open source wspieramy zarówno pod kątem finansowym i partnerskim, ale też przekazując nasz kod źródłowy. Przykładem niech będzie przekazanie kodu Java Enterprise Edition do projektu Jakarta EE.

Jakie są dziś największe wyzwania związane z pracą deweloperów?

Wyzwania pozostają niezmienne od lat. Dziś dotykają raczej obszaru ludzkiego i procesorowego, niż technologicznego. Należy pamiętać, że tworzenie oprogramowania jest gigantycznym procesem inżynieryjnym, słusznie porównywanym do budowy nowoczesnego samolotu pasażerskiego. Oznacza to, że problemem jest często koordynacja procesów wytwórczych i rozproszonych zespołów.

W obszarze technologii najczęstszym problemem jest raczej wybór pomiędzy – obarczonym wyższym ryzykiem, ale i potencjalnymi korzyściami – podążaniem za nowinkami, a trzymaniem się bezpiecznych, sprawdzonych ścieżek. Nie bez powodu to startupy, mając więcej swobody biznesowej, najczęściej sięgają po nowości. Widać jednak, że i duże organizacje zorientowały się, że współpraca ze startupami jest sposobem na bezpieczne eksperymentowanie z nowymi rozwiązaniami przy stosunkowo niewielkich kosztach, co prowadzi do pewnej symbiozy między nimi.

Wróćmy jednak do trendów…

Na rynku dużo mówi się też o metodykach zwinnych i DevOps. Niestety poziom zaadoptowania tego rodzaju standardów nie jest wysoki. Mam wrażenie, że organizacjom dysponującym dużymi działami rozwoju oprogramowania trudno jest się przestawić na takie podejście. Nic dziwnego, procesy kaskadowe trzymają się świetnie i w wielu instytucjach są wciąż podstawą rozwoju oprogramowania. Towarzyszą im monolityczne wdrożenia i silosowe organizacje. Jak zresztą mówi prawo Conway`a: struktura wewnętrzna oprogramowania, które jest tworzone w danej organizacji silą rzeczy odzwierciedla jej strukturę organizacyjną oraz ścieżki komunikacji. Tymczasem, technologicznie jesteśmy już kilka kroków naprzód. Przechodząc od procesów zwinnych, wirtualizacji i organizacji funkcyjnych, doszliśmy do przełomowego etapu, gdzie z jednej strony mamy mikroserwisy i DevOps, a z drugiej skalowalne horyzontalnie rozwiązania chmurowe.

Czy nie jest tak, że dla młodego pokolenia programistów to właśnie podejście zwinne jest bardziej naturalne?

Tu pojawia się problem dla największych organizacji. Młodzi ludzie nie chcą rozwijać przestarzałych technologicznie systemów, nie chcą pracować w starym, skostniałym podejściu. Szukają tego, o czym czytają i czego się uczą – mikroserwisów i chmury. Chętniej pójdą więc do FinTech’u, startupu, czy innej organizacji o dużej swobodzie technologicznej i małym narzucie organizacyjnym, niż do skostniałych, hierarchicznych organizacji. Tu pojawia się znowu wyzwanie kulturowe – stworzenie takich warunków, aby pozyskać młode pokolenie specjalistów i pozwolić im zmieniać organizację.

Gdzie w tym wszystkim Oracle?

Jako dostawca technologiczny staramy się wspierać projekty poprzez zaangażowanie w społeczność open source, ale także kwestie narzędziowe. Oferujemy naprawdę wiele narzędzi przydatnych deweloperom. Nie poszliśmy przy tym w kierunku tworzenia własnego narzędzia wspierającego koncepcję Infrastructure as Code w chmurze. Zamiast tego mocno wspieramy rozwój projektu Terraform, który zapewnia narzędzia dla IaC.

Także w ramach platformy Oracle Cloud udostępniamy szereg usług dedykowanych dla deweloperów, w tym tych, związanych z wykorzystaniem Javy, czy platformy Kubernetes. Dostarczamy też narzędzie Oracle Developer Cloud, które wspiera zarządzanie zwinnymi projektami w myśl koncepcji ciągłej integracji i ciągłego wdrażania CI/CD. Zapewniamy całą niezbędną do tego warstwę narzędziową. W ramach naszego środowiska chmurowego ułatwiamy też tworzenie i wykorzystanie sztucznej inteligencji. Dostarczamy na przykład instancje serwerów wyposażonych w wydajne karty graficzne, dzięki czemu korzystanie ze sztucznej inteligencji staje się bardziej przystępne i łatwiejsze.

Co ważne, sztuczną inteligencję wspieramy także w sensie platformowym. Do społeczności open source przekazaliśmy projekt GraphPipe, który pozwala na ustandaryzowanie produkcyjnych wdrożeń sztucznej inteligencji. Z praktyki wiem, że często powstaje luka pomiędzy wyuczonymi przez zespoły inżynierów danych modelami sztucznej inteligencji, a rozwiązaniami trafiającymi do finalnych produktów biznesowych. Nasz projekt wspiera przenoszenie wyuczonych sieci neuronowych ze środowisk, w których są one trenowane do środowisk produkcyjnych.

Na ile w pracach dewelopera przydaje się dziś sztuczna inteligencja?

Trudno jeszcze mówić o w pełni zautomatyzowanym tworzeniu kodu. Takie mechanizmy widać jednak w ramach narzędzi finalnie wykorzystywanych przez deweloperów. Oracle na szeroką skalę wykorzystuje AI w swoich produktach. Pracując nad prototypem jednej z aplikacji sam miałem okazję przekonać się, jak wygodna z perspektywy programisty jest autonomiczna baza danych Oracle i to nawet, jeśli wziąć pod uwagę, że środowiska bazodanowe są raczej transparentne dla deweloperów. Dla programisty, który chce skupić się na tym, co ma zaprogramować efektywnie działająca i automatycznie dostosowująca się do potrzeb baza danych jest naprawdę dużym ułatwieniem. Warto dodać, że cena najmniejszej konfiguracji bazy autonomicznej jest w pełni osiągalna dla średniej wielkości firm, a należy pamiętać o dzisiejszych kosztach pracy administratorów i deweloperów.

Jakie projekty deweloperskie Oracle realizuje dla klientów?

Oferujemy bardzo szeroki zakres usług, uczestniczymy w projektach wdrożeniowych i rozwojowych, tworzymy zlecone systemy i zajmujemy się ich dalszym utrzymaniem. Tak się składa, że w Polsce mamy bardzo silny zespół konsultingowy i choć nie zawsze możemy o tym mówić, to z powodzeniem angażujemy się w rozmaite projekty o dowolnej skali. Oczywiście najbardziej lubimy pracować z naszymi narzędziami na naszej technologii, ale nie unikamy rozwiązań open source. Zawsze natomiast staramy się dostarczyć klientom dodatkową wartość wynikającą z naszego doświadczenia i skali działalności. W gronie naszych klientów w Polsce jest m.in. Policja. Wspieramy też partnerów, którzy na bazie naszej technologii budują swoje aplikacje. Zapewniliśmy m.in. system monitorowania w czasie rzeczywistym zmagań pływaków na potrzeby projektu przepłynięcia wpław Bałtyku – Cross Baltic Challenge 2018. Mylne jest więc myślenie, że usługi deweloperskie Oracle są tylko dla największych firm. Za sprawą chmury próg dostępności naszych usług mocno przesunął się w kierunku średnich organizacji. Warto też wziąć pod uwagę, że dzięki naszym doświadczeniom branżowym oraz znajomości technologii jesteśmy w stanie bardzo sprawnie realizować projekty. Możemy też przejąć w opiekę istniejące oprogramowanie, w ramach tego typu usług przeanalizować jego działanie, wyłapać i wyeliminować błędy, a w razie potrzeby przenieść do chmury.

Artykuł ukazał się na łamach Magazynu ITwiz nr. 2/2019.

Tagi

Podobne

Dodaj komentarz

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