Organizowanie i optymalizacja pracy zespołów deweloperskich

Cele

  • Formalizacja procesów wytwarzania oprogramowania (przejrzystość, powtarzalność)
  • Uproszczenie utrzymania istniejących rozwiązań – starszych lub o złożonej architekturze
  • Zasadnicze skrócenie cyklu dostarczania nowych funkcji biznesowych
  • Mniejsza zależność terminów projektów i jakości rozwiązań od dostępności specjalistów
  • Większa elastyczność w rozdzielaniu zadań projektowych między członków zespołów
  • Usprawnienie bieżącej współpracy między deweloperami i testerami
  • Trwała eliminacja regresji starych błędów w nowych wersjach rozwiązań

Realizacja

Internetium pomaga zespołom deweloperskim lepiej wykorzystać dostępne kompetencje i czas. Mieliśmy (i stale mamy) okazję oraz przywilej przyglądać się pracy zespołów tworzących rozwiązania dla dużych i bardzo dużych firm z różnych branż, m.in. przemysłu, sektora finansowego i usługowego. Wiemy, co w polskich warunkach faktycznie działa, a co wygląda dobrze tylko na papierze. Potrafimy trafnie dobierać procedury i zakresy zadań do poziomu kompetencji zespołu, strategii zarządzania zespołem, istniejącej kultury pracy oraz charakteru typowych projektów. Wszystkie koncepcje, procedury, usprawnienia i pomysły testujemy także wewnętrznie w Internetium – w ramach zespołu deweloperów liczącego ponad 20 osób.

Dostarczamy i wdrażamy dwa gotowe frameworki: Internetium Framework for .NET do tworzenia wielowarstwowych aplikacji klient-serwer oraz Internetium Framework for Web do budowania rozwiązań z klientem przeglądarkowym. Wdrażamy je jako kompletne, w pełni skonfigurowane środowiska odzwierciedlające procedury zgodne z najlepszymi praktykami światowymi, które przyjęły się w warunkach średnich i dużych projektów realizowanych w Polsce. Oba frameworki implementują koncepcje architektury aplikacji wszechstronnie sprawdzone, w tym w środowiskach heterogenicznych Microsoft/Oracle. Pomimo całościowego charakteru obu frameworków każdy z nich można wdrażać fragmentarycznie i/lub etapami.

W ramach frameworków klienci uzyskują m.in.:

  • Kilkadziesiąt poprawnie zaimplementowanych wzorców projektowych – w postaci gotowych klas .NET
  • Wsparcie dla łatwej implementacji koncepcji Inversion of Control (IoC)
  • Gotowe implementacje usług bezpieczeństwa z kontrolą uprawnień do obiektów i czynności
  • Działającą szynę integracyjną i do wymiany danych z dowolnymi systemami zewnętrznymi
  • Zaawansowane kontrolki interfejsu użytkownika pozwalające na spójną i prostą realizację skomplikowanych scenariuszy, takich jak: walidacja, sortowanie, listy wirtualne, stronicowanie danych itp.
  • Narzędzia do zarządzania procesami produkcji oprogramowania skonfigurowane wg założeń
  • Bibliotekę aspektową Postsharp weryfikującą podczas kompilacji zgodność kodu z wzorcami
  • Sprawdzone w praktyce, efektywne metody pracy i współpracy w ramach zespołów
  • Dobre praktyki umożliwiające i wspierające automatyzację testów jednostkowych i testów UI

Rezultaty

  • Projekty skupiające się głównie na rozwoju funkcji biznesowych
  • Kolejne wersje rozwiązań nie powstają przez przepisywanie od nowa starego kodu
  • Brak konieczności utrzymania i rozwoju kodu związanego z architekturą i komunikacją
  • Mniejsza potrzeba troszczenia się o skalowanie budowanych rozwiązań
  • Automatyczna weryfikacja zgodności kodu z architekturą i innymi założeniami
  • Eliminacja znakomitej większości problemów i błędów związanych z bezpieczeństwem
  • Uproszczenie etapu testowania przez automatyzację: mniej pracy, więcej efektów
  • Skalowalność wszystkich warstw budowanych rozwiązań bez dodatkowych zabiegów