Wróć
Laboratorium · żywy eksperymentAI-native SDLC · dark factory2026 · tydzień operacji
Case Study #05

Inżynieria + DevOps + AI
= AI-native SDLC.

Przez tydzień operowałem fabryką software. Agenci prowadzą pełny cykl ticketu: plan, build, verify, code review. Deterministyczny harness pilnuje kontraktów, budżetów i bramek. Człowiek podejmuje dwie decyzje na ticket: aprobatę planu i merge. To model, który Gartner nazywa dark factory. Tutaj zbudowany i sprawdzony w praktyce: architektura, realne koszty i to, co się psuło.

Dark factory · Gartner, maj 2026Agenci: plan · build · verify · review2 bramki ludzkie
runs / nocna-zmiana-02.log● 22.07.2026 · 01:12–05:47
01:56BAR-101 plan → build → verify → merge → Done
01:57BAR-104 plan → build → verify → merge → Done
02:00BAR-108 review ×2 → fix → merge → Done
02:09BAR-097 verify: pozorowana zmiana → REJECTED
02:11BAR-110 plan → build → verify → merge → Done
02:14BAR-112 plan-reuse → build → verify → merge…
02:1914 kolejnych ticketów tej nocy
Rekonstrukcja na podstawie realnych artefaktów runów · identyfikatory zmienione
4 role
agentów: plan · build · verify · review
2
decyzje człowieka na ticket: plan i merge
50
ticketów przez fabrykę w tydzień operacji
~$2,9 ekw.
kosztu inferencji na ticket — średnio
05:47 · świt · dalej czyta się przy kawie
Oznaczenia sekcji:Bizneswartość i liczby — czytaj wszystkoTechjak to działa pod maską — możesz pominąć

Zbudowałem działającą fabrykę software: agenci planują, budują, testują i robią code review, a człowiek podejmuje dokładnie dwie decyzje — akceptuje plan i merguje PR. Przez tydzień przepuściłem przez nią 50 ticketów. To jest zapis tego eksperymentu: architektura, liczby i to, co się psuło. Mogę się mylić w wielu miejscach — ale mam z tego dane.

Vibecoding i harnessy CLI są świetne. Sześć problemów zostaje.

Claude Code, Codex i podobne harnessy CLI to realny skok produktywności; kod naprawdę powstaje szybciej. Ale „agent + prompt” działa świetnie do pierwszego poważnego incydentu. Poniżej sześć problemów, które znam z praktyki, i mechanizm, którym fabryka odpowiada na każdy z nich.

Problem 01 · najważniejszy

Brak synergii między modelami

Jeden model planuje, pisze i sam ocenia własną pracę. Mocne strony pozostałych leżą odłogiem, a sędzia jest stroną.

różne modele w różnych rolach — sekcja Silniki i modele ↓
Problem 02

Niedeterministyczna kontrola

O tym, czy zmiana jest OK, decyduje… AI — na podstawie wrażenia, nie kontraktu. Werdykt potrafi być inny przy każdym uruchomieniu.

werdykt = ścisły kontrakt JSON · fail-closed · gita robi kod, nie agent
Problem 03

Nieprzewidywalne koszty, brak twardych bramek

Sesja potrafi zjeść dowolny budżet, a żadna bramka jakości nie zatrzyma pracy, która idzie w złą stronę.

budżet per ticket · circuit breaker $/h · metryki per wywołanie
Problem 04

Slop code wchodzi do repo

Bo nikt nie ma czasu (ani chęci) czytać i odrzucać wygenerowanych PR-ów. Jakość jedzie na zaufaniu.

verify na świeżym checkoucie · pętla review · zero auto-merge
Problem 05

Trudne podpinanie zewnętrznych źródeł

Kolejka zadań, rejestry projektów, CI, tracking — da się to spiąć z sesją agenta, ale na każdym szwie ręcznie.

Linear, GitHub i rejestry podpięte deterministycznym kodem harnessu
Problem 06

Brak miejsca na lokalne modele

Compliance i koszty mówią „lokalnie”, ale typowa sesja agenta jest przyspawana do jednego chmurowego CLI.

routing ról — lokalny LLM już dziś pracuje w roli verify

Narzędzia AI są wszędzie. Efektu biznesowego nie widać.

