Rozwój technologii wyzwaniem dla programistów

Powstaje coraz mniejszy, lżejszy i o większej mocy obliczeniowej sprzęt komputerowy. To większe możliwości dla producentów oprogramowania i nowe wyzwania dla informatyków.

Obecnie programiści muszą znać wszystkie zmiany zachodzące na dynamicznym rynku technologii. Nowości, które początkowo wydają się jedynie ciekawostkami, często stają się poważnymi konkurentami wobec sprawdzonych i znanych produktów. Okazuje się, że nowe rozwiązania mogą być lepsze i znacznie tańsze. Nowinki technologiczne wiążą się z koniecznością stałego dokształcania i podnoszenia kwalifikacji, zdobywania umiejętności i certyfikatów. Praca programisty wymaga znajomości gotowych produktów, takich jak: serwery baz danych, serwery aplikacyjne, portale, silniki procesów, systemy obiegu dokumentów.

Bezpieczeństwo danych

Rozwój technologiczny bezpośrednio dotyczy czynników związanych z bezpieczeństwem informacji, ergonomią systemów czy ich skalowalnością. W tym kontekście każda implementacja nowych rozwiązań zwiększa ryzyko problemów. Stąd wiele firm i dostawców decyduje się na technologie, które gwarantują jak największe bezpieczeństwo danych. Nie zmienia to jednak faktu, że dostawca powinien pomóc dokonać wyboru, prezentując także korzyści w obszarach ergonomii, wydajności i skalowalności przy użyciu najnowszych rozwiązań.

Klienci chcą mieć pewność, że otrzymają od dostawcy stabilne rozwiązanie, stworzone w technologii, która nie zostanie wycofana czy wyparta z rynku w ciągu najbliższych kilku lat. W wielu przypadkach w ten aspekt bezpieczeństwa wpisuje się możliwość rozwoju systemu, dostępność nowych wersji, otwartość czy łatwość dokonania migracji. Jeżeli programiści nie są na bieżąco z najnowszymi technologiami, to ich klienci będą potencjalnie tracić korzyści wynikające z wdrażania tańszych i lepszych rozwiązań, a w dłuższej perspektywie dla programistów może to oznaczać utratę klientów i zleceń.

Języki programowania

Jednym z zagadnień, które muszą śledzić programiści, są języki programowania. Języki podstawowe wykorzystywane w tworzeniu rozwiązań stale się rozwijają. Opanowanie wszystkich jest praktycznie niemożliwe, dlatego programiści specjalizują się w jednym bądź kilku językach. Stąd w przypadku tworzenia produktu lepiej bazować na jednym języku.

Dla klientów ważne są możliwości, jakie dają nowe technologie. Z punktu widzenia zespołu projektowego przed przystąpieniem do pracy najważniejszy jest wybór odpowiedniej technologii. Twórcy rozwiązania muszą mieć pewność, że wybrany język, technologia czy platforma pozwolą opracować i wdrożyć wymagane przez klienta funkcjonalności. Jednocześnie wybór należy wpisać w trendy rozwoju rynku i branży, w której działa klient. W praktyce producenci wykorzystują nowe - i tym samym nie dość dobrze sprawdzone - języki oraz platformy tylko w prototypach i małych rozwiązaniach.

Zmiany technologiczne

Dla programistów istotne są zmiany związane ze wzorcami architektonicznymi i projektowymi, co może rzucać nowe światło na sposoby tworzenia oprogramowania. Tego rodzaju zmiany pozwalają lub wręcz zmuszają do przemodelowania sposobu myślenia o tym, w jaki sposób można spełnić oczekiwania klienta. Do takich zmian technologicznych należały m.in.: MOM (Message-oriented middleware), SOA (Service-oriented architecture), rozwój narzędzi workflow/BPM, dBPM (dynamic BPM), REST (Representational state transfer), a w ostatnim czasie rozwój modelu chmury (cloud computing) z coraz powszechniejszym udostępnianiem w sieci usług w modelu SaaS (a także IaaS i PaaS). Warto zwrócić uwagę, że są to zmiany trudne do przyjęcia, ponieważ wymagają znacznego zaangażowania po stronie klienta i jego współpracy z dostawcą oprogramowania.

Chmura

Jednym z największych wyzwań jest . To innowacja, która zmienia sposób dostarczania oprogramowania klientom. Jej konsekwencją jest przekierowanie na inne tory myślenia o rozwiązaniach IT zarówno po stronie dostawców, jak i użytkowników.

Wsparcie społeczności

Ważnym czynnikiem sukcesu wdrożeń i projektów jest współpraca twórców oprogramowania z jego użytkownikami. Rola klienta nie powinna sprowadzać się wyłącznie do złożenia zamówienia. Ważne jest środowisko tworzenia i budowania aplikacji, dobre IDE, wsparcie do debugowania, wsparcie do wykonywania testów jednostkowych, narzędzia SCM (Software Configuration Management). Ważna jest też społeczność - otoczenie - zgromadzona wokół danej technologii. Na tę społeczność nie składają się firmy i ludzie, którzy dostarczają biblioteki, dzielą się doświadczeniami, a nawet aplikacjami wykorzystującymi technologię. Umiejętność korzystania z tego rodzaju społeczności ułatwia tworzenie nowych rozwiązań.

Nieświadomi sobie szkodzą

Postęp technologii jest wyzwaniem także dla samych firm. Nieświadomość postępu doprowadza czasem do sytuacji, w których organizacja zostaje ze starą technologią, co powoduje problemy przy dalszym rozwoju systemu czy aktualizacji, na przykład uniemożliwiając migrację do nowej wersji systemu operacyjnego. "Maruderzy technologiczni" narażają się na duże trudności w funkcjonowaniu przedsiębiorstwa, co niemal zawsze skutkuje wysokimi i nieprzewidzianymi kosztami.

Dariusz Dudek jest głównym specjalistą IT w firmie SA.


TOP 200