Manifest zwinnego wytwarzania oprogramowania, czyli ludzie i interakcje oraz empatia w świecie IT.

Przed rokiem 2000 ogromną zmorą programistów (i nie tylko) było tworzenie oprogramowania zgodnie z narzuconymi terminami, wymaganiami, masą papierologii, odpowiedzią na te i inne problemy był Manifest Agile, czyli krótki dokument opierający się o 4 wartości i 12 zasad zwinnego tworzenia oprogramowania. Agile Manifesto w roku 2023 skończy 22 lata. Dokument ten jest dziełem 17 praktyków rozwoju oprogramowania, którzy zauważyli rosnące zapotrzebowanie na alternatywę dla opartych na dokumentacjach, ciężkich i nieelastycznych  procesach tworzenia oprogramowania. W tamtym czasie programiści czuli się przytłoczeni z powodu coraz krótszych terminów i rosnącej presji, by produkować więcej oprogramowań przy mniejszych zasobach. Szukali sposobu, by być bardziej elastycznym i lepiej reagować na zmieniające się potrzeby klientów.

Równocześnie należy wziąć pod uwagę, że agile nie narodziło się z dniem powstania Agile Manifesto. Wcześniej praktycy stosowali Agile fragmentarycznie. Ale Manifest Agile skonkretyzował tę ideę.

Jaka jest historia Manifestu Agile?

W lutym roku 2001, 17 praktyków zajmujących się tworzeniem oprogramowania zebrało się w ośrodku narciarskim w Utah. Oczywiście spotkali się oni tam w celach rekreacyjnych, jednak spotkanie to dało początek rozwiązaniu wielu problemów. 

Pomimo bardzo różnych opinii na temat właściwego podejścia do tworzenia oprogramowania, zespół był zgodny co do jednej rzeczy: status quo nie działa. 

Sama grupa składała się z 17 członków i nazywała się „The Agile Alliance”. Z kolei w wyniku zjazdu w Utah powstał krótki dokument oparty na 4 wartościach i 12 zasadach zwinnego tworzenia oprogramowania, nazwany Manifest Agile. 

Zanim przejdę do omówienia, co składa się na Manifest Agile, omówię, czym jest empatia oraz kompetencje miękkie, które są niezbędnym budulcem zespołów i produktu wywodzących się spod ich rąk. 

Czym jest empatia? 

Empatia jest niesłychanie istotną umiejętnością, to właśnie ona daje nam możliwość życia w społeczeństwie, dzięki empatii, odpowiadamy na problemy innych, ale również jesteśmy w stanie wczuć się w sytuację drugiej osoby.  Jeśli mówimy o empatii, mówi o współodczuwaniu. Pojęcie empatii dzielimy na dwa rodzaje tj. na empatię poznawczą oraz empatię emocjonalną. 

Empatia poznawcza jest umiejętnością rozumienia myślenia innych osób i przyjęcia perspektywy innych osób. Dzięki temu rodzajowi empatii możemy wyobrażać sobie perspektywę myślową należącą do innej osoby, potrafimy zrozumieć sposób myślenia innych. Z drugiej strony mamy empatię emocjonalną, która jest zdolnością odczuwania stanów psychicznych innego człowieka. Zatem dzięki empatii emocjonalnej mamy możliwość współodczuwania stanów emocjonalnych.  Empatia to podstawa funkcjonowania ludzi w grupie i społeczeństwie. Bez empatii budzi się agresja, wrogość, kłamstwa i hejt. Empatii uczymy się od maleńkości, to rodzice na początku naszej drogi pokazują nam, czym ona jest i jak się nią posługiwać. Jako dorosłe osoby wykorzystujemy empatię zarówno w życiu osobistym, jak i zawodowym, gdzie pomaga nam ona na współpracę, zarówno z zespołem, jak i zewnętrznymi podmiotami. 

Kompetencje miękkie potrzebne w IT

Zapomnij o micie społecznie niezręcznego specjalisty IT. Chociaż silne umiejętności techniczne są niezbędne na każdym stanowisku informatycznym, ważne są również umiejętności miękkie. Jeśli ubiegasz się o pracę w IT, zaplanuj wykazanie się umiejętnościami interpersonalnymi, takimi jak komunikacja, praca zespołowa i zarządzanie projektami.

Nawet jeśli jesteś  introwertykiem  lub wolisz pracować na własną rękę, prawdopodobnie masz już wiele z tych umiejętności. Kluczem jest rozpoznanie ich znaczenia i nauczenie się, jak prezentować je w CV, listach motywacyjnych i podczas rozmów kwalifikacyjnych.

Komunikacja — Specjaliści IT muszą umieć skutecznie komunikować się z członkami swojego zespołu, klientami i kierownictwem. Jasna i przekonująca komunikacja jest niezbędna zarówno w formie pisemnej, jak i ustnej. Aby odnieść sukces w tej dziedzinie, musisz umieć dzielić się swoimi pomysłami i odkryciami z innymi w sposób dla nich zrozumiały.

