Tworzenie oprogramowania z użyciem AI
Coraz więcej właścicieli firm sprawdza na własną rękę, co potrafi sztuczna inteligencja. Wystarczy opisać w kilku zdaniach, czego się potrzebuje, a po kilkunastu minutach działa aplikacja. To zjawisko nazywa się vibe codingiem: oprogramowanie powstaje z rozmowy z AI, bez projektowania i bez znajomości kodu.
Efekty potrafią robić wrażenie i to dobrze. Sam pracuję z AI codziennie. Z uczeniem maszynowym eksperymentuję od ponad dekady, a krótko po premierze GPT-4 przebudowaliśmy cały sposób działania Solarte, żeby w pełni wykorzystać tę technologię.
Nie piszę więc tego tekstu, żeby krytykować AI. Piszę go, bo łatwo pomylić działający prototyp z systemem, na którym firma może się oprzeć na lata. Prawdziwe pytanie nie brzmi „AI czy człowiek”. Brzmi: kto podejmuje decyzje, od których zależy, jak system będzie działał za dwa lata?
Do czego AI nadaje się najlepiej
W realizacji konkretnych, dobrze opisanych zadań AI jest niesamowicie skuteczna, de facto lepsza od większości programistów. Szczególnie dobrze sprawdza się przy:
- prostych narzędziach, które automatyzują określoną sekwencję czynności,
- prototypach, które pozwalają szybko sprawdzić pomysł przed większą inwestycją,
- pisaniu kodu według wzorców, które ktoś wcześniej przemyślał i zaprojektował.
Problemy zaczynają się tam, gdzie od AI oczekujemy nie tylko wykonania, ale też decyzji strategicznych.
Gdzie zaczyna się problem
Model AI zdobywa wiedzę i umiejętności w fazie treningu. Gdy zostaje udostępniony, ten stan jest zamrażany i model sam z siebie niczego nowego się już nie uczy. Wszystko, co AI „wie” podczas pracy nad Twoją aplikacją, to połączenie treningu z treścią bieżącego kontekstu. Od zera w każdej sesji, bez wyciągania i zapamiętywania wniosków.
Funkcje pamięci w czatach i pliki z regułami projektu pomagają, ale to tylko notatki dorzucane do kontekstu. Ktoś musi wiedzieć, jakie wnioski w nich zapisać. Jeśli błąd zostanie naprawiony w jednym miejscu systemu, AI nie wyciągnie z tego lekcji na przyszłość. Podobna funkcja budowana gdzie indziej może mieć ten sam problem, chyba że ktoś tę lekcję świadomie zapisze i dopilnuje jej stosowania.
Najważniejsze jest jednak to, że AI nie zna Twojej firmy. Nie wie, jakie funkcje są dla Ciebie najważniejsze, a które podobczne; gdzie należy spodziewać się największego przyrostu danych i gdzie szybkość ma kluczowe znaczenie, a gdzie marginalne. Nie wie, które dane są wrażliwe, kto powinien mieć do czego dostęp jak system powinien zareagować, gdy dwie osoby jednocześnie zmienią to samo zlecenie. Nie wie, że za rok planujesz drugą zmianę, nową linię produktów albo integrację z ERP.
Jeśli nikt tych informacji nie zbierze i nie przełoży na decyzje projektowe, nie trafią do żadnego zadania. A nawet jeśli trafią to i tak takie informacje nigdy nie były kluczowym kryterium treningowym. Nie zmieni tego żaden kolejny, nawet najinteligentniejszy model.
Doświadczenie, którego nie da się przeczytać
Moje najcenniejsze umiejętności pochodzą z sekwencji, powtarzanej przez ponad 20 lat:
- Projekt: podjęcie decyzji architektonicznych na podstawie wiedzy o kliencie i jego wymaganiach.
- Implementacja i wdrożenie: pierwsza weryfikacja, czy te decyzje pozwalają uruchomić system u klienta.
- Wieloletnie utrzymanie: najważniejszy test. Czy po np 5 latach nadal da się łatwo naprawiać błędy i dodawać funkcje bez przebudowy lub bez psucia czegoś w innym miejscu?
- Wnioski: każdy problem z 2 i 3 fazy analizuję, czy dało się go uniknąć podejmując inną decyzję projektową, a potem tą wiedzę wykorzystuję w następnych projektach.
AI nigdy nie przeszła i nie ma możliwości przejścia takiej pętli, bo nie uczy się na błędach. Każde dodanie funkcji czy naprawa błędu osobne zadanie, bez świadomości poprzednich, chyba że ktoś świadomie dopisze ją do kontekstu.
Zna wszystkie zasady dobrego programowania, ale tak, jak zna się podręcznik. Nie wie z doświadczenia, kiedy daną zasadę zastosować, a kiedy świadomie ją złamać.
To ma znaczenie, bo wiele z tych zasad wzajemnie się wyklucza, a wybór zależy od specyfiki projektu. Bez tej wiedzy AI sięga po rozwiązanie najpopularniejsze, a w kolejnym zadaniu może sięgnąć po inne. Często najlepsze rozwiązania wynikają ze świadomego odejścia od reguły, gdy wiadomo, po co ona powstała i jakie będą konsekwencje.
Dla właściciela firmy skutek jest prosty: system staje się coraz mniej spójny, błędy coraz częstsze, starsze funkcjonalności mogą przestać działać, a każda kolejna zmiana kosztuje więcej niż poprzednia.
Jak to wygląda w praktyce
Typowy scenariusz: pracownik w kilka dni buduje z pomocą AI aplikację do planowania produkcji, ewidencji zleceń czy wycen, która zastępuje arkusz Excela. Pierwsze wersje testowe działają i wyglądają świetnie.
Potem w trakcie praktycznego użycia w firmie wychodzi coraz więcej przypadków specjalnych, aplikacja się rozrasta i działa coraz wolniej. Każda zmiana kosztuje coraz więcej i coraz częściej nowa funkcjonalność psuje starą. Ostatecznie można dojść do etapu gdzie narzędzie powoduje więcej problemów niż wnosi korzyści.
Nie jest to scenariusz nowy ani typowy tylko dla AI. To typowe dla poważnych projektów gdzie zmiany nie są planowane ze świadomością kompletnej wizji systemu, tylko robione ad hoc pod opis bieżącego zadania. Widziałem to nie raz w dużych software house’ach i te same symptomy obserwuję sam testując rezultaty vibe codingu.
Pamiętaj o tym, gdy ktoś pokaże Ci efektowne demo i zaproponuje pracę za stawkę godzinową: na początku wszystko wygląda dobrze, ale łatwo stracić dużo czasu i pieniędzy, nie dochodząc do zadowalającego efektu.
Kiedy vibe coding wystarczy, a kiedy nie
| Vibe coding wystarczy | Potrzebny jest przemyślany system |
|---|---|
| Narzędzie dla jednej lub kilku niezależnych osób | Współpracuje wiele osób z różnymi uprawnieniami |
| Automatyzacja jednej, powtarzalnej czynności | System obsługuje wiele kluczowych procesów firmy |
| Prototyp do sprawdzenia pomysłu | Planowany rozwój przez kolejne lata |
| Awaria to drobna niedogodność | Awaria zatrzymuje produkcję lub realizację zamówień |
| Dane o niskiej wrażliwości | Dane klientów, ceny, receptury, dane osobowe |
Jeśli w prawej kolumnie odnajdujesz choć dwa punkty, warto porozmawiać z kimś, kto zaprojektuje system z myślą o kolejnych latach.
Jak łączymy szybkość AI z decyzjami architekta
W Solarte nie wybieramy między AI a człowiekiem. Pracujemy na Solarte Engine, naszej wewnętrznej platformie. Architekturę i kluczowe decyzje podejmuje doświadczony architekt, a AI uzupełnia implementację według z góry ustalonych wzorców i z odpowiadającym kontekstem projektu.
Dzięki temu korzystamy z szybkości AI, a system pozostaje spójny i łatwy w rozwoju przez lata. Dlatego możemy bezpłatnie naprawiać błędy we wdrożonych systemach bez limitu czasu i wprowadzać zmiany szybko, także po wielu latach od wdrożenia.