Przyjdź, aby nauczyć się i skrytykować, jak duże firmy takie jak FAANG "programują na wyczucie (Vibe Coding)": "Najpierw pozwól wystarczającej liczbie interesariuszy kiwnąć głową na zgodę" "Potem przeprowadź przegląd projektu" "Następnie długie tygodnie pracy nad dokumentacją" "A potem menedżerowie produktu i menedżerowie projektów rozdzielają zadania" Po trzech miesiącach w końcu można zacząć programować na wyczucie! --- W FAANG programujemy w ten sposób "na wyczucie (Vibe Coding)" Cześć wszystkim. Chciałem napisać ten post, ponieważ ciągle widzę, jak ktoś kwestionuje, mówiąc, że kod pisany z pomocą AI w ogóle nie nadaje się do prawdziwych produktów. To absolutnie bzdura. Najpierw przedstawiam tło: jestem inżynierem oprogramowania AI z ponad dziesięcioletnim doświadczeniem, z czego połowę czasu spędziłem w FAANG. Pierwsza połowa mojej kariery to praca jako inżynier systemowy, a nie programista, ale piszę kod od prawie 15 lat. Bez zbędnych słów, poniżej opowiem, jak nasz zespół zaczął używać AI do pisania prawdziwego **kodu produkcyjnego (production code)**. 1. Zawsze zaczynaj od **dokumentu projektowego**. To jest najważniejsza część całej pracy. Ten dokument jest jak propozycja, musisz przekonać wystarczającą liczbę interesariuszy (stakeholders), aby uwierzyli, że twoje rozwiązanie jest wykonalne. Tylko po zatwierdzeniu projektu możesz przystąpić do rozwoju samego systemu. Dokument ten powinien zawierać pełną architekturę systemu, plany integracji z innymi systemami itd. 2. Przed rozpoczęciem rozwoju należy przeprowadzić **przegląd projektu (Design review)**. Na tym etapie starsi inżynierowie (Senior Engineers) w zespole będą dokładnie analizować twój dokument projektowy. To dobra rzecz, nazywam to **"przeniesieniem bólu na przód"**. 3. Jeśli przegląd przebiegnie pomyślnie, możesz oficjalnie rozpocząć prace rozwojowe. W początkowych tygodniach wszyscy spędzą dużo czasu na pisaniu bardziej szczegółowej dokumentacji dla każdego podsystemu (subsystem), który zespół ma zbudować. 4. Następnie następuje rozwój **zadań do zrobienia (Backlog)** i planowanie Sprintu (sprint planning). Na tym etapie programiści spotykają się z menedżerami produktu (PMs) i menedżerami projektów technicznych (TPMs), aby podzielić wielkie cele na konkretne zadania, które programiści mogą wykonać. 5. **Rozwój oprogramowania**. W końcu możemy zacząć pisać kod i eliminować zadania. A to jest miejsce, w którym AI pokazuje swoją moc, jest naszym **mnożnikiem wydajności (force multiplier)**. Stosujemy model **rozwoju napędzanego testami (Test Driven Development, TDD)**, więc pierwszą rzeczą, którą robię, jest zlecenie **agentowi AI (AI agent)** napisania testów dla funkcji, którą mam rozwijać. *Tylko gdy testy są gotowe, zaczynam prosić agenta AI o pomoc w budowaniu konkretnej funkcji*. 6. **Przegląd kodu przed zatwierdzeniem**. Nasz kod musi być zatwierdzony przez dwóch programistów przed połączeniem z główną gałęzią (main). Na tym etapie AI również pokazuje ogromny potencjał, mogąc wspierać nas w przeglądzie. 7. **Testowanie w środowisku przed wydaniem (staging)**. Jeśli testy przebiegną pomyślnie, oficjalnie publikujemy do środowiska produkcyjnego (prod). Ogólnie rzecz biorąc, od propozycji funkcji do ostatecznego uruchomienia, zauważyliśmy, że cały proces **przyspieszył o około 30%**. To dla nas ogromny postęp. **Za długie, nie czytać (TL;DR):** Zawsze zaczynaj od solidnego dokumentu projektowego i architektury; następnie realizuj to kawałek po kawałku; zawsze pisz testy na początku.
13,29K