{"id":21248,"date":"2019-07-24T07:55:56","date_gmt":"2019-07-24T05:55:56","guid":{"rendered":"https:\/\/altkomsoftware.com\/software-as-a-journey-2\/"},"modified":"2025-04-01T10:53:00","modified_gmt":"2025-04-01T08:53:00","slug":"software-as-a-journey-2","status":"publish","type":"post","link":"https:\/\/stg.altkomsoftware.com\/pl\/blog\/software-as-a-journey-2\/","title":{"rendered":"Software as a Journey \u2013 wyprawa po lepsze oprogramowanie"},"content":{"rendered":"<p><strong>Powiedzmy to otwarcie i szczerze. Tworzenie oprogramowania nie jest \u0142atwe. Potwierdza to rzeczywisto\u015b\u0107 projektowa. Jak podaj\u0105 dane, najbardziej rzetelnego badania skuteczno\u015bci projekt\u00f3w <a href=\"https:\/\/www.projectsmart.co.uk\/white-papers\/chaos-report.pdf\" target=\"_blank\" rel=\"nofollow noopener\">The Standish&nbsp;Group International Inc. &#8211; Chaos&nbsp;Report<\/a>, tylko co pi\u0105ty projekt IT ko\u0144czy si\u0119 w planowanym czasie, bud\u017cecie i zakresie. Pozosta\u0142e, albo w og\u00f3le si\u0119 nie udaj\u0105, albo napotykaj\u0105 trudno\u015bci i przekroczenia. Dlaczego tak si\u0119 dzieje? Czy mo\u017cna to zmieni\u0107 i podnie\u015b\u0107 swoje szanse na sukces?<\/strong><\/p>\n<p>My wierzymy, \u017ce tak, a powodzenie projektu zale\u017cy od <strong>podej\u015bcia do jego realizacji<\/strong> oraz wspieraj\u0105cych je metod i narz\u0119dzi. Proces budowy dedykowanego oprogramowania postrzegamy jako wsp\u00f3ln\u0105 podr\u00f3\u017c z Klientem, podczas kt\u00f3rej d\u0105\u017c\u0105c do wsp\u00f3lnego celu, coraz lepiej si\u0119 poznajemy, rozumiemy i wspieramy. St\u0105d nazwa <strong>\u201eSoftware as a Journey\u201d<\/strong>, kt\u00f3ra trafnie oddaje nasz spos\u00f3b pracy.<\/p>\n<h2>Przepis na sukces w projekcie software\u2019owym<\/h2>\n<p>Na szcz\u0119\u015bcie czasy, kiedy po miesi\u0105cach pracy nad dokumentacj\u0105 i kolejnych nad implementacj\u0105, by w ko\u0144cu na testach odkry\u0107, \u017ce nikt nie pami\u0119ta po co i dla kogo powsta\u0142a wi\u0119kszo\u015b\u0107 funkcji, albo \u017ce system jest ju\u017c nikomu niepotrzebny, przechodz\u0105 powoli w zapomnienie.<\/p>\n<p>Nasz spos\u00f3b pracy, kt\u00f3ry sprawdzi\u0142 si\u0119 w dziesi\u0105tkach r\u00f3\u017cnych projektach opisali\u015bmy w koncepcji <strong>\u201cSoftware as a Journey\u201d<\/strong> . Czy jest on najlepszy? Nie m\u00f3wimy, \u017ce tak, ale potwierdzamy, \u017ce jest <strong>skuteczny<\/strong>.<\/p>\n<p>Dlaczego? Poniewa\u017c zak\u0142ada, \u017ce najwa\u017cniejsze jest <strong>zrozumienie prawdziwego celu biznesowego<\/strong> budowanego oprogramowania &#8211; w ten sam spos\u00f3b <strong>i<\/strong> przez wszystkich uczestnik\u00f3w projektu; a nast\u0119pnie <strong>ci\u0105g\u0142e pilnowanie<\/strong> i <strong>korygowanie jego aktualno\u015bci<\/strong>. Pomaga w tym iteracyjny tryb pracy, czyli cz\u0119ste i regularne opracowywanie i przekazywanie do u\u017cywania gotowych mniejszych fragment\u00f3w systemu w kolejno\u015bci zgodnej z priorytetami biznesu.<\/p>\n<p>Efekt? Zaczynaj\u0105c projekt z pewn\u0105 wizj\u0105, na ko\u0144cu mo\u017ce powsta\u0107 co\u015b zupe\u0142nie innego. Co\u015b, czego potrzebujesz teraz, a nie co\u015b, co wydawa\u0142o si\u0119 potrzebne na pocz\u0105tku prac. Dlatego bez wzgl\u0119du na to, jak szybko zmieni si\u0119 otoczenie rynkowe, oferta czy strategia firmy, <strong>budowany system b\u0119dzie u\u017cyteczny i przyniesie oczekiwane korzy\u015bci.<\/strong><\/p>\n<p>Jak to osi\u0105gn\u0105\u0107? Umiej\u0119tnie dobieraj\u0105c na ka\u017cdym etapie procesu wytw\u00f3rczego odpowiednie <strong>narz\u0119dzia, metody i techniki projektowe<\/strong>. W \u201eSoftware as a Journey\u201d proponujemy ich sprawdzony w praktyce zestaw, kt\u00f3ry najlepiej wspiera zwinne metody pracy. W zale\u017cno\u015bci od charakteru i z\u0142o\u017cono\u015bci projektu mo\u017cna skorzysta\u0107 ze wszystkich narz\u0119dzi lub dowolnie je dobiera\u0107.<\/p>\n<p>Jakie korzy\u015bci dla projektu niesie taki spos\u00f3b pracy? Jak zmienia poszczeg\u00f3lne etapy procesu wytw\u00f3rczego? Jak wp\u0142ywa na zesp\u00f3\u0142 i komunikacj\u0119? O tym w dalszej cz\u0119\u015bci artyku\u0142u.<\/p>\n<h2>Cel projektu<\/h2>\n<p>Zapewne znacie to z w\u0142asnego do\u015bwiadczenia: \u201eJest problem w firmie. Trzeba co\u015b zrobi\u0107, jaki\u015b system, kt\u00f3ry ten problem zaadresuje. Idziecie do IT, kt\u00f3re m\u00f3wi: Spiszcie wymagania biznesowe. My potem nad tym popracujemy. Zrobimy przetarg. Zbierzemy oferty. Spotkamy si\u0119 z wybranymi dostawcami.\u201d<\/p>\n<p>Dostawca wybrany, system wykonany. Tylko w mi\u0119dzyczasie zmieni\u0142 si\u0119 rynek, procesy lub przepisy. Odeszli ludzie, kt\u00f3rzy definiowali wymagania. Nowi pracownicy nie wiedz\u0105, po co powsta\u0142a cz\u0119\u015b\u0107 funkcjonalno\u015bci, podczas gdy brakuje tych naprawd\u0119 potrzebnych.<\/p>\n<p>\u201eSoftware as a Journey\u201d proponuje inaczej. Wystarczy na na pocz\u0105tku cel i og\u00f3lna wizja przebiegu procesu. Na warsztacie metod\u0105 <strong>Event Storming<\/strong> z udzia\u0142em biznesu, IT i dostawcy wsp\u00f3lnie, pod okiem do\u015bwiadczonego facylitatora, ustalany jest przebieg procesu biznesowego. Krok po kroku, a w zasadzie karteczka po karteczce, na \u015bcianie pojawiaj\u0105 si\u0119 kolejne zdarzenia i zale\u017cno\u015bci. Dodawane s\u0105 przyk\u0142ady i definicje pojawiaj\u0105cych si\u0119 poj\u0119\u0107 biznesowych. Powstaje og\u00f3lny obraz systemu, kt\u00f3rego cel i zakres wszyscy rozumiej\u0105 tak samo.<\/p>\n<p>Jest on przy okazji podstaw\u0105 do zbudowania <strong>\u201ebacklogu\u201d<\/strong>, czyli spriorytetyzowanej listy wszystkich zada\u0144, jakie nale\u017cy wykona\u0107 na poszczeg\u00f3lnych etapach (<strong>sprintach<\/strong>), aby otrzyma\u0107 finalny produkt.<\/p>\n<p>W czasie trwania projektu, w zale\u017cno\u015bci od zmieniaj\u0105cych si\u0119 warunk\u00f3w otoczenia biznesowego, elastycznie mo\u017cna zmienia\u0107 priorytety i zakres prac do wykonania w poszczeg\u00f3lnych sprintach &#8211; dodawa\u0107 nowe potrzebne funkcje lub rezygnowa\u0107 z tych, kt\u00f3re straci\u0142y aktualno\u015b\u0107.<\/p>\n<h2>Horyzont czasowy i bud\u017cet projektu<\/h2>\n<p>Wspomniany backlog wraz z map\u0105 historyjek u\u017cytkownik\u00f3w (<strong>story mapping<\/strong>), kt\u00f3re s\u0105 szczeg\u00f3\u0142owo opisanymi z perspektywy u\u017cytkownika poszczeg\u00f3lnymi funkcjami systemu, daje pogl\u0105d na to, jak b\u0119dzie rozk\u0142ada\u0142a si\u0119 kolejno\u015b\u0107 tworzenia tych funkcji i ile czasu nale\u017cy na to przeznaczy\u0107. Na tej podstawie szacowane s\u0105 og\u00f3lne ramy czasowe i bud\u017cetowe projektu.<\/p>\n<p>Najwa\u017cniejsz\u0105 pozycj\u0119 w takim harmonogramie zajmuje termin i zakres przygotowania <strong>MVP<\/strong>, czyli <strong>minimalnej wersji dzia\u0142aj\u0105cego oprogramowania<\/strong>. Przekazanie takiego wyposa\u017conego w najbardziej niezb\u0119dne funkcje produktu jego prawdziwym u\u017cytkownikom, pozwala szybko sprawdzi\u0107 czy system spe\u0142nia oczekiwania, czego brakuje lub co nale\u017cy poprawi\u0107. Uwagi te od razu uwzgl\u0119dniane s\u0105 w pracach nad kolejnymi funkcjonalno\u015bciami.<\/p>\n<p>Na bie\u017c\u0105co widzisz, co w ramach pierwotnie oszacowanej kwoty otrzymujesz w poszczeg\u00f3lnych sprintach i czy idzie to w po\u017c\u0105danym kierunku. W ka\u017cdym momencie mo\u017cesz zareagowa\u0107 i dokona\u0107 zmian.<\/p>\n<h2>Wsp\u00f3\u0142praca &#8211; zesp\u00f3\u0142 i komunikacja<\/h2>\n<p>Bliska wsp\u00f3\u0142praca strony zamawiaj\u0105cej i wykonuj\u0105cej system, ju\u017c od samego pocz\u0105tku, sprawia, \u017ce zaciera si\u0119 podzia\u0142 pomi\u0119dzy nimi i powstaje jeden wsp\u00f3lny zesp\u00f3\u0142. Za sukces czy niepowodzenia wszyscy czuj\u0105 si\u0119 odpowiedzialni. Nie ma przepychanek i wzajemnych oskar\u017ce\u0144. Jak to jest mo\u017cliwe?<\/p>\n<p>Spos\u00f3b pracy, kt\u00f3ry dzieli projekt na mniejsze, zazwyczaj 2-3 tygodniowe sprinty, wyznacza rytm spotka\u0144 i interakcji pomi\u0119dzy stronami. Ka\u017cdy nowy sprint rozpoczyna sesja planistyczna, podczas kt\u00f3rej wsp\u00f3lnie okre\u015blany jest cel i zakres prac (backlog) na najbli\u017csze tygodnie. Realizuj\u0105c poszczeg\u00f3lne zadania coraz dok\u0142adniej opisujemy wymagania. W dobrym ich rozumieniu pomagaj\u0105 przyk\u0142ady (np. wylicze\u0144) oraz makiety ekran\u00f3w, kt\u00f3re konstruujemy zgodnie z zasadami projektowania <strong>User Experience<\/strong>. Sprint ko\u0144czy si\u0119 prezentacj\u0105 kolejnej wersji coraz bogatszego funkcjonalnie dzia\u0142aj\u0105cego oprogramowania. Niezale\u017cnie, odbywaj\u0105 si\u0119 codziennie kr\u00f3tkie spotkania organizacyjne, na kt\u00f3rych po\u017c\u0105dana jest obecno\u015b\u0107 obu stron.<\/p>\n<p>Szczeg\u00f3lne znaczenie dla jako\u015bci i dynamiki ca\u0142ego projektu ma osoba po stronie zamawiaj\u0105cego <strong>Product Owner<\/strong>, kt\u00f3ra powinna by\u0107 obecna na ka\u017cdym spotkaniu, dost\u0119pna dla zespo\u0142u wykonuj\u0105cego i decyzyjna w sprawach dotycz\u0105cych aspekt\u00f3w funkcjonalnych budowanego systemu. To zaanga\u017cowanie, mo\u017ce by\u0107 czasoch\u0142onne, ale procentuje tym, \u017ce powstaje dok\u0142adnie to, co jest potrzebne.<\/p>\n<p>Cz\u0119sty, regularny kontakt i wymiana wiedzy scala zespo\u0142y w jeden wsp\u00f3\u0142pracuj\u0105cy i wsp\u00f3\u0142odpowiedzialny za powodzenie projektu team.<\/p>\n<h2>Obserwowanie post\u0119p\u00f3w prac<\/h2>\n<p>Pewno\u015b\u0107, \u017ce projekt zmierza w dobrym tempie, kierunku a system poprawnie dzia\u0142a, wynika z tego, \u017ce oprogramowanie budowane jest przyrostowo i przygotowywane tak, aby si\u0119 <strong>automatycznie testowa\u0142o<\/strong>. Dzi\u0119ki temu ka\u017cda kolejna wersja systemu jest dobrze sprawdzona. Dlatego mo\u017cna j\u0105 od razu wdra\u017ca\u0107 (r\u00f3wnie\u017c automatycznie) i odda\u0107 u\u017cytkownikom do pracy. Opinie lub zastrze\u017cenia os\u00f3b bezpo\u015brednio korzystaj\u0105cych z systemu, pozwalaj\u0105 szybko reagowa\u0107 i dokonywa\u0107 odpowiednich zmian i usprawnie\u0144.<\/p>\n<p>Codzienny kontakt oraz cykliczne sesje planowania i demonstrowania wytworzonego oprogramowania pozwalaj\u0105 pozna\u0107 tempo pracy zespo\u0142u. Wzrasta ono z czasem, wraz z lepszym poznaniem wzajemnych mo\u017cliwo\u015bci i ogranicze\u0144 oraz z coraz sprawniejsz\u0105 komunikacj\u0105.<\/p>\n<p>Maj\u0105c t\u0119 wiedz\u0119, \u0142atwiej monitorowa\u0107 post\u0119py oraz przewidywa\u0107 koszty poszczeg\u00f3lnych wyda\u0144. Bud\u017cet jest ca\u0142kowicie pod kontrol\u0105. Ju\u017c po kilku sprintach do\u015b\u0107 precyzyjnie udaje si\u0119 szacowa\u0107 czas i \u015brodki na kolejne wzbogacenia funkcjonalne i dzi\u0119ki temu racjonalnie podejmowa\u0107 decyzje biznesowe.<\/p>\n<h2 class=\"hero-blog__title\">Framework Software as a Journey &#8211; podsumowanie<\/h2>\n<p>Dobre <a href=\"https:\/\/stg.altkomsoftware.com\/pl\/dedykowane-oprogramowanie\/\"><strong>oprogramowanie dla firm<\/strong><\/a>, to takie, kt\u00f3re realizuje cele biznesowe. Takie, kt\u00f3rego wdro\u017cenie pozwoli biznesowi powiedzie\u0107 co i w jakim stopniu si\u0119 poprawi\u0142o, lub ile i czego uda\u0142o si\u0119 zaoszcz\u0119dzi\u0107.<\/p>\n<p>Dr\u00f3g do powstania takiego rozwi\u0105zania mo\u017ce by\u0107 wiele. \u201eSoftware as a Journey\u201d jest jedn\u0105 z nich. Sk\u0105d to wiemy? Pracuj\u0105c wed\u0142ug tych zasad, osi\u0105gamy wraz z naszymi klientami sukcesy w ich projektach.<\/p>\n<p>Nie ukrywamy, \u017ce dobre oprogramowanie powstanie tylko wtedy, gdy tworzone jest wsp\u00f3lnie, z zaanga\u017cowaniem obu stron projektu. Gdy w\u0142asne do\u015bwiadczenia zamawiaj\u0105cego i dostawcy \u0142\u0105cz\u0105 si\u0119 w <strong>now\u0105<\/strong>, wsp\u00f3ln\u0105 dla wszystkich <strong>wiedz\u0119. Prze\u0142o\u017cenie tej wiedzy na j\u0119zyk programowania<\/strong> daje po\u017c\u0105dany przez wszystkich efekt &#8211; <strong>dok\u0142adnie taki produkt, jakiego biznes potrzebuje w danej chwili<\/strong>.<\/p>\n<p>Wydobywanie wiedzy oraz zamiana jej w dzia\u0142aj\u0105cy system odbywa si\u0119 ze wsparciem u\u017cywanych przez nas, rekomendowanych technik i narz\u0119dzi. Dzi\u015b jest to zestaw, kt\u00f3ry najlepiej wspiera zwinne podej\u015bcia, m.in: <strong>Event Storming, User Story Mapping, Domain Driven Design <\/strong> czy <strong>Continuous Integration<\/strong> i <strong>Continuous Delivery<\/strong>. Niekt\u00f3re zapewne poznajecie &#8211; wspomnieli\u015bmy o nich w tek\u015bcie. Pozosta\u0142e s\u0105 po prostu \u201etwardymi\u201d kompetencjami nowoczesnego <a href=\"\/\"><strong>software house\u2019u<\/strong><\/a>, o kt\u00f3rych biznes powinien wiedzie\u0107, ale kt\u00f3rych zna\u0107 nie musi.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Powiedzmy to otwarcie i szczerze. Tworzenie oprogramowania nie jest \u0142atwe. Potwierdza to rzeczywisto\u015b\u0107 projektowa. Jak podaj\u0105 dane, najbardziej rzetelnego badania skuteczno\u015bci projekt\u00f3w The Standish&nbsp;Group International Inc. &#8211; Chaos&nbsp;Report, tylko co pi\u0105ty projekt IT ko\u0144czy si\u0119 w planowanym czasie, bud\u017cecie i zakresie. Pozosta\u0142e, albo w og\u00f3le si\u0119 nie udaj\u0105, albo napotykaj\u0105 trudno\u015bci i przekroczenia. Dlaczego tak [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[20,94,95,172,218,35,25,26,220],"topic":[],"blog-author":[],"class_list":["post-21248","post","type-post","status-publish","format-standard","hentry","category-bez-kategorii","tag-dedykowane-oprogramowanie","tag-dedykowane-oprogramowanie-dla-firm","tag-dedykowane-oprogramowanie-na-zamowienie","tag-oprogramowanie-dedykowane","tag-oprogramowanie-na-zamowienie","tag-producent-dedykowanego-oprogramowania","tag-producent-oprogramowania","tag-software-house","tag-uslugi-programistyczne"],"acf":[],"_links":{"self":[{"href":"https:\/\/stg.altkomsoftware.com\/pl\/wp-json\/wp\/v2\/posts\/21248","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stg.altkomsoftware.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/stg.altkomsoftware.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/stg.altkomsoftware.com\/pl\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/stg.altkomsoftware.com\/pl\/wp-json\/wp\/v2\/comments?post=21248"}],"version-history":[{"count":1,"href":"https:\/\/stg.altkomsoftware.com\/pl\/wp-json\/wp\/v2\/posts\/21248\/revisions"}],"predecessor-version":[{"id":39473,"href":"https:\/\/stg.altkomsoftware.com\/pl\/wp-json\/wp\/v2\/posts\/21248\/revisions\/39473"}],"wp:attachment":[{"href":"https:\/\/stg.altkomsoftware.com\/pl\/wp-json\/wp\/v2\/media?parent=21248"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stg.altkomsoftware.com\/pl\/wp-json\/wp\/v2\/categories?post=21248"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stg.altkomsoftware.com\/pl\/wp-json\/wp\/v2\/tags?post=21248"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/stg.altkomsoftware.com\/pl\/wp-json\/wp\/v2\/topic?post=21248"},{"taxonomy":"blog-author","embeddable":true,"href":"https:\/\/stg.altkomsoftware.com\/pl\/wp-json\/wp\/v2\/blog-author?post=21248"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}