Znam to z obu stron. Deweloperzy raportują, że z copilotem piszą szybciej i tak to czują. Liderzy patrzący na speed-to-market nie widzą różnicy. Gartner zmierzył tę rozbieżność i wyszła z tego jedna z mocniejszych liczb, jakie widziałem w badaniach nad produktywnością:

98%
liderów inżynierii deklaruje, że przynajmniej część ich zespołów używa AI w pracy nad oprogramowaniem. Adopcja jest praktycznie wysycona.
2026 Gartner Software Engineering Survey · n=482
43 / 0%
43% deweloperów uważa, że przekracza oczekiwania co do tempa dostarczania. Zgadza się z tym zero procent liderów inżynierii. Gartner nazywa to wprost „reality gap”.
Gartner Developer Experience Assessment · n=6538
64 → 51%
64% zespołów raportuje mniej czasu na zadaniach inżynierskich, 61% szybsze code review — ale tylko 51% widzi realną poprawę w tempie wyjścia na rynek.
2025 Gartner AI in Software Engineering Survey · n=299
Dane · raporty Gartnera 2026Adopcja wysycona, zyski widać na poziomie zadań, na poziomie biznesu już nieAkt I

Bo copilot przyspiesza fragmenty pracy, ale proces i struktura zostają stare. Kolejka, handoffy, review, release: wszystko czeka na człowieka dokładnie tam, gdzie czekało wcześniej. Skraca się czas pisania kodu, nie czas czekania.

Kluczowe rozróżnienie, na którym stoi cały ten tekst, wygląda tak:

Model A · narzędzie w starym procesie
AI przyspiesza fragmenty. Proces zostaje.
ticketdev+copilotreviewQArelease

Każdy krok nadal należy do człowieka. AI skraca same kroki, ale nie rusza czekania między nimi. Dlatego lider nie widzi efektu.

Model B · proces przeprojektowany wokół agentów
Praca wchodzi bramką i wychodzi bramką. Środek jest agentowy.
plan OKbuildverifyreviewmerge

Człowiek decyduje na wejściu i na wyjściu. Pomiędzy pracują agenci i deterministyczny harness. Zmienia się struktura procesu, więc zmianę widać w wynikach, a nie tylko w odczuciach zespołu.

Diagram 01Narzędzie w starym procesie vs proces zbudowany wokół agentówAkt I
Definicja · dark factory

Autonomiczna jednostka wykonawcza SDLC: agenci planują, budują, testują i pakują pracę pod kontrolą harnessu. Na wejściu stoi intake gate — agent sprawdza, czy zgłoszenie nadaje się do produkcji, i odsyła niejasne wejścia do człowieka. Na wyjściu inspection gate — człowiek ogląda wynik razem ze śladem dowodowym. Na halę produkcyjną pomiędzy nimi nikt nie wchodzi. Gartner widzi cztery typy takich fabryk: research, plan, implement i verify.

C.A. Swan, „Dark Factories, Run by AI Agents, Will Power the Zero-Friction SDLC”, Gartner, 26.05.2026 (G00855838). Dark factory to jednostka operacyjna docelowego stanu, który Gartner nazywa zero-friction SDLC.
Definicja · harness

Wspólna warstwa sterująca wokół agentów. Podaje im właściwy kontekst, ogranicza dostęp do narzędzi, zapisuje każdą akcję i sprawdza wyniki względem standardów organizacji. U Gartnera buduje go i zarządza nim centralny zespół platformowy, żeby każda fabryka jechała na tych samych kontrolkach. U mnie to deterministyczny kod: kontrakty werdyktów, bramki, budżety, routing i artefakty. To słowo wraca w całym tekście.

Moje pytanie badawcze było proste:

Ile z tego modelu da się zbudować dziś, na subskrypcjach konsumenckich CLI — i gdzie są prawdziwe granice?

Jak praca przepływa przez fabrykę.

Kolejką i pulpitem sterowniczym jest Linear. Ticket wjeżdża do fabryki, agent planuje, człowiek akceptuje plan przeciągnięciem karty — i od tego momentu, aż do gotowego PR, nikt nie siedzi przy klawiaturze.

mastra · workflows / ticket-pipeline
Graf workflow ticket-pipeline: intake, pętla plan-clarify, finalize-plan, bramka approve-plan, rozgałęzienie ops-path / code-path

Ten graf działa naprawdę — na frameworku Mastra.

