Często mówi się, że przemysł oprogramowania jest niedojrzały w porównaniu do produkcji. Szczególnie w odniesieniu do napędzania procesami.
Pytanie : Czy my, programiści, możemy uczyć się na podstawie procesów przemysłu produkcyjnego? Czy przyjęcie ich procesów może zwiększyć wskaźnik sukcesu oprogramowania?
Moje zdanie : w produkcji tworzenie produktu jest silnie uzależnione od procesu. Możesz mieć fabrykę, w której każda osoba ma określony zestaw zadań, które wykonuje. Pracownik (lub robot) może dokręcać śrubę przez cały dzień. Następnie następne zadanie w tym procesie wykonuje następny specjalista. Pracownicy (i roboty) nie powstrzymują się od procesu ani nie wymyślają czegoś „w locie”. Części przechodzą przez cały proces, a wynikiem jest produkt gotowy. Działa dobrze, a firmy osiągają 99,99966% produktów wolnych od wad. Z czasem firmy eliminują nieefektywności. Jest to imponujące i bardzo dobrze może być znakiem dojrzałej branży.
W produkcji zdefiniowany proces może dosłownie stworzyć gotowy produkt. Nie sądzę, że tak jest w przypadku oprogramowania. Możemy mieć procesy kontroli źródła, przeglądu kodu, arkuszy odprawy, zbierania wymagań, SDLC itp. Jednak wykonanie tych procesów nie jest samo w sobie stworzeniem gotowego produktu. Procesy te mogą być korzystne, ale są prostopadłe do rzeczywistego stworzenia.
Załóżmy, że twoja firma jest zobowiązana do stworzenia oprogramowania, które będzie wyszukiwać miliony obrazów w celu znalezienia twarzy przestępców. Pomimo ciężkiego środowiska opartego na procesach, deweloper musi angażować się w tworzenie rzeczy „w locie”. Robienie rzeczy w locie jest sprzeczne z duchem produkcji. Dobry proces produkcyjny może zostać wykonany bez zastanowienia przez robota.
Do stworzenia skomplikowanych algorytmów, które należy jeszcze zgłębić w umyśle człowieka, konieczne jest tworzenie rzeczy w locie. Tworzenie oprogramowania nie jest następstwem procesu, ale tworzeniem procesów, które mają być wytłaczane przez komputer. To podstawowa różnica. Bez względu na to, ile procesów ortogonalnych zajmujemy się rozwojem, zawsze będziemy uciekać się do robienia tego „w locie”, jeśli chodzi o stworzenie.
Wydaje się, że wszyscy, z którymi rozmawiam, zgadzają się z myśleniem o produkcji. Czy jestem sam w swoich myślach?