U proteklih 15 godina radio sam na desecima softverskih projekata, a skoro svaki put je dokumentacija bila strašna. Programeri potcenjuju potrebu za dokumentacijom jer misle da već sve razumeju. Menadžeri to potcenjuju jer pretpostavljaju da programeri mogu jednostavno pročitati kod i razumjeti projekt u roku od nekoliko sati. Čak i kada ljudi ne potcenjuju dokumentaciju, često im nedostaje vremena i kapaciteta za to. Ne postoji zajednička kultura ili intuicija o tome šta treba dokumentirati i što je očito. Programeri često dodaju komentare za trivijalne funkcije ili opisuju parametre kada bi jasnija varijabilna imena ili tipovi riješili problem. Možda je dokumentacija jednostavno zastarjela? samo , što ukazuje na to da mnogi timovi tretiraju dokumentaciju kao "opcionalnu formalnost" 4% kompanija uvek dokumentira svoje procese https://www.bptrends.com/bpt/wp-content/uploads/2015-BPT-Survey-Report.pdf/ Istovremeno imamo snažne dokaze da bez dobre dokumentacije posao samo gubi ogromnu količinu vremena i novca: “Nedovoljna dokumentacija” koju je 41% programera navelo kao vodeći uzrok gubitka vremena, a 69% programera gubi 8+ sati nedeljno na takve neučinkovitosti (u iznosu od ~18,5 miliona dolara godišnje izgubljene produktivnosti po 1.000 programera) https://newsletter.getdx.com/p/state-of-developer-experience-2024 Uključivanje novog inženjera traje 3–9 mjeseci, u velikoj mjeri ovisno o dokumentaciji https://stripe.com/files/reports/the-developer-coefficient.pdf Nedostatak dokumentacije je važna komponenta tehničkog duga (https://www.informit.com/store/economics-of-software-quality-9780132582209) Eksperiment sa više od 30 programera pokazao je da nedostatak dokumentacije uzrokuje oko 21% više vremena provedenog razumijevanjem koda tokom održavanja zadataka https://hci.com.au/get-documentation-budget/ Dakle, koja je stvarna prepreka iza tako raširenog nedostatka dokumentacije? U briljantnom radu Andrew Forward „Programska dokumentacija – Izgradnja i održavanje artefakata komunikacije” napravili su dobro istraživanje u stvarnim razlozima. External Factors Influencing Documentation Quality Kao što možete vidjeti, nedostatak vremena i budžeta korelira s frustracijom da dokumentacija može postati beskorisna i brzo zastarjela. Dakle, ako smanjimo ručni napor i riješimo problem zastarjele dokumentacije, možemo napraviti značajan korak naprijed. Zajednica programera već je uvela pristupe poput Javadoc-a i sličnih alata koji automatski generiraju dokumentaciju iz kodskih potpisa. Stoga nam je i dalje potrebna dobro napisana, ažurirana, ljudski čitljiva dokumentacija. Stvarni izazov je u tome što dokumentacija nije jednokratna, već Čak i ako tim na početku piše dobre dokumente, kod se razvija brže od navika u dokumentiranju. Živi artefakt To znači da bočica nije dokumentacije, ali . pisanje Održavanje ispravno Rešenja Koji AI je zapravo dobar u usklađivanju jednostavnih uzoraka između koda i dokumenata. Merge request rules, pointing agent to existing documentation and changed code base Claude Code documentation agent that keeps project docs up to date with Docusaurus. npx claude-code-templates@latest --agent=documentation/docusaurus-expert --yes Ovaj pristup dobro radi za: ažuriranje opisa na visokoj razini Sažetak kod intencija Prepisivanje zastarelih fraza Obnavljanje nedostajućeg narativnog konteksta Međutim, AI ima jasna ograničenja: Ona se bori da otkrije strukturne nedosljednosti (npr. nedokumentirani env vars, portovi, zastave CLI, zastave karaktera). Može halucinirati, pogotovo kada su dokumenti nepotpuni ili dvosmisleni. Ne proizvodi praćenje, deterministske provjere - svaki trčanje može generisati malo drugačiji rezultat. Ne može pouzdano reći šta je važno i šta je buka bez domenskog znanja. Drugim rečima, AI može pomoći , ali još nije pouzdano kao . rewrite and improve text source of truth validator Static provjere alat kao što je rješava ovaj problem tretirajući dokumentaciju kao nešto što mora biti neprestano praćeno, baš kao što je kod kvaliteta ili infrastrukturni drift. Radi isključivo algoritmički tako da nije pogođen halucinacijama, iako su, naravno, lažni pozitivni još uvijek mogući. Duško Ducku radi tako što izvlači strukturne signale iz vašeg repozitorija – promjenjive okoline, API rute, ulazne točke usluga, uvoz modula, strukturu direktora, ključeve konfiguracije – i uspoređuje ih s onim što je upućeno u vašim READMEs i wiki. Aktuelne sposobnosti Proveravanje prisutnosti entiteta: Detektuje kada se promjenjive okoline, ključi konfiguracije, portovi, API rute ili imena skripta pojavljuju u dokumentaciji, ali ne i u kodu (i obrnuto). Paralelno pokrivanje entiteta: Identifikuje grupe sličnih stavki (usluge, ETL poslove, lambda rukovatelje, CLI komande) i označava nedokumentirane dodatke. Analiza mrtvih modula: Detektuje datoteke koje nisu uvezene / korištene bilo gde – bilo da su to ulazne točke koje zaslužuju objašnjenje ili zastarjeli artefakti. Provjera integriteta URL-a: Otkriva slomljene ili zastarjele veze na unutrašnje ili vanjske resurse. Konzistencija čarolije i stila: Osnovna higijena koja se obično ignorira. To je već dovoljno da se smanji veliki deo tihe dokumentacije drift u stvarnim projektima. Zaključak Dokumentacija ne propada zato što su inženjeri nepažljivi. koji ga drži u skladu sa sistemom koji opisuje. Koda ima testove. Infrastruktura ima detekciju drift. CI ima vrata politike. Dokumentacija, u većini timova, nema ništa. no feedback loop AI može poboljšati izražavanje i vratiti kontekst, ali ne može pouzdano reći je li dokumentacija Statičke provjere, s druge strane, mogu potvrditi faktičko poravnanje, ali ne mogu objasniti namjeru ili logiku domena. correct Obojica zajedno mogu donijeti ono što vam je potrebno.