Przejdź do głównej zawartości

Ekonomia oprogramowania budowanego przez agentów: koszt zaakceptowanej zmiany

Koszt zaakceptowanej zmiany to pełny koszt wytwarzania oprogramowania z agentami kodującymi w danym okresie — licencje, zużycie rozliczane od użycia, CI, review, poprawki i incydenty — podzielony przez zmiany scalone i niecofnięte. Zastępuje cenę stanowiska i szacunki zaoszczędzonego czasu jedną jednostką, którą finanse i inżynieria mogą razem zweryfikować.

Pozycja „AI” w budżecie podwoiła się w dwa kwartały. Inżynieria mówi, że zespoły są szybsze, finanse chcą dowodu, a na stole leżą tylko liczba stanowisk i ankieta o zaoszczędzonym czasie. Żadna z tych liczb nie mówi, ile dziś kosztuje wdrożona zmiana w porównaniu z zeszłym rokiem.

Ta strona jest dla członka zarządu, który podpisuje budżet, i dla CTO, który musi go obronić. To jedyna metoda ROI w tym serwisie: ceny planów narzędzi i ceny modeli mają własne strony i są dla niej danymi wejściowymi.

  • Metrykę do przyjęcia bez zmian (sześć składników kosztu, jeden mianownik, okno cofnięć, właściciel każdej liczby), krzywą kosztu od poziomu 2 do poziomu 5 i test, kiedy zaoszczędzony czas staje się gotówką.
  • Przykład liczbowy z trzech kwartałów, szablon arkusza do Arkuszy Google lub Excela i dwa prompty, którymi agent wypełni go z twoich eksportów.

Wzór ma sześć składników kosztu i jeden mianownik:

koszt zaakceptowanej zmiany =
(licencje + zużycie + CI i weryfikacja + review + poprawki + incydenty)
÷ zaakceptowane zmiany
SkładnikCo obejmujeSkąd wziąć liczbęTypowe pominięcie
LicencjeStanowiska i opłaty za plany każdego narzędzia, także botów do reviewFakturyStanowiska kupione dla osób, które przestały z nich korzystać
ZużycieTokeny rozliczane od użycia, kredyty, nadwyżki i wydatki API z uruchomień w CIEksporty zużycia od dostawców (zakładki niżej)Uruchomienia agentów w CI rozliczane na osobny klucz API
CI i weryfikacjaMinuty CI, środowiska efemeryczne, uruchomienia ewaluacji i zamortyzowana praca zespołu platformowego nad testamiRachunek za CI i chmurę, czas zespołu platformowegoTraktowanie pracy nad testami jako darmowej, bo wykonali ją etatowcy
ReviewGodziny ludzi spędzone na przeglądaniu zmian (autorstwa agentów i ludzi) razy pełny koszt godzinyPróbkowany czas review lub dane z osi czasu PRCałkowite pominięcie
PoprawkiGodziny na naprawę zmian po scaleniu, które nie wywołały incydentuPR-y naprawcze powiązane z oryginałemBłędy po cichu poprawione przy następnej funkcji
IncydentyGodziny reakcji i naprawy incydentów przypisanych do zmianyPostmortemyIncydenty bez powiązanej zmiany

Czas inżynierów spędzony na pisaniu kodu celowo nie wchodzi do żadnego z sześciu składników. To właśnie tę przepustowość agenci mają uwolnić, więc należy ona do strony wartości (zobacz dlaczego zaoszczędzony czas to nie gotówka). Godziny review, poprawek i incydentów są w liczniku, bo to te godziny pochłania praca agentów.

Przyjmij tę definicję dosłownie i zamroź ją na cały okres:

  • Zaakceptowana zmiana: pull request scalony do gałęzi domyślnej w danym okresie i niecofnięty w ciągu 30 dni od scalenia.
  • Wyłączone: automatyczne podbicia zależności i generowane aktualizacje lockfile’ów, które zawyżają liczbę, nie niosąc żadnej intencji.
  • Włączone: zmiany napisane przez ludzi, przez agentów i przez obu naraz, bo składniki kosztu obejmują je wszystkie. Oznaczaj PR-y autorstwa agentów etykietą, żeby później móc rozbić wynik.
  • Okno cofnięć: 30 dni. Licz wynik kwartału 30 dni po jego zamknięciu, a nie w ostatnim dniu.