Fabryka stoi na Mastra — otwartym frameworku TypeScript do agentów i workflow. Rozwiązań tej klasy jest więcej; Mastra po prostu podpasowała: workflow jako graf z deterministycznymi krokami, human gate wpinany bezpośrednio w graf i panel runów, który widać na zrzutach.

Intake to deterministyczny kod, a approve-plan to bramka ludzka w grafie — nie konwencja, którą agent może przeoczyć; plan bez jednoznacznego werdyktu kończy jako twardy BLOCKED.

Zrzut z implementacji · Mastra

localhost · mastra / ticket-pipeline · recent runs
Panel Mastra: workflow ticket-pipeline (8 kroków), bramka approve-plan i lista Recent runs z nocy 22.07
Zrzut z implementacjiRecent runs — w tym runy o 1:56–2:11 w nocy i czerwone runy: fabryka odrzuca własną pracęMastra

Fundament autonomii: głęboki brak zaufania do agentów.

Zasada 01

Deterministyczny kod robi git, CI, routing i budżety. Agenci wyłącznie myślą.

Commituje fabryka, nie agent. Agent nigdy nie dotyka gita, nie odpala CI, nie zarządza gałęziami. Wszystko, co da się zrobić kodem, robi kod — bo kod jest przewidywalny, a agent nie.

Zasada 02

Fail-closed wszędzie.

Werdykt agenta to ścisły kontrakt strukturalny (blok JSON). Brak werdyktu albo niejednoznaczność = STOP, nigdy zgadywanie. Review bez jednoznacznego LGTM znaczy: są uwagi.

Zasada 03

Dwie bramki ludzkie, zero auto-merge.

Sterowanie stanami kanbana, nie rozmową z botem. Aprobata planu i merge — obie decyzje da się podjąć z telefonu: przeciągnięcie karty, /approve, /reject.

Zasada 04

Izolacja i zakres.

Worktree per ticket. Zmiany buildera muszą być podzbiorem plików zadeklarowanych w zatwierdzonym planie. Rezerwacja plików między ticketami, merge queue i re-verify przy każdym ruchu maina.

Zasada 05

Multi-engine z routingiem ról.

Plan, verify, review i build mogą jechać różnymi modelami — routing per rola, domena i projekt. Tańsze modele tam, gdzie wystarczą; zero uzależnienia od jednego vendora.

Zasada 06

Ekonomia wbudowana od pierwszego dnia.

Budżet per ticket, circuit breaker $/h, plan-reuse („nie generujemy planu bez powodu”) i pełne metryki per wywołanie: koszt, czas, first-pass — per etap i model.

Mapowanie na słownik Gartnera — łącznie z tym, co się nie zgadza
Mój pipeline plan → build → verify=fabryki plan / implement / verify (bez research)Warstwa kontraktów, budżetów i routingu=harnessGate niejasności: planner pyta autora=intake gate — u Gartnera też agentowyBramka 2 · merge PR=inspection gateBramka 1 · akceptacja planu przez człowieka=nadmiarowa — w modelu Gartnera człowieka tu nie ma

Ostatni wiersz jest ważniejszy niż pozostałe. U Gartnera intake gate obsługuje agent, a jedyna ludzka bramka stoi na wyjściu. Ja trzymam dodatkową bramkę na wejściu, bo przy jednoosobowym zespole i modelach z 2026 roku wolę zapłacić minutą uwagi za plan niż godziną za sprzątanie. To świadome cofnięcie się o krok od modelu docelowego, nie jego implementacja.

Model, który napisał kod, nigdy nie ocenia własnej pracy.

Każda rola w fabryce może jechać innym modelem — i to jest bezpośrednie źródło jakości. Planner myśli szeroko, builder pisze, verifier i reviewer patrzą na wynik świeżymi, cudzymi oczami — ta sama zasada, dla której code review robi kolega, nie autor. Druga decyzja: każdy silnik to natywny harness CLI vendora (Claude Code od Anthropic, Codex od OpenAI), nie gołe API — agentic loop, narzędzia i praca z repo to lata inżynierii strojonej pod konkretny model, których nie zamierzam odtwarzać sam. Mój harness orkiestruje harnessy: kontrakty, bramki i budżety nad nimi, cała inżynieria agentowa vendora pod spodem.

