Na czym polega tworzenie oprogramowania?
Tworzenie oprogramowania oznacza projektowanie, opracowanie dokumentacji, programowanie, testowanie oraz utrzymywanie dostarczanego oprogramowania. Na podstawie kombinacji tych działań tworzy się pipeline przepływu pracy, czyli sekwencję kroków, których realizacja pozwala uzyskać wysokiej jakości wyniki. Taki pipeline jest nazywany cyklem tworzenia oprogramowania.
Chociaż istnieje wiele niuansów, cykl tworzenia oprogramowania na ogół zawiera wspólne elementy, które wymieniono poniżej.
Etapy cyklu tworzenia oprogramowania
Odkrywanie
Powstaje wizja projektów, są one przygotowywane i ustala się ich priorytety. Metodologia, taka jak Agile, pomaga w kierowaniu procesem pracy nad projektem. Praktyki, takie jak DevOps, decydują o przebiegu działań podczas programowania i eksploatacji. Confluence jest doskonałym narzędziem do opracowywania dokumentacji badawczej dotyczącej produktu i udostępniania plików projektowych na tym etapie.
Planowanie
Wskazuje się interesariuszy, ustala budżet i zapotrzebowanie na infrastrukturę. Dokumenty projektowe opracowane w fazie koncepcyjnej dzieli się na praktyczne zadania. Do zarządzania tymi listami zadań, ich śledzenia i porządkowania służą produkty Jira Software i Trello.
Kompilowanie i testowanie
Zespoły programistyczne pracują nad utworzeniem oprogramowania gotowego do wdrożenia na produkcji, które spełnia wymagania i uwzględnia informacje zwrotne. Pipeline'y CI/CD zapewniają wydajne środowisko programistyczne. Bitbucket oferuje oparte na współpracy narzędzia do przeglądu kodu oraz pipeline'y CI/CD, które można włączyć w proces przeglądu kodu.
Wdrażanie
Po napisaniu, przetestowaniu i scaleniu kodu przychodzi czas na jego udostępnienie. W pipeline'ach CI/CD w Bitbucket można to zrobić jednym kliknięciem. Aktywny kod produkcyjny będzie potrzebował miejsca do działania. Warto rozważyć usługę hostingu w chmurze, taką jak Amazon AWS, Google Cloud Platform lub Microsoft Azure.
Obsługa
W przypadku aktywnych projektów oprogramowania wymagane jest zapewnienie stałego wsparcia i obsługi. System Jira Service Management oferuje zaawansowane narzędzia do rejestrowania, klasyfikowania i rozwiązywania wniosków klientów przesyłanych do działu wsparcia.
Obserwacja
Z zarządzaniem incydentami mamy do czynienia wówczas, gdy zespoły programistyczne i odpowiedzialne za eksploatację systemów informatycznych reagują na niezaplanowane zdarzenia i przywracają usługi przy użyciu niezawodnych metod ustalania priorytetów incydentów i szybkiego doprowadzania do ich rozwiązania.
Praktyki stosowane w całym cyklu tworzenia oprogramowania
Ciągłe informacje zwrotne
Zespoły powinny oceniać każde wydanie i generować raporty w celu ulepszania przyszłych wydań, prosić klientów o opinie na temat korzyści i wpływu funkcji produktu oraz dzielić się wynikami biznesowymi z interesariuszami. Gromadząc stale przekazywane informacje zwrotne, zespoły mogą doskonalić swoje procesy i zwiększać korzyści dla klientów.
Bezpieczeństwo
Aplikacje mają coraz większą złożoność i skalę, dlatego tradycyjne kontrole jakości i zabezpieczenia, „dokładane” na końcu cyklu wydawania, nie wystarczają już do zapewnienia bezpieczeństwa oprogramowania. Zamiast tego testy należy uwzględnić w całym cyklu tworzenia oprogramowania w celu zminimalizowania liczby błędów w kodzie.
Kluczowe cechy skutecznego procesu tworzenia oprogramowania
Narzędzia do tworzenia oprogramowania
Narzędzia do tworzenia oprogramowania mogą pomóc na każdym etapie cyklu tworzenia oprogramowania, w tym podczas prowadzenia praktyk Agile i DevOps, zarządzania kodem, stosowania automatyzacji z wykorzystaniem procesów CI/CD, reagowania na incydenty, testowania i nie tylko.
Jira Software
Jira Software to wiodące rozwiązanie do tworzenia oprogramowania dla zespołów Agile. Jira Software jako narzędzie do zarządzania projektami umożliwia zespołom Agile bezproblemowe planowanie, śledzenie postępów i dostarczanie światowej klasy oprogramowania.
Bitbucket
Bitbucket to nie tylko zarządzanie kodem w systemie Git. Produkt ten umożliwia zespołom planowanie projektów, współpracę w zakresie tworzenia kodu, testowanie go i wdrażanie w jednym miejscu.
Compass
Compass to platforma środowiska programistycznego, która ułatwia nawigowanie po rozproszonej architekturze, gromadząc w centralnej lokalizacji z możliwością wyszukiwania niepowiązane informacje o wynikach działań inżynieryjnych i zespołach nad nimi współpracujących.