W repozytorium na GitHubie wystarczą dwa polecenia w terminalu:

Okno terminala
# Scalone PR-y w kwartale (powtórz dla każdego repozytorium; zamień main na gałąź
# domyślną; wyklucz autorów-boty, np. Dependabota i Renovate)
gh pr list --state merged --base main --limit 1000 \
--search "merged:2026-07-01..2026-09-30 -author:app/dependabot -author:app/renovate" \
--json number --jq length
# Cofnięcia tych PR-ów, liczone po zamknięciu 30-dniowego okna
git log main --since=2026-07-01 --until=2026-10-30 --oneline --grep='^Revert "' | wc -l

Wyszukiwarka GitHuba zwraca najwyżej 1000 wyników; powyżej tego progu podziel zakres na miesiące. Liczba cofnięć to przybliżenie: pomija poprawki „do przodu” bez słowa „Revert”, a łapie też cofnięcia PR-ów scalonych przed kwartałem. Zanim liczba trafi do działu finansów, przypisz każde cofnięcie do jego PR-a, tak jak robi to pierwszy prompt poniżej. Przejrzyj co kwartał 20 PR-ów naprawczych, żeby sprawdzić, ile poprawek „do przodu” pomija ta liczba w twoich repozytoriach.

Dlaczego cena stanowiska to zła jednostka kosztu agentów?

Dział zatytułowany „Dlaczego cena stanowiska to zła jednostka kosztu agentów?”

Cena stanowiska była rozsądnym przybliżeniem, dopóki każdy programista używał autouzupełniania mniej więcej tyle samo. Agenci psują to na dwa sposoby.

Po pierwsze, rachunek przesuwa się ze stanowisk na zużycie rozliczane od użycia. Przewodnik kosztowy Anthropic dla Claude Code podaje średnią we wdrożeniach firmowych: „around $13 per developer per active day and $150-250 per developer per month, with costs remaining below $30 per active day for 90% of users” (Anthropic, dokumentacja Claude Code, sprawdzone 2026-09-26), a plan Enterprise to stanowisko plus zużycie według stawek API. GitHub zastąpił w Copilocie rozliczanie za żądania rozliczaniem za zużycie 2026-06-01, przy czym jeden GitHub AI Credit to $0,01 (dokumentacja GitHub, sprawdzone 2026-09-26). U intensywnego użytkownika stanowisko jest dziś najmniejszą pozycją na fakturze, a nie całą fakturą.

Po drugie, największe koszty nigdy nie trafiają na fakturę dostawcy. Telemetria Faros AI z 22 000 programistów (AI Engineering Report 2026, kwiecień 2026) pokazała wzrost przepustowości zadań na programistę o 33,7%, a obok tego wzrost incydentów na pull request o 242,7% i mediany czasu w review o 441,5%. To dane dostawcy z bazy klientów, którzy sami się wybrali, ale wskazują koszty, których cena stanowiska nie widzi. Dane DX to potwierdzają: mediana rozmiaru PR-a wzrosła z 44 do 72 linii między lipcem 2025 a czerwcem 2026 (Justin Reock, newsletter DX, 2026-06-17).

Podsumowanie badań DORA z 2025 roku mieści się w jednym zdaniu: „AI improves throughput, but often at the cost of stability if your foundation isn’t solid” (Nathen Harvey, DORA, 2026-01-07). Koszt zaakceptowanej zmiany jest zbudowany tak, żeby obie połowy tego zdania zmieściły się w jednej liczbie.

Jak zmienia się krzywa kosztu od poziomu 2 do poziomu 5?

Dział zatytułowany „Jak zmienia się krzywa kosztu od poziomu 2 do poziomu 5?”

Drabina autonomii opisuje, kto pisze kod i kto go czyta. Każdy szczebel przesuwa dominujący koszt do innego składnika wzoru: ze stanowisk na ludzkie review na poziomie 3, a potem na zużycie i przepustowość weryfikacji na poziomie 4. Poziom to cecha pętli, która wytworzyła zmianę, a nie całej firmy; jedna mapa drabiny, cyklu życia i stacji wyjaśnia, jak policzyć zespół, który prowadzi pętle na kilku poziomach.

