Koniec metodologii wytwarzania oprogramowania

Czy metody wytwarzania oprogramowania, nazywane modelami, procesami i metodologiami wytwarzania oprogramowania powoli odchodzą do lamusa? Wszystko wskazuje na to, że TAK!

Podczas omawiania na szkoleniu ISTQB Test Manager modeli rozwoju oprogramowania zadano mi pytanie, jakie są te współczesne i popularne modele oraz dokąd zmierzamy. Nigdy się nad tym poważnie nie zastanawiałem, ale szybka analiza naprowadza mnie na stwierdzenie, że zmierzamy do końca modeli SDLC (ang. software developement life cycle).

Patrząc na historię kodowania do 1970 r. oprogramowanie po prostu się tworzyło bez poważniejszych reguł i metod. W tym właśnie roku został zdefiniowany pierwszy model wytwórczy - model kaskadowy. W 1986 r. pojawia się jego ewolucja - Model V. Pierwszy iteracyjny framework procesowy RUP powstał w 1992 r., a w 1993 r. w zespołach scrumowych powstał pierwszy software. Manifest Agile opublikowano jednak dopiero w 2001 r. Odejście od sformalizowanych metod opisu pracy programistów pojawiało się dość często w XXI wieku, ale spopularyzowało się w 2008 r. w lean startup, gdzie postawiono na produktywność, a nie na sztywne reguły określające półprodukty, procesy czy KPI-je.

W 2009 r. przestaliśmy mówić o modelach i zaczęliśmy mówić o kulturze wytwarzania oprogramowania. Prekursorem było DevOps, które określa się jako zbiór praktyk pozwalających szybko dostarczać na produkcję wysokiej jakości oprogramowanie.

Dziś nawet ci, którzy definiowali zwinne podejście do wytwarzania oprogramowania, zachęcają do odcięcia się od wszelkich metod i podstawienie na jedno - dostawę oprogramowania (delivery). Programiści mają dostarczać często, ale we własnym tempie. Bez presji, ale z jasno określonym celem. Dziś właściwym pytaniem nie jest to, jakich metod używasz, ale czy jesteś skuteczny w dostarczaniu rozwiązania.

Programistę obudowuje się zbiorem praktyk jak CI/CD, dostarcza mu się narzędzia automatyzacji uruchomienia testów i monitorowania produkcji. Oprócz tego zostawia się go sam na sam z IDE i wymaganiami do zaimplementowania.

W tym współczesnym podejściu redukuje się zbiór obowiązkowych spotkań, dokumentów i reguł, zostawiając zespołom i jednostkom dowolność w wykonywaniu ich pracy. Tu nawet Scrum staje się zbyt ciężki i niosący zbyt wiele procesowych obciążeń. Podstawą jest szybka dostawa oprogramowania dla klienta lub użytkownika i zbieranie informacji zwrotnych lub nowych wymagań. Dosadnie i bezceremonialnie piszą o tym sami programiści w dość popularnym Programming, Motherfucker (http://programming-motherfucker.com/).

Skoro zatoczyliśmy koło i od braku metodologii poprzez eksperymentowanie z dziesiątkami metod znów wróciliśmy do początku, to wydaje się, że już raczej nie wrócimy na ścieżkę lekkich i ciężkich procesów. Czy zmarnowaliśmy ostatnie 50 lat? Absolutnie nie. Dużo się nauczyliśmy i wdrożyliśmy praktyki, które pomogły nam zoptymalizować wytwarzanie oprogramowania. A co dalej? Rynek zmierza w kierunku zastąpienia ludzkiej pracy przez maszyny i algorytmy. One nie potrzebują metodologii wytwarzania oprogramowania. Widać więc wyraźnie, że era SDLC powoli dobiega końca.

 

Radek Smilgin

 

 

 

Najbliższe terminy szkoleń

 

22-25 października - Wrocław

Zawód Tester


5-6 listopada - Katowice

Testowanie bezpieczeństwa


13-16 listopada - Katowice

Zawód Tester


17-18 listopada - Warszawa weekend!

ISTQB Poziom Podstawowy (Foundation Level)

 

Partnerzy

Narzędzia testerskie