Nasza metodologia

Albert Einstein zapytany co by zrobił, gdyby miał tylko jedną godzinę na uratowanie świata, odpowiedział: "Spędziłbym pięćdziesiąt pięć minut definiując problem i tylko pięć minut realizując rozwiązanie".  Nasza metodologia opiera się na bliźniaczym – kluczowe znaczenie ma strategia.

Jak działamy?

Jakość kodu ma fundamentalne znaczenie

Bądź w pełni przygotowany przed przystąpieniem do fazy programowania. Dokonywanie zmian w trakcie programowania może być korzystne, jednak często wydłuża proces i może doprowadzić do problemów z ukończeniem projektu. Przed zmianami w programowaniu należy wrócić do fazy projektowania. Dobry menedżer projektu ma kluczowe znaczenie dla utrzymania tej spójności.

Jak działamy?

Podejście odwrotnego wysiłku

ANEGIS Consulting działa na podstawie prostej zasady: dobry projekt jest kluczem do sukcesu. Zgodnie z tym opieramy naszą metodologię na modelu odwrotnego wysiłku, który wypracowaliśmy podczas pracy nad projektami sięgającymi od 50 do 27 000 użytkowników.

Korelacja między wysiłkiem i kosztem staje się ważna po dalszej fazie rozwoju. Doświadczenie pokazało, że większa ilość czasu i wysiłku poświęconego na przygotowanie zmniejsza całkowity koszt rozwoju i pozwala prawidłowe działanie systemu.

Podejście odwrotnego wysiłku

Proces projektowania

Wymagania

  • Wykonywane przez: ANEGIS lub lokalne zasoby klienta
  • Wejście: pomysły i wymagania klienta, GAP
  • Wyjście: dokument wymagań funkcjonalnych

Projekt funkcjonalny

  • Wykonywane przez: ANEGIS
  • Input: dokument wymagań funkcjonalnych
  • Wyjście: dokument projektu funkcjonalnego

1/2

Projekt techniczny

  • Wykonywane przez: ANEGIS
  • Wejście: dokument wymagań funkcjonalnych
  • Wyjście: dokument projektu funkcjonalnego

Prototyp

  • Wykonywane przez: ANEGIS
  • Wejście: dokument projektu technicznego
  • Wyjście: prototyp zaakceptowany przez klienta

2/2

Proces rozwoju programowania

Spotkanie w celu przekazania projektu

Konsultant funkcjonalny ANEGIS przekazuje projekt zespołowi architektury technicznej.

1/8

Ocena projektu

Architekt techniczny sprawdza czy projekt zawiera wszystkie wymagane informacje szczegółowe, w tym wszelkie informacje niezbędne do rozpoczęcia rozwoju oprogramowania, jednocześnie sprawdzając projekt pod kątem błędów i procedur technicznych.

2/8

Optymalizacja projektu

Jest to prawdopodobnie najbardziej krytyczna faza rozwoju projektu. Klient może oszczędzić ogromne kwoty dzięki zaproponowaniu alternatywnego, łatwiejszego technicznie rozwiązania, które nadal gwarantuje kluczowe, wymagane funkcjonalności. Często pomija się fakt, że podstawowe optymalizacje mogą się różnić w porównaniu ze stosowaniem standardowych wzorców interfejsu użytkownika lub ponownego używania standardowych aplikacji. Kwestie te powinny jednakże zostać starannie przeanalizowane przed przystąpieniem do dalszych prac.

3/8

Tworzenie specyfikacji technicznej

Kluczem do stworzenia specyfikacji technicznej jest upewnienie się, że architekt techniczny i programiści są zgodni. Krytyczne znaczenie ma przedstawienie jasnego projektu przy jednoczesnym upewnieniu się, że deweloper jest odpowiednio poinformowany. Dobrze przemyślany projekt techniczny znacznie zmniejsza prawdopodobieństwo kosztownych zmian w fazie rozwoju oprogramowania.

4/8

Spotkanie techniczne w celu zatwierdzenia projektu technicznego

Architekci rozwiązań czytają specyfikacje funkcjonalne i techniczne. Szczególnie istotne jest zadawanie pytań i zweryfikowanie kwestii z konsultantem i programistą tak, aby ocenić ich wzajemne zrozumienie. Ten krok pozwala na uniknięcie nieporozumień i zapobiega sytuacji, w której programista tworzy coś całkowicie odmiennego od tego, co zostało zaprojektowane przez konsultantów funkcjonalnych.

5/8

Tworzenie prototypu

Tworzenie prototypów daje użytkownikowi możliwość zobaczenia tego, co projektują konsultanci zanim projekt wejdzie w kluczową fazę programowania. Jest to okazja do wprowadzenia ostatecznych zmian. Prototypowanie ogranicza zakres zmian, ponieważ zmieniany jest sam projekt, a nie kod.

6/8

Programowanie

Zespół projektowy pisze kod zgodnie ze stworzoną specyfikacją.