PoziomKto czyta kodDominujący składnik kosztuCo ogranicza liczbę zaakceptowanych zmianCo finansować dalej
2 · w parzeCzłowiek, każdą linię, w trakcie pisaniaLicencje; review jest wtopione w pisanieCzas pisania przez ludziPunkt odniesienia: zmierz sześć składników, zanim cokolwiek się zmieni
3 · recenzentCzłowiek, każdy diffGodziny review, a zużycie zaczyna być widoczneGodziny recenzentów; Dan Shapiro („The Five Levels”, 2026-01-23) streszcza ten szczebel słowami „Your life is diffs”Mniejsze PR-y, triaż review według ryzyka, agenci do review
4 · autor specyfikacjiGłównie testyZużycie oraz CI i weryfikacjaSiła wyroczni testowej i przepustowość CIMocniejsze wyrocznie, pakiet dowodów dla każdej zmiany, środowiska efemeryczne
5 · fabrykaNikt nie czyta diffuZużycie i infrastruktura weryfikacji; koszt ludzi przesuwa się na intencję i utrzymanie wyroczniPrzepustowość weryfikacji i jakość specyfikacjiEwaluacje, obserwowalność, szybki rollback

Jedyna liczba kosztowa dla pracy w stylu fabryki w naszym materiale dowodowym dotyczy jednego użytkownika: Tim Sehn z DoltHub napisał, że sześćdziesiąt minut orkiestrowanej pracy wielu agentów „cost me about $100 in Claude tokens”, około dziesięć razy więcej niż zwykła sesja Claude Code w tym samym czasie (DoltHub, 2026-01-15). Jedna osoba i jedna konfiguracja, ale na szczycie drabiny zużycie to realna pozycja, warta ponoszenia tylko wtedy, gdy weryfikacja wokół niej wytrzymuje.

Dlaczego zaoszczędzony czas to nie zaoszczędzone pieniądze?

Dział zatytułowany „Dlaczego zaoszczędzony czas to nie zaoszczędzone pieniądze?”

Zaoszczędzony czas to twierdzenie o przepustowości. Zaoszczędzona gotówka to twierdzenie o budżecie. Pierwsze staje się drugim tylko jedną z trzech dróg i każdą z nich trzeba móc zaobserwować:

DrogaCo musisz umieć pokazaćGdzie to widać
Przesunięta przepustowośćZwolnione godziny dostarczyły sfinansowane pozycje roadmapy, które inaczej by czekałyCzas dostarczenia zobowiązanych pozycji roadmapy, a nie łączna liczba PR-ów
Uniknięty kosztNieprzedłużony kontrakt, odłożona rekrutacja, backlog przejęty od podwykonawcyPozycja, która zniknęła z budżetu
Termin przychoduKrótszy czas dostarczenia przesunął premierę lub datę kontraktuDatowany kamień milowy biznesu

Jeśli żadnej z trzech dróg nie widać, raportuj godziny jako przepustowość, a nie pieniądze. Deklarowane oszczędności czasu to też słaby dowód. Randomizowane badanie METR z 2025 roku wykazało, że doświadczeni programiści open source potrzebowali z narzędziami AI o 19% więcej czasu na zadanie (METR, 2025-07-10). Kontynuacja z 2026 roku dała oszacowania punktowe na korzyść AI, ale nieistotne statystycznie, a METR zaznacza, że efekty selekcji utrudniają ich interpretację (METR, aktualizacja z lutego 2026 i opublikowany kod analizy). Praca DORA o ROI opisuje krzywą J: spadek przed zwrotem (raport DORA o ROI, 2026; źródło wtórne, znane tylko z wyciągów wyszukiwarki i omówienia w InfoQ). Zaplanuj budżet na ten spadek, zamiast zakładać, że pierwszy kwartał sam się spłaci.

