Skuteczny project manager potrafi w taki sposób pokierować zespołem, aby ten jak najlepiej zrealizował wyznaczony cel. Ponadto ma obowiązki względem interesariuszy oraz trzyma pieczę nad realizacją samego projektu ‒ od momentu jego uruchomienia aż do zamknięcia. Wiąże się to z szeregiem wyzwań, z którymi mierzy się w codziennej pracy.
Każdy projekt, do którego przystępujemy, wymaga zestawu umiejętności, który wypełniłby sporo kursów na studiach wyższych. Często wymaga się od nas znajomości tematów, które do tej pory nie zajmowały nas w naszym życiu zawodowym, a nagle stają się one konieczne w danym projekcie. Z tego względu ogromnym wyzwaniem w obszarze IT staje się ciągła edukacja
Jarosław Słowik, PHP tools consultant / developer w Capgemini
Ciągłe zmiany
Mowa tu jednak nie tylko o procesie zarządzania, ale Agile jako sposobie projektowania architektury systemu. Wykorzystując zwinność w procesie rozwoju, możemy bowiem szybko reagować na zmiany i modyfikować architekturę systemu w taki sposób, aby sprostać nowym wymaganiom.
Marek Zając, Lead .NET Developer w Capgemini
Zrozumienie potrzeb
Dla mnie oznacza to przekroczenie oczekiwań klienta w zakresie użyteczności aplikacji. Można to osiągnąć tylko poprzez dogłębne przedyskutowanie i poznanie ich potrzeb, wymagań, wizji i celów. Jeśli jesteś tego świadomy, możesz wykorzystać swoje dotychczasowe doświadczenie, proponując jak najlepsze rozwiązanie. Według mnie tego typu podejście jest synonimem dobrej jakości.
Jarosław Słowik, PHP tools consultant / developer w Capgemini
Każdy system wykorzystuje własny format danych. Z tego względu, aby połączyć ze sobą dwa lub więcej systemów, przydatne okazuje się wydzielenie kontekstów ograniczonych (ang. Bounded Contexts) oraz języka opublikowanego (ang. Published Lanaguage). Co więcej, nie każdy system posiada interfejs programowania aplikacji (API), za pomocą którego można w łatwy sposób komunikować się z systemem lub dostępne API ma ograniczoną funkcjonalność. Dlatego czasem musimy szukać innych sposobów integracji.
Marek Zając, Lead .NET Developer w Capgemini
Niezawodny system
W tej chwili staramy się projektować nasze rozwiązania według zasady Safe to Fail, w taki sposób, żeby awaria systemu zewnętrznego w jak najmniejszym stopniu wpływała na dostępność całego systemu. Np. jeśli użytkownik klika zamówienie w aplikacji i po nim ma nastąpić wysłanie SMS-a i powiadomienie mailowe, to w sytuacji gdy usługa wysyłania powiadomień będzie niedostępna proces składania zamówienia się wykona, a zadanie wysłania notyfikacji zostanie zakolejkowane i zrealizowane, gdy system będzie znów dostępny.
Marek Zając, Lead .NET Developer w Capgemini
Pomagają nam rozwiązania oparte o konteneryzację, wykorzystujące otwarte platformy Kubernetes lub Docker. Jest to jeden z przykładów podejścia DevOps. W ostatnich miesiącach nieodłącznym elementem tworzenia systemów IT w naszym dziale staje się paradygmat Infrastructure as Code, który pozwala przygotować całe środowisko aplikacji w przewidywalny i automatyczny sposób za pomocą dedykowanych skryptów oraz aplikacji (Terraform, Ansible, Chef).
Marek Zając, Lead .NET Developer w Capgemini
Zwinne podejście
Najtrudniejszym problemem jest zmiana wymagań w trakcie trwania projektu. Bardzo często zdarza się, że biznes tworzy nowe pomysły w trakcie procesu rozwoju oprogramowania. Dlatego ważne jest, aby projektować systemy z wykorzystaniem metodologii Agile. Wykorzystując zwinność, w procesie rozwoju, możemy szybko reagować na zmiany i ponownie projektować architekturę systemu, aby sprostać nowym wymaganiom.
Marek Zając, Lead .NET Developer w Capgemini
W trakcie prac okazało się, że moduły aplikacji muszą być wdrażane niezależnie od siebie. Często było tak, że gdy jeden moduł był gotowy do wdrożenia w drugim wciąż trwały prace, co wpływało negatywnie na czas dostarczania gotowego produktu do klienta.
Marek Zając, Lead .NET Developer w Capgemini
Przenieśliśmy moduły do osobnych aplikacji i pozwoliliśmy na wymianę informacji między nimi. Pozwoliło to klientowi na korzystanie z systemu, a nam na dalsze jego rozbudowywanie. Drugim istotnym elementem takiego rozwiązania jest to,że zespoły pracują równocześnie i wdrażają nowe funkcjonalności niezależnie od siebie.
Marek Zając, Lead .NET Developer w Capgemini
O Capgemini
Capgemini to światowy lider w dziedzinie doradztwa, usług technologicznych i transformacji cyfrowej, którego celem jest wprowadzanie czołowych i innowacyjnych rozwiązań oraz udostępnienie całej gamy nowych możliwości klientom w rozwijającym się informatycznym świecie cyfryzacji, chmury i platform. Capgemini, opierając się na swojej 50-letniej tradycji i szerokiej wiedzy branżowej, umożliwia organizacjom realizację ich ambicji biznesowych, udostępniając szereg usług, od strategii po działalność operacyjną. Capgemini kieruje się przekonaniem, że wartość biznesowa technologii pochodzi od ludzi i ma im służyć. To wielokulturowa firma, licząca 200 000 pracowników zatrudnionych w ponad 40 krajach. Grupa odnotowała światowy przychód na poziomie 12,8 mld EUR.
Zapraszamy na stronę www.capgemini.com. People matter, results count.