Rola · myśli szeroko
Planner
Rozkłada ticket na plan plików i kroków; przy niejasności pyta, nie zgaduje.
model A · frontier
Rola · pisze
Builder
Implementuje wyłącznie w zakresie zatwierdzonego planu, w izolowanym worktree.
model B · szybki do kodu
Rola · sprawdza
Verifier
Świeży checkout, checks i e2e — nie widzi kontekstu buildera, więc nie ufa mu na słowo.
model C · może być lokalny
Rola · recenzuje
Reviewer
Adwersaryjne code review PR-a w pętli review→fix, max 3 rundy, fail-closed.
model D · inny niż builder
Jeden model do wszystkiegoPisze i sam ocenia własną pracę w jednej sesji — sędzia jest stroną. Do tego płacisz stawkę najdroższego modelu za każdą czynność.
FabrykaPisze jeden, ocenia inny — synergia mocnych stron: frontier planuje, szybki koduje, tani (albo lokalny) weryfikuje. Routing per rola, domena i projekt.
Zasady 01 i 05 w praktyceNatywne harnessy CLI + lokalny LLM w roli verify · routing per rola i projekt · bez vendor lock-inrouting.yaml · engines/

Przy niejasnym tickecie fabryka pyta autora.

Najtańszy moment na złapanie błędu to moment przed napisaniem pierwszej linijki. Kiedy planner uznaje ticket za niejednoznaczny, zadaje autorowi numerowane pytania z opcjami i rekomendacją — zamiast po cichu wybierać „najbardziej prawdopodobną” interpretację. Odpowiedź wraca do tego samego runu. To intake gate w praktyce.

BAR-093 · komentarz plannera w LinearStylizowana rekonstrukcja artefaktu

Pytanie 1/1 · Ticket mówi „dodaj eksport danych”. Nie precyzuje formatu ani zakresu:

AEksport CSV bieżącego widoku (najprostszy, bez zmian w API)
BEksport CSV + JSON przez istniejący endpoint, z filtrem datrekomendacja
CPełny moduł eksportów z harmonogramem (poza zakresem ticketu?)
Autor (z telefonu, 40 s później): „B” → odpowiedź wraca do runu, plan powstaje bez zgadywania.

Pulpit sterowniczy to zwykły kanban.

Stany tablicy w Linear są jednocześnie stanami fabryki. Przeciągnięcie karty to komenda: z „Plan do akceptacji” do „Build” znaczy /approve. Całe sterowanie — łącznie z bramkami — mieści się w telefonie.

linear.app · br-factory · issues
Tablica Linear projektu br-factory: kolumny Backlog, Build, Done (23), Canceled — tickety fabryki z podpiętymi PR-ami
Zrzut z produkcji · LinearTablica br-factory — 23 tickety Done, karty z podpiętymi PR-ami; stany kolumn = stany fabrykibramki = kolumny
Decyzja · warstwa sterowania

Padło na Linear, ale równie dobrze mogłoby to być dowolne narzędzie, w którym zespół już zarządza ticketami. Zasada jest ważniejsza niż marka: zero nowego frontendu dla biznesu. Fabryka wpina się tam, gdzie biznes już pracuje — i tam wystawia bramki, pytania plannera i statusy runów. Ticket, aprobata planu i merge żyją w tym samym miejscu, co cała reszta pracy zespołu.

runs/BAR-108/run-0722-0143/
├── plan.md — plan plików i kroków
├── approval.json — kto, kiedy, którą bramką
├── build.log — pełny zapis pracy buildera
├── verify.json — werdykt + 42 testy
├── review-r1.md · review-r2.md
├── screenshots/ — stan aplikacji po zmianie
└── metrics.jsonl — koszt/czas per wywołanie

Każdy run zostawia komplet artefaktów.

Plan, aprobata, log buildera, werdykt weryfikacji, rundy review, zrzuty ekranu i metryki — per ticket, per run. Kiedy coś pójdzie źle, nie ma „nie wiadomo, co agent zrobił”. Jest folder.

Struktura rzeczywista · nazwy plików z repo

Co dowiozła fabryka — w liczbach.

Wszystkie kwoty w dolarach to ekwiwalent kosztu inferencji raportowany przez CLI na subskrypcjach konsumenckich — nie koszt projektu. Podaję je, bo bez konkretu nie da się rozmawiać o ekonomii tego modelu.