Poniższe liczby to przykładowe założenia dla zespołu dziesięciu inżynierów, nie benchmarki; prawdziwe ceny planów znajdziesz w analizie cen. Zużycie w kwartale B mieści się w opublikowanym przez Anthropic przedziale $150–250 na programistę miesięcznie; w kwartale C jest wyższe, bo dochodzą agenci do review i uruchomienia agentów w CI. Pełny koszt godziny inżyniera przyjęto na $100.

PozycjaKwartał A · poziom 2, punkt odniesieniaKwartał B · poziom 3, agenci rozliczani od użyciaKwartał C · poziom 3–4, sfinansowana weryfikacja
Licencje$1200 (10 stanowisk × $40 × 3 miesiące)$3000 (10 × $100 × 3)$3000
Zużycie$0 (w ramach stanowiska)$6000 (10 × $200 × 3)$9000 (dochodzą agenci do review i w CI)
CI i weryfikacja$1500$4500$12 000 (z zamortyzowaną pracą nad testami)
Review$30 000 (300 PR-ów × 1 h)$45 000 (600 PR-ów × 0,75 h)$38 500 (420 PR-ów niskiego ryzyka × 0,25 h + 280 × 1 h)
Poprawki$6000 (60 h)$18 000 (180 h)$10 000 (100 h)
Incydenty$2400 (2 × 12 h)$4800 (4 × 12 h)$2400 (2 × 12 h)
Razem$41 100$81 300$74 900
Scalone / cofnięte300 / 9600 / 30700 / 14
Zaakceptowane zmiany291570686
Koszt zaakceptowanej zmiany$141$143$109

W tej tabeli liczą się trzy rzeczy:

  1. Kwartał B podwoił produkcję i nie obniżył kosztu jednostkowego. Wydatki wzrosły z $41 100 do $81 300, a zaakceptowane zmiany z 291 do 570, więc każda zmiana kosztowała mniej więcej tyle samo. Zysk pochłonęły godziny review: to sufit poziomu 3 w liczbach.
  2. Kwartał C wydał więcej na weryfikację i mniej na ludzi. CI i weryfikacja wzrosły z $4500 do $12 000, a review, poprawki i incydenty łącznie spadły z $67 800 do $50 900. Zmiany niskiego ryzyka sprawdzano w 15 minut na podstawie pakietu dowodów. Koszt jednostkowy spadł o mniej więcej jedną czwartą.
  3. To jeszcze niczego nie dowodzi o wartości. Kwartał C dostarczył o 395 zaakceptowanych zmian więcej niż kwartał A. Są warte pieniądze tylko przez jedną z trzech dróg z poprzedniej sekcji. Pytanie o wartość należy do business case’u; ta strona daje mu uczciwy koszt.

Niski koszt jednostkowy kwartału A to częściowo artefakt metody: pomija godziny, które dziesięciu inżynierów spędziło na pisaniu każdej linii, czyli przepustowość, którą agenci uwalniają w kwartałach B i C. Zapisz te godziny w wierszu przepustowości w arkuszu, żeby ta wymiana pozostała widoczna.

Skopiuj blok poniżej i wklej go do komórki A1 pustego arkusza w Arkuszach Google lub Excelu. Kolumny rozdziela tabulator, więc każda linia trafia do kolumn A–C, a formuły się przeliczają. Wartości pochodzą z kwartału C przykładu. Zastąp liczby w kolumnie B i prowadź jeden arkusz na zespół na kwartał. W polskiej wersji Excela z przecinkiem dziesiętnym formuły działają bez zmian, bo nie zawierają ułamków.

Metryka Wartość Źródło lub właściciel
Okres 2026-Q3 Zamroź definicje przed początkiem okresu
Pełny koszt godziny inżyniera (USD) 100 Finanse
Licencje i stanowiska (USD) 3000 Faktury — finanse
Zużycie rozliczane od użycia (USD) 9000 Eksporty zużycia — zespół platformowy
CI i weryfikacja (USD) 12000 Rachunki za CI i chmurę, zamortyzowana praca nad testami
Godziny review 385 Próbkowany czas review — lider zespołu
Koszt review (USD) =B7*B3
Godziny poprawek 100 Powiązane PR-y naprawcze — lider zespołu
Koszt poprawek (USD) =B9*B3
Godziny incydentów 24 Postmortemy — właściciel dyżurów
Koszt incydentów (USD) =B11*B3
Koszt całkowity (USD) =B4+B5+B6+B8+B10+B12
Scalone PR-y (bez botów) 700 gh pr list
Cofnięte w ciągu 30 dni 14 git log --grep
Zaakceptowane zmiany =B14-B15
Koszt zaakceptowanej zmiany (USD) =B13/B16
Udział review w koszcie =B8/B13 Powyżej połowy: sfinansuj triaż review
Udział zużycia w koszcie =B5/B13 Rośnie przy płaskim koszcie jednostkowym: sprawdź weryfikację
Godziny pisania kodu (przepustowość, nie koszt) Lider zespołu — strona wartości, poza sumą

