Jak pracujemy

Po pierwsze

Komunikacja

Spotkania

W zależności od wybranego modelu współpracy organizujemy wraz z klientem cykliczne spotkania, na których zbieramy wymagania i pokazujemy postępy naszej pracy. W metodologii zwinnej są one częstsze i zwykle w ciągu jednego tygodnia wspólnie uczestniczymy w:

5x

Daily

1x

Weekly wraz z demonstracją

1x

Retrospektywa i planowanie

2x

Zbieranie wymagań
Narzędzia pracy grupowej

Nasi klienci otrzymują pełny dostęp do naszego Azure DevOps, gdzie na bieżąco mogą sprawdzać postępy w projekcie. Używamy również Sharepoint wraz z Office Online, a także ownCloud na potrzeby udostępniania dokumentów i współpracy nad nimi.

#slack

Przeważnie używamy Slack-a jako głównej platformy komunikacyjnej. Od codziennych wiadomości, przez rozmowy głosowe po prezentacje. Dobrze uporządkowane kanały pozwalają zespołowi i klientowi skupić się na pracy i zadaniach bez przerywania ich niepotrzebną komunikacją.

Wiadomości
Rozmowy
Prezentacje
Współdzielenie
Następnie

Dokumentacja

Zaczynamy od podstawowych wymagań robiąc z nich luźne notatki. Następnie tworzymy projekt wymagań wysokiego i niskiego poziomu używając do tego Wiki wbudowanej w Azure DevOps. Kolejnym krokiem jest odwzorowanie wszystkich procesów biznesowych, algorytmów i przepływów za pomocą narzędzia draw.io. Makiety ramkowe tworzymy z pomocą Axure lub Sketch. Tego drugiego narzędzia używamy również do tworzenia makiet wizualnych w połączeniu z Adobe CC. Na koniec generujemy automatyczną dokumentację kodu na podstawie komentarzy i metadanych używając do tego Sandcastle.

Wymagania
Dokumentacja
Diagramy
Makiety ramkowe
Makiety
Dokumentacja kodu
Teraz

Backlog

Sprinty

Każdy sprint wymaga starannego zaplanowania, włączając w to pojemność zespołu, listę zadań, priorytetów, wartości biznesowych czy terminów doręczenia gotowej funkcjonalności. Tworzymy więc pełny plan pracy dla wszystkich członków zespołu z estymatami każdego z zadań. W ten sposób możemy być spokojni, że wszystko zostanie dostarczone na czas.

Pojemność zespołu
Planowanie
Retrospektywa
Priorytety
Tablice

Używamy tablic SCRUM w Azure DevOps do zarządzania zadaniami i śledzenia ich statusów. Wielopoziomowa hierarchia zadań jest odwzorowana za pomocą różnych tablic. To rozwiązanie ułatwia project managerom i project ownerom zrozumienie całego procesu developmentu i zarządzanie nim. Dzielimy tablice również za pomocą linii horyzontalnych odwzorowując tym samym obszary projektowe.

Zawsze aktualne dane
Szczegółowe logi
Czas realizacji zgodny z estymatami
Duża efektywność w stosunku do kosztów
Monitorowanie czasu

Używamy narzędzia od 7pace - TimeTracker. To kompleksowe rozwiązanie do monitorowania czasu i dostarczania szczegółowych raportów. Dzięki temu każdy projekt monitorujemy z wielu perspektyw - możemy nie tylko przeglądać raporty poszczególnych członków zespołu, ale także sprawdzić ile czasu zajęły poszczególne etapy od projektowania po development i testy.

Wreszcie

Development

Każdego dnia tworzymy tysiące linii kodu, który jest bezpieczny, efektywny i zoptymalizowany do potrzeb naszych klientów. Rozwijamy przy tym nasze wewnętrzne SDK dzięki któremu coraz więcej funkcjonalności dostarczamy wyciągając je z paczki obniżając tym samym koszty projektów. Zobacz jak dzieje się nasza magia.

Oto jest!

Wdrożenie

Zanim gotowe rozwiązanie trafi na serwery produkcyjne testujemy je w środowisku wewnętrznym. W każdym momencie mamy dostęp do w pełni działającej aplikacji, którą możemy testować i używać do celów demonstracyjnych. Możemy zaimportować do niego prawdziwe dane lub użyć zanonimizowanych danych testowych. Wdrożenie jest procesem w pełni automatycznych dzięki Azure Pipelines i Azure Artifacts, więc koszt każdego kolejnego wydania jest bliski zeru. Dzięki temu podejściu możemy przygotować się również do płynnego wdrożenia z zerową niedostępnością rozwiązania w środowisku produkcyjnym. Od 2019 roku wszystkie nasze rozwiązania wdrażamy z wykorzystaniem kontenerów zgodnych z Docker i Kubernetes.

Gdy kurz opadnie

Wsparcie

Utrzymanie gotowego rozwiązania w nienagannym stanie jest równie istotne, co sam proces jego projektowania. Testujemy nasze rozwiązania na wiele sposobów używając przy tym wielopoziomowych scenariuszy. Począwszy od testów jednostkowych kodu, przez testy automatyczne i manualne, integracyjne czy penetracyjne. Jednak nawet najlepiej przetestowane rozwiązanie wymaga wsparcia i utrzymania w środowisku produkcyjnym. Nie dlatego, że ma wady - dlatego, że Świat idzie do przodu, a środowisko ciągle się zmienia. Wypadki mają z kolei to do siebie, że zdarzają się w najmniej oczekiwanych momentach. Nie możemy ich zapobiec, ale możemy się na nie przygotować i w krytycznym momencie szybko rozwiązać problem.

Monitorowanie

Monitorujemy w czasie rzeczywistym serwery, infrastrukturę, dostępność, opóźnienie, użytkowników. Tworzymy heat-mapy i raporty błędów. Wszystkie te dane mogą pomóc usprawnić nie tylko rozwiązanie, ale cały biznes i przede wszystkim - rozwiązać potencjalne problemy nawet przed ich wystąpieniem.

Dostępność
Wydajność
Błędy
Użytkownicy
Kopia zapasowa i przywracanie

Zaawansowane plany kopii zapasowej to absolutnie niezbędna rzecz w każdym projekcie. Od backupów baz danych, przez krytyczne dane użytkowników, aplikację, środowisko i ustawienia. Należy jednak pamiętać, że dobra kopia zapasowa to również szybkie przywracanie w razie awarii.

Dane
Rozwiązanie
Konfiguracja
Środowisko
Aktualizacje

Zawsze aktualne środowisko to bardzo ważna sprawa. Poprawki bezpieczeństwa mogą utrzymać nas z dala od problemów.

Poprawki bezpieczeństwa
Polityka haseł
Zabezpieczenie przed DDoS
Aktualizacje środowiska
Jesteś gotowy, żeby wycenić swój projekt?
Dziękujemy, Twoja wiadomość została wysłana. Coś poszło nie tak, spróbuj ponownie!