Nocna zmiana #222.07 · 01:12–05:47
Tickety podjęte → Done20 → 18
Odrzucone przez samą fabrykę2
Czas bez człowieka~4 h
Wywołania silników166
Ekwiwalent kosztu inferencji$31 ekw.
Koszt per ukończony ticket~$1,7 ekw.
Testy rano42/42
W tym 1 poprawny BLOCKED „już zaimplementowane” — fabryka nie pozorowała pracy. Aplikacja pilotażowa urosła z gołego licznika do pełnego PWA.
Tydzień operacji20–27.07.2026
Tickety przepuszczone50
Wywołania silników390
Czas pracy silników~18,6 h
Ekwiwalent kosztu inferencji$145 ekw.
Koszt per ticket · średnio~$2,9 ekw.
Skuteczność wywołań: plan94/95
build · review78/87 · 76/76
Koszt nadzoru ludzkiego: aprobaty planów i merge — pojedyncze minuty na ticket. Nie tylko pilot: 2 PR-y w prywatnym repo produkcyjnym, na premium modelach, w budżecie $8/ticket.
Słownik wskaźników — co dokładnie znaczą
Ekwiwalent kosztu inferencji ($ ekw.)
Ile te same wywołania kosztowałyby po cenniku API danego modelu. Fabryka jeździ na stałych subskrypcjach CLI, więc to miara zużycia — pozwala policzyć ekonomię przed przejściem na API i skalę.
Wywołanie silnika
Jedno uruchomienie agenta w jednej roli (plan, build, verify albo review) dla jednego ticketu. Ticket zużywa zwykle kilka wywołań, licząc rundy poprawek.
Skuteczność wywołań (np. plan 94/95)
Ile wywołań danej roli zakończyło się poprawnym, zgodnym z kontraktem wynikiem — bez błędu, timeoutu i restartu. Odpowiednik metryki „first-pass”.
Koszt per ticket
Suma ekwiwalentu kosztu wszystkich wywołań jednego ticketu — od planu po ostatnią rundę review, razem z poprawkami.

Ta sekcja jest ważniejsza niż sukcesy.

Nic z tego nie działało od razu. Poniżej realne awarie z tygodnia operacji — każda z konkretnym mechanizmem, który powstał w odpowiedzi.

Awaria 01

Konflikt semantyczny przy 4+ równoległych ticketach

Dwa tickety zielone osobno, czerwone razem: zmiany nie kolidowały w plikach, kolidowały w logice.

merge queue + re-verify przy każdym ruchu maina
Awaria 02

Oscylująca pętla review→fix

Reviewer żądał zmiany, fix ją wprowadzał, kolejna runda żądała odwrotnej. W kółko.

pamięć poprzednich rund + detekcja oscylacji
Awaria 03

Zombie-runy i wiszące procesy

Run tracił silnik, proces wisiał godzinami, worktree zostawał zajęty.

twarde timeouty + adopcja sierot po restarcie
Awaria 04

Budżety czasu zabijały wolniejsze modele

Limit 5 minut na plan uśmiercał model klasy frontier w połowie myślenia.

kalibracja per model — plan: 5 → 12 min
Wniosek nadrzędny

Większość tej pracy to inżynieria niezawodności.

Prompty to margines. Sedno leży w kontraktach, timeoutach, kolejkach, budżetach i artefaktach wokół agentów. I dokładnie tego nie kupisz w pudełku — to jest różnica między adopcją narzędzia a posiadaniem procesu.

Czego nie twierdzę
  • Nie mówię „enterprise-ready”. To eksperyment jednoosobowy na dwóch repo: pilotażowe PWA (50 ticketów) i mój własny produkt (2 PR-y). Twierdzę tylko, że wzorce — bramki, kontrakty, fail-closed — są przenośne, a doświadczenie operacyjne realne.
  • Koszty w $ to ekwiwalent API raportowany przez CLI na subskrypcjach konsumenckich, nie koszt projektu.
  • Nie twierdzę „bez człowieka”. Człowiek stoi w dwóch dobrze zdefiniowanych miejscach i tak ma być.

Co bym z tego przeniósł do dużej organizacji.

To już działa poza laboratorium
Itaú Unibanco

Autonomiczni agenci na skalę enterprise: przepustowość w górę o 20–30%, lead time w dół o 15%, 70% podatności łatanych autonomicznie, pokrycie testami podwojone do 90%.

Revvity

Mały, mieszany zespół plus harness sterowany specyfikacją: droga od koncepcji do działającego oprogramowania skróciła się z tygodni do dni.