Kreatywność — rynek poszukuje osoby, które potrafią myśleć w sposób pomysłowy i kreatywny. Dzieje się tak, ponieważ pomysłowe i kreatywne myślenie jest niezbędne do rozwiązywania problemów. Specjaliści techniczni, którzy potrafią wymyślać unikalne rozwiązania problemów, są bardzo poszukiwani na obecnym rynku pracy. Specjaliści IT muszą być tego świadomi i rozwijać swoją kreatywność.

Determinacja  — większość ludzi wie, że udane projekty informatyczne wymagają wielu starannych planów i przygotowań. Jednak wiele osób nie zdaje sobie sprawy, że jednym z najważniejszych aspektów udanego projektu jest posiadanie realistycznego harmonogramu i budżetu od samego początku. Dzięki temu będziesz mógł osiągnąć swój cel bez żadnych niespodzianek i opóźnień. Twój pracodawca będzie pod wrażeniem twojej umiejętności planowania i realizacji projektu na czas i w ramach budżetu.

Elastyczność  —  aby odnieść sukces w branży IT, musisz być elastyczny i otwarty na sugestie i opinie. Pracodawcy cenią sobie elastyczność, ponieważ pozwala im ona szybko dostosowywać się do zmian. Podobnie klienci doceniają, kiedy ich sugestie są traktowane poważnie i szybko wdrażane. Bycie otwartym na informacje zwrotne pozwala na doskonalenie swojej pracy i utrzymywanie zadowolonych klientów.

Przywództwo  — przywództwo to jedna z  umiejętności, jakie są bardzo istotne w IT. Tymi zdolnościami muszą wykazywać się szczególnie osoby na wyższych stanowiskach, prowadzące projekt. Dla kompetencji tej   istotne jest delegowanie zadania i skupienie na celu końcowym. Ważna jest też umiejętność skutecznego komunikowania się z klientami i dostawcami.

Negocjacja  — jedną z kompetencji miękkich są umiejętności negocjacyjne. Oznaczają one zdolność do osiągnięcia porozumienia, które zadowoli obie strony, co może być trudne, ale z pewnością jest cenną umiejętnością.  Wiele osób uważa, że umiejętności negocjacyjne są niezbędne do rozwoju ich kariery.

Prezentacja ​​— prowadzenie prezentacji może być denerwujące, ale jest to umiejętność niezbędna dla każdego, kto zajmuje się biznesem. Musisz umieć jasno wyrazić swoje pomysły innym. Nawet jeśli Twoje pomysły są świetne, nikt nie będzie w stanie ich docenić, jeśli nie będziesz umieć ich skutecznie przekazać. Praca nad swoją przystępnością, komunikacją werbalną i znajomością narzędzi do prezentacji pomoże ci wzmocnić umiejętności prezentacyjne.

Rozumiejąc już, iż zarówno empatia, jak i umiejętności miękkie są niezbędne dla tworzenia zespołu, który potrafi słuchać wzajemnie, dobrze się komunikuje, przyjrzyjmy się bliżej Manifest Agile. 

Przechodząc już do konkretów Manifest Agile powstał jako odpowiedź na ówczesne ciężkie, nieelastyczne procesy tworzenia oprogramowania, o czym zatem mówi Manifest Agile? Otóż określa on zestaw 4 wartości i 12 zasad zwinnego tworzenia oprogramowania.

Manifest zawiera cztery nadrzędne wartości — jednostki i interakcje ponad procesami i narzędziami, działające oprogramowanie ponad obszerną dokumentacją, współpraca z klientem ponad negocjowaniem umów oraz reagowanie na zmiany ponad trzymaniem się planu — oraz dwanaście zasad, które opisują, jak te wartości powinny być stosowane w praktyce. Zasady te podkreślają potrzebę wczesnego i ciągłego dostarczania wartościowego oprogramowania, ciągłego dbania o techniczną doskonałość oraz ścisłej współpracy z klientami.

Agile Manifesto ma 4 nadrzędne wartości, które odróżniają ją od tradycyjnych procesów wytwarzania oprogramowania.

Ludzie i interakcje od procesów i narzędzi

Aby odnieść sukces, nie wystarczy mieć świetny pomysł i narzędzia, które pozwolą go zrealizować. Potrzebujesz także zespołu, który potrafi efektywnie współpracować. Oznacza to, że trzeba mieć dobre umiejętności komunikacyjne i umieć współpracować. Ta wartość w dużej mierze odnosi się do umiejętności komunikacji. To właśnie dzięki niej możemy postawić na pierwszym miejscu ludzi i interakcje. 

Działające oprogramowanie od szczegółowej dokumentacji