Obok wyniku dodaj dwa wiersze ograniczników i nie pozwól, żeby niższy koszt jednostkowy je uśrednił: wskaźnik nieudanych zmian (change failure rate) i defekty, które przeszły na produkcję, w tym samym okresie. Ich definicje znajdziesz w ramach metryk dla inżynierii agentowej.

Skąd wziąć każdą liczbę w Claude Code, Codex i Cursorze

Dział zatytułowany „Skąd wziąć każdą liczbę w Claude Code, Codex i Cursorze”

Licencje pochodzą z faktur za każde narzędzie. Zużycie to miejsce, w którym narzędzia się różnią, więc zbieraj je osobno:

  • Na programistę: /usage pokazuje koszt sesji, a w planach subskrypcyjnych także udział skilli, subagentów, pluginów i serwerów MCP. Kwota liczona jest po cenniku; ustaw zarządzane ustawienie modelPricing (Claude Code v2.1.242 lub nowszy), żeby odpowiadała stawkom z umowy.
  • Na organizację: administratorzy Team i Enterprise eksportują raport wydatków do CSV z analityki organizacji; w planie Enterprise zużycie i koszt per użytkownik zwraca Enterprise Analytics API, a raport wydatków obejmuje tylko wydatki z kredytów zużycia (usage credits). Organizacje w Console (API) korzystają z limitów wydatków workspace’ów i z Claude Code Analytics API.
  • W każdej konfiguracji: eksport OpenTelemetry przesyła metryki tokenów i kosztu per użytkownik do twojego stosu obserwowalności. Konfigurację opisuje zarządzanie kosztami.
  • Uruchomienia w CI: ogranicz każde uruchomienie nieinteraktywne (headless) przez claude -p --max-budget-usd 5 "…"; flaga działa tylko z --print.
  • Uważaj na: zużycie w ramach puli stanowiska Team lub Enterprise nie jest wyceniane w dolarach. Zapisuj wykorzystanie puli osobno, inaczej pozycja zużycia będzie zaniżona.

Agenci do review to też pozycja zużycia. Zarządzane Code Review od Anthropic „averages $15-25” za przegląd, a Ultrareview kosztuje zwykle od $5 do $25 za uruchomienie (Anthropic, dokumentacja Claude Code, sprawdzone 2026-09-26): przy kilkuset PR-ach na kwartał to pozycja czterocyfrowa.

Co kwartał wykonaj te kroki w tej kolejności:

  1. Zamroź definicje przed początkiem okresu: okno cofnięć, wyłączenia botów, pełny koszt godziny i listę repozytoriów. Zmiana którejkolwiek w trakcie okresu zeruje porównanie.
  2. Uzgodnij koszty z księgami. Licencje, zużycie i CI muszą zgadzać się z tym, co zapłaciły finanse, z dokładnością do kilku procent. Rozbieżność zwykle oznacza klucz API rozliczany poza raportami samych narzędzi.
  3. Próbkuj godziny. Godziny review i poprawek pochodzą z próbki 20–30 PR-ów, mierzonych na żywo lub odtworzonych z osi czasu PR. Zapisz rozmiar próbki obok liczby.
  4. Sprawdź ograniczniki. Wskaźnik nieudanych zmian i defekty na produkcji nie mogą się pogorszyć. Spadający koszt jednostkowy przy rosnącym wskaźniku awarii to pożyczka na koszt następnego kwartału.
  5. Zatwierdź w dwóch miejscach. Partner z finansów podpisuje pozycje kosztowe; lider inżynierii podpisuje mianownik i próbki godzin. CTO jest właścicielem definicji i każdej jej zmiany.

