12.08.2019 / Technologie informatyczne

Wybór technologii a realizacja projektu

Zanim rozpoczniemy realizację projektu, należy wybrać technologię, w której będzie on tworzony. Nie warto polegać tylko na technologiach, na których zna się firma, ponieważ może się okazać, że inna będzie bardziej odpowiednią. W takim przypadku trzeba także zwrócić uwagę na to, czy wprowadzenie nowej technologii będzie opłacalne dla firmy. Poniższe punkty pomagają nam podjąć decyzję przy wybraniu właściwej technologii. Chciałbym też zauważyć, że dotyczy to rozwiązań webowych. W przypadku aplikacji desktopowych czy mobilnych punkty mogą się różnić.

Zakres i rodzaj projektu

W zależności od tego, jakiego rodzaju projekt realizujemy (czy jest to strona czy sklep internetowy), takie funkcje będzie on posiadał. Podczas realizacji projektu należy wybierać technologię, która będzie wspierać funkcjonalności, typowe dla rodzaju zleconego projektu. Strona internetowa nie potrzebuje posiadać funkcjonalności, które umożliwiają sprzedaż produktów i zarządzanie magazynem. Określenie zakresu projektu pomaga zrozumieć, jaką funkcję ma pełnić projekt.

Złożoność projektu

Moduły, z których powinien składać się system, wskazują to, na ile złożony będzie projekt. Landing page jest dużo mniej skomplikowany, niż strona internetowa, która pozwala użytkownikom zapisać się do newslettera, skomentować artykuł na blogu i przeglądnąć ofertę firmy w oddzielnej karcie. Warto także wziąć pod uwagę to, ile operacji powinien wykonywać system podczas interakcji z użytkownikiem. Im więcej funkcjonalności projekt będzie zawierał, tym bardziej zaawansowaną technologię należy wybrać.

Budżet

Chociaż dotyczy to każdego projektu, znaczenie budżetu nie zawsze jest takie oczywiste. W zależności od tego, ile klient jest w stanie wydać na projekt, tyle czasu będziemy mogli poświęcić na jego realizację. Budżet pomaga określić skalę wykonywanego programu oraz liczbę funkcjonalności, które zostaną wdrożone.

Ilość oraz rodzaje integracji z zewnętrznymi systemami

Możemy zintegrować projekt z zewnętrznymi systemami, które uzupełniają jego funkcje. Ilość integracji także wpływa na złożoność projektów. Jednak jeśli integrujemy się z jednym rodzajem systemów nie potrzebujemy decydować się na technologię, która wspiera inne (chyba, że klient przewiduje zwiększenie liczby rodzajów w przyszłości, ale więcej o tym poniżej).

Plany rozwoju

Przyszłe plany klientów są bardzo pomocne przy wyborze technologii. Na przykład, w przypadku małej strony internetowej mamy do wyboru dwie technologie: jedna jest doskonałą opcją dla takiego typu projektu, lecz nie nadaje się do tworzenia większych stron, a druga, choć  umożliwia realizację małego projektu, posiada także niezbędne funkcjonalności dla bardziej rozbudowanej platformy. Jeśli klient nie zamierza rozszerzać swojej strony internetowej, to śmiało możemy decydować się na pierwszą opcję, zaoszczędzając koszty klienta i czas programistów. Jednak, jeśli klient przewiduje dodanie modułów w przyszłości, lepiej postawić na technologię, która pozwala na rozwój.

Nieuwzględnienie planów rozwoju może skutkować dużymi kosztami, które poniesie klient w przypadku wprowadzenia zmian, których nie będziemy w stanie wdrożyć na pomocą wybranej technologii. 

Właściwości środowiska produkcyjnego

Zazwyczaj firmy posiadają własne serwery, na których zostanie zainstalowane oprogramowanie. Jednocześnie na tych serwerach znajdują się inne programy, używane przez klienta, dlatego ograniczają nas dostępne zasoby klienta oraz jego gotowość do zakupu dodatkowego sprzętu. Duże znaczenie ma także rodzaj serwera i usytuowanie pozostałego oprogramowania.

Właściwości środowiska odgrywają ważną rolę podczas wyboru technologii, ponieważ nie możemy pozwolić sobie stworzyć oprogramowanie, z którego klient nie będzie w stanie skorzystać z racji ograniczeń jego serwerów.

Umiejętności pracowników oraz koszty szkolenia przy wdrożeniu nowej technologii

Przy wyborze technologii nie skupiamy się wyłącznie na umiejętnościach, które obecnie posiadają programiści, lecz także na ich chęci nauczenia się czegoś nowego. Programiści zazwyczaj są bardzo ambitnymi oraz chcą uczyć się kolejnych technologii, zwłaszcza tych popularnych. Jednak trzeba wziąć pod uwagę to, czy warto wydawać dużo pieniędzy na technologię, która będzie wykorzystana tylko do jednego projektu. W takim przypadku, nawet jeśli okaże się, że technologia idealnie pasuje do projektu, lepiej nie decydować się na dodatkowe szkolenie. Jeśli technologia zbyt się różni od tych, które są już wykorzystywane przez firmę oraz nie zapowiadają się w przyszłości projekty, do których można będzie ją użyć, nie warto nawet rozważać tej opcji. 

Gusta programisty

Jeżeli wybór stoi pomiędzy dwoma technologiami, które pasują do projektu pod względem wszystkich pozostałych punktów, wtedy to programiści decydują, w której technologii wolą realizować projekt. Nawet jeśli programiści potrzebują dodatkowego szkolenia, aby „zaktualizować” swoją wiedzę na temat jakiejś technologii, ale bardzo chcą ją zastosować do realizacji projektu, to warto zainwestować w ich rozwój. Może wpłynąć to także na produktywność zespołu, ponieważ jak ktoś się interesuje określonymi technologiami, to też lepiej wykona projekt. Pozwala to także programistom ciągle się doszkalać w technologiach, które lubią.

Popularność oraz społeczeństwo danej technologii, trendy

W przypadku pojawienia się problemu, programiści najczęściej zwracają się po pomoc do społeczności danej technologii. Od wielkości wspólnoty zależy na ile szybko i łatwo można uzyskać odpowiedź. Zaletą dużych społeczności jest także ciągła aktualizacja oraz tworzenie nowych wtyczek. Dzięki temu technologia się rozwija, pojawiają się nowe funkcjonalności i rozwiązania, które w dużym stopniu ułatwiają prace programistyczne. 
Warto również pamiętać o trendach. Jeśli dana technologia obecnie jest popularna, lecz jej społeczność maleje, to znaczy, że jest coś nie tak. Wybranie takiej technologii może skutkować, że projekt będzie trudniejszy w utrzymaniu bez wsparcia ze strony społeczności. Także z upływem czasu mogą pojawić się problemy, które bez aktualizacji technologii będzie bardzo trudno rozwiązać.

Podsumowanie

Przy wyborze technologii warto pamiętać, aby nie priorytetyzować punktów, ponieważ żaden nie jest bardziej czy mniej ważny. W wyniku końcowym technologia powinna pasować do projektu pod względem wszystkich punktów. Jeżeli nie weźmiemy pod uwagę nawet jeden z nich, może to doprowadzić do dużych problemów podczas realizacji projektu. Nie warto lekceważyć ani opinii zespołu, ani zasobów klienta. Tylko wykorzystanie doskonale dobranej technologii pozwoli stworzyć najlepszy projekt.