Dowiedz się więcej
Poznaj i zrozum jak wygląda
Technologia
Elastyczne zespoły
Sztuczna inteligencja
Cloud / chmura
Rozwój oprogramowania
Projektowanie produktów cyfrowych
Wybrane technologie
Usługi serwisowe IT
Fintech
Przemysł i produkcja
Rozwiązania dedykowane
Oprogramowanie produkcyjne
Rozszerzona rzeczywistość
Oprogramowanie dla branży HoReCa
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:
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.
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ą.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Zawsze aktualne środowisko to bardzo ważna sprawa. Poprawki bezpieczeństwa mogą utrzymać nas z dala od problemów.