Liczba zaakceptowanych zmian jest tak wiarygodna jak kontrole, które decydują o akceptacji: słabe CI zawyża dzisiejszy mianownik oraz poprawki i incydenty w następnym kwartale. Dlatego weryfikowanie dowodów zamiast czytania każdego diffu jest warunkiem wstępnym tej strony, a nie dodatkiem.

Co idzie nie tak przy mierzeniu kosztu zaakceptowanej zmiany?

Dział zatytułowany „Co idzie nie tak przy mierzeniu kosztu zaakceptowanej zmiany?”

Zespoły dzielą zmiany, żeby podbić mianownik. Wyjście: raportuj medianę rozmiaru PR-a obok kosztu jednostkowego i porównuj kwartały udziałem dostarczonych zobowiązanych pozycji roadmapy, a nie samą liczbą.

Pule ukrywają pozycję zużycia. Stanowiska pochłaniają zużycie, dopóki ktoś nie dokupi kredytów, więc pierwsze kwartały wyglądają tanio. Wyjście: co miesiąc zapisuj wykorzystanie puli dla każdego zespołu z raportów administracyjnych, nawet gdy faktura się nie zmienia.

Godziny review są zgadywane, a nie próbkowane. Wyjście: co kwartał zmierz od początku do końca 20 PR-ów i pokaż rozmiar próbki w arkuszu.

Incydenty nie są przypisane do zmian. Wyjście: dodaj do szablonu postmortemu pole „zmiana, która spowodowała incydent” z dopuszczalną odpowiedzią „nieznana” i raportuj udział nieznanych.

Zespoły są porównywane między sobą. Różne bazy kodu i poziomy ryzyka sprawiają, że koszty jednostkowe między zespołami wprowadzają w błąd. Wyjście: porównuj każdy zespół z jego własnymi poprzednimi kwartałami.

Zaoszczędzone godziny zamieniają się w pieniądze na slajdzie dla zarządu. Ankieta razy pensje daje „oszczędności”, których finanse nie znajdą w budżecie. Wyjście: przenieś ją do pozycji przepustowości i nazwij przesunięcie pracy, uniknięty koszt lub termin przychodu, który zamieniłby ją w pieniądze.

Ścieżka CTO i ścieżka dla zarządu docierają tu po etapach poświęconych dowodom; na ścieżce CTO tuż przed tą stroną jest model operacyjny. Jeśli jeszcze tego nie zrobiłeś, najpierw przeczytaj, jak weryfikować dowody zamiast diffów. Stąd zarząd zamienia punkt odniesienia w sfinansowaną decyzję, a CTO ustala politykę autonomii, za którą ona płaci.

Najczęstsze pytania

Czym jest koszt zaakceptowanej zmiany?

To pełny koszt wytwarzania oprogramowania z agentami kodującymi w danym okresie (licencje i stanowiska, zużycie rozliczane od użycia, CI i weryfikacja, godziny review, poprawek i obsługi incydentów) podzielony przez liczbę zmian scalonych i niecofniętych w ciągu 30 dni.

Dlaczego zaoszczędzony czas to nie zaoszczędzone pieniądze?

Godziny zwolnione z pisania kodu stają się pieniędzmi tylko wtedy, gdy trafiają do pracy, która ma wartość, gdy pozwalają uniknąć realnego kosztu, takiego jak wykonawca zewnętrzny albo odłożona rekrutacja, lub gdy krótszy czas dostarczenia wcześniej przynosi przychód. W przeciwnym razie oszczędność zostaje w arkuszu godzin i nigdy nie trafia do budżetu.

Czy bardziej autonomiczni agenci obniżają koszt pojedynczej zmiany?

Tylko wtedy, gdy razem z nimi rośnie przepustowość weryfikacji. Więcej generowanego kodu bez mocniejszych testów, dowodów i triażu review zamienia się w godziny review, poprawki i incydenty, więc koszt zaakceptowanej zmiany stoi w miejscu albo rośnie, choć produkcja rośnie.