Zwinne tworzenie oprogramowania opiera się na zasadzie, że powinieneś “wysłać to”, a nie pozwolić, by dokumentacja była wąskim gardłem. Chodzi o to, żeby dostarczyć produkt do rąk klientów tak szybko, jak to możliwe, żeby można było zebrać informacje zwrotne i poprawić go. Ta wartość podkreśla znaczenie wysyłania oprogramowania, a nie pozwalania, aby dokumentacja była wąskim gardłem, równocześnie należy zauważyć, że dokumentacja sama w sobie nie jest czymś złym, jednak jedynie do momentu, w którym staje się najważniejsza. 

Współpracę z klientem od negocjacji umów

Aby stworzyć produkt, który jest skuteczny i użyteczny, należy ściśle współpracować z  klientami. Kultura ścisłej współpracy z klientami pomaga osobom odpowiedzialnym za produkt upewnić się, że dostarczają skuteczne i użyteczne rozwiązania. Kiedy często rozmawiasz z klientami i uwzględniasz ich opinie w procesie rozwoju, zmniejszasz ryzyko i eliminujesz domysły. Aby stworzyć produkt, który jest skuteczny i użyteczny, wzajemne słuchanie się jest tutaj bardzo istotne. 

Reagowanie na zmiany od realizacji założonego planu.

Ważną zaletą metodologii agile jest to, że zachęca ona do częstego przeglądu i rewizji aktualnych planów na podstawie nowych informacji, które zespół stale gromadzi i analizuje. Harmonogram produktu nie jest już zatem statycznym dokumentem, ale dynamiczną strategią. Menedżerowie produktu w środowiskach zwinnych będą musieli nauczyć się przedstawiać interesariuszom swoje dynamiczne harmonogramy w sposób przejrzysty, odzwierciedlający prawdopodobieństwo zmian wynikających z nowych doświadczeń.

Innymi słowy, metodologia zwinna pozwala zespołowi produktowemu dopasować swoje priorytety i cele do priorytetów i celów interesariuszy poprzez otwartość i komunikację na temat potencjalnych zmian. Taka przejrzystość buduje zaufanie między zespołami, co jest niezbędne dla każdego udanego projektu.

12 zasad Agile Manifesto – Jakie są zasady zwinności?

Agile Manifesto to 12 zasad zwinności. Te 12 zasad zwinnego tworzenia oprogramowania pomaga ustalić założenia zwinnego sposobu myślenia. Należy pamiętać, że przedstawione w manifeście zasady nie są regułami, ale raczej wskazówkami, jak zaszczepić zwinny sposób myślenia.

  1. Najwyższy priorytet ma dla nas zadowolenie klienta dzięki wczesnemu i ciągłemu wdrażaniu wartościowego oprogramowania.
  2. Bądźcie gotowi na zmiany wymagań nawet na późnym etapie jego rozwoju. Procesy zwinne wykorzystują zmiany dla zapewnienia klientowi konkurencyjności.
  3. Dostarczajcie funkcjonujące oprogramowanie często, w kilkutygodniowych lub kilkumiesięcznych odstępach. Im częściej, tym lepiej.
  4. Zespoły biznesowe i deweloperskie muszą ściśle ze sobą współpracować w codziennej pracy przez cały czas trwania projektu.
  5. Twórzcie projekty wokół zmotywowanych ludzi. Zapewnijcie im potrzebne środowisko oraz wsparcie i zaufajcie, że wykonają powierzone zadanie.
  6. Najbardziej efektywnym i wydajnym sposobem przekazywania informacji zespołowi deweloperskiemu i wewnątrz niego jest rozmowa twarzą w twarz.
  7. Działające oprogramowanie jest podstawową miarą postępu.
  8. Procesy zwinne umożliwiają zrównoważony rozwój. Sponsorzy, deweloperzy oraz użytkownicy powinni być w stanie utrzymywać równe tempo pracy.
  9. Ciągłe skupienie na technicznej doskonałości i dobrym projektowaniu zwiększa zwinność.
  10. Prostota – sztuka minimalizowania ilości koniecznej pracy – jest kluczowa.
  11. Najlepsze rozwiązania architektoniczne, wymagania i projekty pochodzą od samoorganizujących się zespołów.
  12. W regularnych odstępach czasu zespół analizuje możliwości poprawy swojej wydajności, a następnie dostraja i dostosowuje swoje działania do wyciągniętych wniosków.

Podsumowując: Manifest Agile powstał w 2001 roku jako odpowiedź na potrzebę bardziej elastycznego podejścia do tworzenia oprogramowania. Zawiera zarówno elementy empatii, jak i kompetencje miękkie. 12 zasad,  jak i 4 wartości nadrzędne Agile Manifesto tworzenia oprogramowania stanowią użyteczne wskazówki dla tych, którzy chcą praktykować agile, w tym miejscu należy pamiętać, że wskazówki te nie mają charakteru nakazowego. I chociaż manifest nie opisuje żadnych konkretnych procesów, procedur czy najlepszych praktyk agile, jest to zamierzone. Twórcy nie chcieli stworzyć sztywnych ram czy metodologii. Zamiast tego stworzyli filozoficzne podejście do tworzenia oprogramowania, które jest bardziej elastyczne i etyczne niż tradycyjne podejścia.