7/8

Kontrola jakości

Architekci techniczni dokonują przeglądu kodu. Kod tworzony przez ANEGIS Consulting spełnia najwyższe normy, w celu zapewnienia, że niniejsze standardy są zawsze utrzymywane, stosujemy narzędzie Microsoft Lifecycle Services Customisation Analysis.

8/8

ALM/TFS

ANEGIS Consulting stosuje Visual Studio Application Lifecycle Management (ALM) do zarządzania cyklem życia produktu, zmniejszając w ten sposób ryzyko i zwiększając efektywność.

Visual Studio Team Foundation Server (TFS) pozwala nam na zastosowanie sprawdzonych praktyk w zakresie zarządzania cyklem życia produktu: zarządzanie kodem źródłowym w zespołach; programowanie, kompilowanie i testowanie aplikacji; planowanie projektów; śledzenie pracy i raportowania postępu prac.

TFS zapewnia kontrolę wersji, system kompilacji, CMMI, Scrum, narzędzia planowania agile i metryki do zarządzania projektami rozwoju oprogramowania. ANEGIS jest jedną z niewielu firm wdrażających Microsoft Dynamics AX, które stosują TFS i posiadają funkcjonujące skrypty kompilacji.

Zarządzanie kodem

Niezależnie od tego czy projekt w produkcji jest duży czy mały ANEGIS kontroluje wersję na możliwie najwcześniejszym etapie w cyklu życia projektu. Dla małych projektów jest ona wykorzystywana do poprawy indywidualnej wydajności i rozwiązywania trudnych problemów. Podczas pracy z zespołem lub przy złożonych projektach ANEGIS używa wspólnego systemu plików z kontrolą wersji, co umożliwia poprawę współpracy i przejrzystość.

Team Foundation Version Control (TFVC) jest scentralizowanym systemem kontroli wersji. Zazwyczaj członkowie zespołu mają tylko jedną wersję każdego pliku na swoim urządzeniu. Dane historyczne są przechowywane tylko na serwerze. Ponadto oddziały oparte są na ścieżkach i tworzone na serwerze.

ANEGIS działa w środowisku rozproszonym; oznacza to, że każdy programista posiada osobistą maszynę wirtualną z zainstalowanym środowiskiem Microsoft Dynamics AX 2012 Server. Maszyny wirtualne są zarządzane przez Hyper-V Manager. Liczba maszyn wirtualnych na komputerze każdego programisty jest połączona z liczbą obsługiwanych klientów, ale nie powinna przekraczać trzech lub czterech w danym momencie. ANEGIS używa jednego z dwóch modeli dostarczanych przez TFVC: check-out/check-in w serwerowych obszarach roboczych. Przed wprowadzeniem zmian członkowie zespołu publicznie wykonują pobranie (checkout) plików. Większość operacji wymaga od programistów podłączenia do serwera.

1/4

Zarządzanie kompilacjami

Dzięki Team Foundation Build ANEGIS tworzy i zarządza procesami związanymi z buildem, które automatycznie kompilują i testują aplikacje.

Oprócz pliku modelowego Microsoft Dynamics AX proces ten umożliwia tworzenie zarówno pliku dziennika zawierającego opis całego procesu kompilacji, jak i wynik testu. ANEGIS używa systemu kompilacji do wspierania strategii ciągłej integracji i do zapewnienia jeszcze bardziej rygorystycznej kontroli jakości w celu uniknięcia sytuacji, w której złej jakości kod "psuje kompilację".

Środowisko kompilacji
2/4

Zarządzanie pracą

Centralnym elementem każdego projektu wdrożenia w TFS jest artefakt ‘Team Project’. Zawiera on dobrze zorganizowaną strukturę hierarchiczną wszystkich zależnych elementów roboczych, opisując wszystkie informacje wymagane do uruchomienia projektu.

Elementy takie jak funkcje, żądania zmian i błędy zapewniają określoną część pracy do wdrożeń w systemie.

Po zakończeniu procesu weryfikacji wymagania są wykonywane i przypisywane do ostatecznych zadań. Przypadki testowe obejmują manualne testowanie każdego wymagania.

Zarządzanie pracą
3/4

Zarządzanie testami

ANEGIS stosuje program Microsoft Test Manager zawarty w narzędziu Application Lifecycle Management (ALM) w celu zdefiniowania i zarządzania planami testów. Niniejsze plany testów są przechowywane na serwerze Team Foundation Server (TFS) i są ściśle zintegrowane z jego kompilacją.

Podczas procesu testowania istnieje możliwość tworzenia i przechowywania elementów roboczych błędów przeznaczonych do dalszej analizy. Gdy udowodniony zostanie błąd, tworzony jest nowy wymóg i określane jest odpowiadające mu zadanie programistyczne. Zarządzanie testami obejmuje następujące kroki: planowanie, tworzenie, uruchamianie, śledzenie wyników i reagowanie.

Zarządzanie testami w projekcie
4/4