Projektowanie i wdrożenia procesów rozwoju oprogramowania

Cele

  • Przekształcenie procesów nieformalnych w powtarzalne procesy inżynierskie
  • Standaryzacja na każdym etapie cyklu życia tworzonych rozwiązań
  • Kształt procesów dostosowany do charakteru typowych projektów
  • Procesy uwzględniające istniejącą kulturę pracy i ograniczenia zasobowe
  • Łatwe utrzymanie rozwiązań, nawet po bardzo wielu cyklach zmian i poprawek
  • Możliwość rzetelnej oceny terminów wykonania kolejnych etapów prac
  • Sprawnie działająca pętla zwrotna między testerami i programistami
  • Znacząca lub całkowita automatyzacja procesów testowania

Realizacja

Na podstawie rozmów z pracownikami działu rozwoju oprogramowania, analizy dokumentacji i przeglądu istniejącego środowiska oceniamy istniejący stan faktyczny procesów produkcji oprogramowania. Następnie, wspólnie z Klientem, ustalamy listę priorytetów, na podstawie której proponujemy ogólny zarys procesów sformalizowanych i potencjalne priorytety ich wdrażania. Po ostatecznym zatwierdzeniu listy przygotowujemy projekty procedur szczegółowych wraz z propozycjami sprawdzonych narzędzi (komercyjnych i open source), dzięki którym stosowanie procedur w codziennej praktyce będzie pochłaniać niewiele czasu.

Usługi obejmują zwykle wdrożenie i konfigurację w/w narzędzi w środowisku produkcyjnym, a także szkolenia i warsztaty, dzięki którym deweloperzy są w stanie w pełni wykorzystać ich możliwości.

Projektowane przez nas procesy uwzględniają m.in.:

  • Wykorzystanie preferowanych przez Klienta frameworków
  • Wykorzystanie stosowanych przez Klienta metodyk projektowych
  • Wykorzystanie preferowanych przez Klienta rozwiązań do zarządzania kodem, dokumentacją itd.

Rezultaty

  • Obiektywny pomiar i kontrola postępu prac na każdym etapie procesu produkcji
  • Realistyczne zarządzanie dostępnymi zasobami wewnętrznymi i zewnętrznymi
  • Redukcja ogólnej liczby błędów i eliminacja powtarzających się błędów (regresja)
  • Mniejsza liczba nieplanowanych przestojów środowiska produkcyjnego
  • Mniejsze obciążenie zespołu utrzymaniem i rozwojem architektury rozwiązań
  • Większa liczba dostarczanych funkcji biznesowych w jednostce czasu