Close

Tworzenie oprogramowania

Poznaj podstawy tworzenia oprogramowania


Oprogramowanie zjadło świat. Niedługo po tym, jak w 2011 roku Marc Andreessen wygłosił słynne stwierdzenie, że „oprogramowanie zjada świat”, świat został przez nie pochłonięty. We współczesnej gospodarce cyfrowej każda firma intensywnie korzysta z oprogramowania. „Amazon może i jest największym na świecie sprzedawcą detalicznym, ale nie jest firmą handlową — to firma zajmująca się oprogramowaniem”, stwierdził były dyrektor generalny Amazon, Jeff Bezos. „Podstawa naszej działalności to nie zawartość brązowych pudełek”, powiedział. „Jest nią oprogramowanie, które wysyła te brązowe pudełka w dalszą drogę”.

Pętla nieskończoności DevOps

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


Żarówka z orbitami

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.

Prosty przepływ pracy

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.

Zapisywanie kodu

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.

Wersja 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.

Koła zębate

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.

błąd

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/CD

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

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


Agile

Agile to iteracyjne podejście do zarządzania projektami i tworzenia oprogramowania, które pomaga zespołom dostarczać korzyści klientom szybciej i przy mniejszej liczbie problemów. Metodologie Agile są niezwykle popularne w branży oprogramowania, ponieważ pozwalają zespołom na bycie elastycznymi, dobrze zorganizowanymi i zdolnymi do reagowania na zmiany.

DevOps

DevOps to zestaw obejmujący praktyki, narzędzia i filozofię kulturową, które automatyzują i integrują procesy między zespołami programistycznymi a operacyjnymi. Kładzie on nacisk na pozycję zespołu, komunikację międzyzespołową i współpracę oraz automatyzację technologiczną.

Ciągła integracja i ciągłe dostarczanie (CI/CD)

Ciągła integracja to praktyka automatyzacji integracji zmian kodu w projekcie tworzenia oprogramowania. Pozwala ona programistom często scalać zmiany kodu w centralnym repozytorium, gdzie wykonywane są kompilacje i testy.

Ciągłe dostarczanie stanowi rozszerzenie ciągłej integracji i oznacza automatyczne wdrażanie zmian kodu w środowisku testowania/produkcyjnym. Odbywa się ono zgodnie z pipelinem ciągłego dostarczania, w ramach którego zautomatyzowane kompilacje, testy i wdrożenia są zorganizowane jako jeden przepływ pracy w wydaniu.

Mikrousługi

Architektura mikrousług, zwana również po prostu mikrousługami, to podejście do tworzenia aplikacji w formie szeregu niezależnie wdrażanych, zdecentralizowanych, autonomicznie opracowywanych usług. Te usługi są luźno powiązane, wdrażane niezależnie od siebie oraz łatwe w utrzymaniu.

Dzięki architekturze mikrousług programiści mogą organizować się w mniejsze zespoły specjalizujące się w różnych usługach, korzystające z różnych rozwiązań technologicznych oraz przeprowadzające niezależne wdrożenia.

Agile

Agile to iteracyjne podejście do zarządzania projektami i tworzenia oprogramowania, które pomaga zespołom dostarczać korzyści klientom szybciej i przy mniejszej liczbie problemów. Metodologie Agile są niezwykle popularne w branży oprogramowania, ponieważ pozwalają zespołom na bycie elastycznymi, dobrze zorganizowanymi i zdolnymi do reagowania na zmiany.

DevOps

DevOps to zestaw obejmujący praktyki, narzędzia i filozofię kulturową, które automatyzują i integrują procesy między zespołami programistycznymi a operacyjnymi. Kładzie on nacisk na pozycję zespołu, komunikację międzyzespołową i współpracę oraz automatyzację technologiczną.

Ciągła integracja i ciągłe dostarczanie (CI/CD)

Ciągła integracja to praktyka automatyzacji integracji zmian kodu w projekcie tworzenia oprogramowania. Pozwala ona programistom często scalać zmiany kodu w centralnym repozytorium, gdzie wykonywane są kompilacje i testy.

Ciągłe dostarczanie stanowi rozszerzenie ciągłej integracji i oznacza automatyczne wdrażanie zmian kodu w środowisku testowania/produkcyjnym. Odbywa się ono zgodnie z pipelinem ciągłego dostarczania, w ramach którego zautomatyzowane kompilacje, testy i wdrożenia są zorganizowane jako jeden przepływ pracy w wydaniu.

Mikrousługi

Architektura mikrousług, zwana również po prostu mikrousługami, to podejście do tworzenia aplikacji w formie szeregu niezależnie wdrażanych, zdecentralizowanych, autonomicznie opracowywanych usług. Te usługi są luźno powiązane, wdrażane niezależnie od siebie oraz łatwe w utrzymaniu.

Dzięki architekturze mikrousług programiści mogą organizować się w mniejsze zespoły specjalizujące się w różnych usługach, korzystające z różnych rozwiązań technologicznych oraz przeprowadzające niezależne wdrożenia.

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.

Logo Jira Software

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.

Logo Bitbucket

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.

Logo Compass

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.

Atlassian Open DevOps

W Open DevOps zespoły mają wszystko, czego potrzebują do tworzenia i obsługi oprogramowania — w standardzie. Podstawowymi składnikami Open DevOps są Jira Software, Confluence, Bitbucket i Opsgenie. Za pomocą jednego kliknięcia zespoły mogą łatwo dodać potrzebne narzędzia, takie jak GitHub lub GitLab.

Atlassian Open DevOps

W Open DevOps zespoły mają wszystko, czego potrzebują do tworzenia i obsługi oprogramowania — w standardzie. Podstawowymi składnikami Open DevOps są Jira Software, Confluence, Bitbucket i Opsgenie. Za pomocą jednego kliknięcia zespoły mogą łatwo dodać potrzebne narzędzia, takie jak GitHub lub GitLab.