Oba przypadki opisuje Gartner w nocie o dark factories (05.2026) jako organizacje zbieżne z tym modelem — jeszcze zanim go w pełni wdrożyły.
01

Zacznij od jednego powtarzalnego strumienia pracy, nie od „transformacji”.

Fabryka to powtarzalna praca pod kontrolą harnessu, nie nowa struktura zespołu ani portfel aplikacji. Jeden strumień, mierzalny od pierwszego ticketu, mówi więcej niż roczny program zmiany.

02

Harness to produkt centralny, budowany przez jeden zespół platformowy.

Kontrakty, budżety, routing i artefakty budowane raz, nie N kopii w zespołach produktowych. Gartner stawia sprawę ostrzej: harness jest miejscem, w którym mieszka governance, więc kopiowanie go po zespołach kopiuje też ryzyko.

03

Zmienia się profil kompetencji: spec-and-inspect.

Pisanie precyzyjnych wejść i krytyczny audyt wyjść, bliżej przeglądu bezpieczeństwa niż code review. 51% CIO mówi, że rozwój wymaganych umiejętności wyprzedza to, co dowozi rynek pracy, więc ten profil trzeba wyhodować u siebie.

04

Miary od pierwszego dnia: koszt, czas, first-pass, per etap.

Bez nich nie odróżnisz teatru adopcji od przewagi. To dokładnie te dane, których nie zostawia po sobie wdrożenie copilotów, a których enterprise potrzebuje do decyzji.

Następny krok

Jak taki model mógłby działać w Twojej organizacji?

Co z tego ma organizacja
Kontrola i tempo

Czekanie na decyzje, ręczne QA i review znikają ze środka procesu. Człowiek zostaje tam, gdzie jest niezbędny: przy decyzjach. Każdy run zostawia po sobie komplet artefaktów, więc kontrola nie kosztuje tempa.

Synergia modeli

Więcej rezultatu z tych samych modeli: frontier planuje, szybki koduje, inny recenzuje. Co dwie głowy, to nie jedna — a każda rola jedzie na stawce adekwatnej do zadania.

Modele lokalne

Routing ról dopuszcza modele self-hosted: niższe koszty inferencji i dane, które zostają w organizacji — naturalna ścieżka dla compliance.

Własny proces produkcji

Centralny system sterujący pozwala skodyfikować Wasz unikalny proces wytwarzania oprogramowania — i rozwijać go jak produkt, zamiast dziedziczyć cudzy workflow z narzędzia.

Jeśli budżet na copiloty jest wydany, a efektu biznesowego nie widać — szukaj w procesie. Dokładnie ten problem przerabiałem przez ostatni tydzień na własnej skórze.

AI SDLC Readiness Sprint to 2–3 tygodnie wspólnej pracy: na wyjściu dostajesz ocenę gotowości, architekturę harnessu pod Wasz stack i plan pilota na jednym strumieniu pracy.

AI SDLC Readiness Sprint2–3 tygodnie
  1. Mapowanie SDLC i wybór strumienia pracy pod pilota — powtarzalnego i mierzalnego.
  2. Projekt harnessu i bramek pod Wasz stack: kontrakty, fail-closed, budżety, artefakty.
  3. Definicja metryk — koszt, czas, first-pass per etap, od pierwszego dnia.
  4. Plan pilota — lub pilotaż z Waszym zespołem jako etap 2.
Konsulting, nie build · szczegóły i wycena w rozmowie

Źródła: pojęcia „dark factory”, „intake/inspection gate”, „harness”, „spec-and-inspect” oraz przypadki Itaú Unibanco i Revvity pochodzą z noty C.A. Swana „Dark Factories, Run by AI Agents, Will Power the Zero-Friction SDLC” (Gartner, 26.05.2026, G00855838). Statystyki w Akcie I: 2026 Gartner Software Engineering Survey (n=482), Gartner Developer Experience Assessment Survey (n=6538) i 2025 Gartner AI in Software Engineering Survey (n=299), za notami G00844726 i G00843105. Wszystko parafrazuję zamiast cytować. Gartner nie rekomenduje ani nie firmuje tego eksperymentu, a badania te odzwierciedlają opinie respondentów, nie cały rynek. Architektura, kod, liczby z mojego pipeline’u i popełnione błędy są moje.