U posljednjih 15 godina radio sam na desecima softverskih projekata, a gotovo svaki put je dokumentacija bila strašna. Programeri podcjenjuju potrebu za dokumentacijom jer misle da već sve razumiju. Menadžeri to podcjenjuju jer pretpostavljaju da programeri mogu jednostavno pročitati kod i razumjeti projekt u nekoliko sati. Čak i kada ljudi ne podcjenjuju dokumentaciju, često im nedostaje vremena i kapaciteta za to. Nema zajedničke kulture ili intuicije o tome što se mora dokumentirati i što je očito. Razvijatelji često dodaju komentare za trivijalne funkcije ili opisuju parametre kada bi jasnija varijabilna imena ili tipovi riješili problem. Možda je dokumentacija samo zastarjela? Samo , što ukazuje na to da mnogi timovi tretiraju dokumentaciju kao "opcionalnu formalnost" 4% tvrtki uvijek dokumentira svoje procese https://www.bptrends.com/bpt/wp-content/uploads/2015-BPT-Survey-Report.pdf/ Istodobno 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 glavni uzrok gubitka vremena, a 69% programera gubi 8+ sati tjedno na takve neučinkovitosti (u iznosu od ~18,5 milijuna 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, uvelike ovisno o dokumentaciji https://stripe.com/files/reports/the-developer-coefficient.pdf Nedostatak dokumentacije je glavna komponenta tehničkog duga (https://www.informit.com/store/economics-of-software-quality-9780132582209) Eksperiment s više od 30 programera pokazao je da nedostatak dokumentacije uzrokuje oko 21% više vremena provedenog razumijevanjem koda tijekom zadataka održavanja https://hci.com.au/get-documentation-budget/ Dakle, koja je stvarna prepreka iza takvog raširenog nedostatka dokumentacije? U briljantnom radu Andrew Forward “Software Dokumentation – Building and Maintaining Artefacts of Communication” napravili su dobro istraživanje u stvarnim razlozima. External Factors Influencing Documentation Quality Kao što možete vidjeti, nedostatak vremena i proračuna povezan je s frustracijom da dokumentacijski napor može postati beskoristan i brzo zastarjel. Dakle, ako smanjimo ručni napor i riješimo problem zastarjelog 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 kodnih potpisa. Dakle, još uvijek trebamo dobro napisanu, ažuriranu, ljudski čitljivu dokumentaciju. 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 Dokumentacija, ali . pisanje Održavanje ispravno rješenja AI 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 djeluje na: ažuriranje opisa na visokoj razini Sljedeći članakKod namjere Ponovno pisanje zastarjelog fraza Obnova nestalog narativnog konteksta Međutim, AI ima jasna ograničenja: Ona se bori s otkrivanjem strukturnih nedosljednosti (npr. nedokumentirani env vars, pristaništa, zastave CLI, zastave značajki). Može halucinirati, osobito kada su dokazi nepotpuni ili dvosmisleni. To ne proizvodi sljedive, determinističke provjere - svaki trčanje može generirati malo drugačiji rezultat. Ne može pouzdano reći što je važno i što je buka bez domenskog znanja. Drugim riječima, AI može pomoći Međutim, još uvijek nije vjerodostojna kao . rewrite and improve text source of truth validator Statističke provjere alat kao rješava ovaj problem tretirajući dokumentaciju kao nešto što se mora neprestano pratiti, baš kao što je kvalitetu koda ili infrastrukture drift. to radi isključivo algoritmički tako da ne utječe na halucinacije, 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 putove, ulazne točke usluga, uvoz modula, strukturu direktora, ključeve konfiguracije - i usporedite ih s onim što je upućeno u vašim READMEs i wiki. Trenutačne sposobnosti Provjera prisutnosti entiteta: Detektira kada se promjenjive okoline, ključi konfiguracije, pristaništa, rute API-ja ili imena skripta pojavljuju u dokumentaciji, ali ne i u kodu (i obrnuto). Paralelno pokrivanje entiteta: Identificira skupine sličnih stavki (usluge, ETL poslove, lambda rukovatelje, CLI zapovijedi) i označava nedokumentirane dodatke. Analiza mrtvih modula: Detektira datoteke koje nisu uvezene/upotrijebljene nigdje – ili ulazne točke koje zaslužuju objašnjenje ili zastarjele artefakte. Provjera integriteta URL-a: otkriva slomljene ili zastarjele poveznice na unutarnje ili vanjske resurse. Dosljednost uroka i stila: Osnovna higijena koja se obično ignorira. To je već dovoljno za smanjenje velikog dijela tihe dokumentacije u stvarnim projektima. Zaključak Dokumentacija ne propada jer su inženjeri nepažljivi. koji ga održava u skladu sa sustavom 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 činjenicu usklađivanja, ali ne mogu objasniti namjeru ili logiku domene. correct Obojica zajedno mogu donijeti ono što vam je potrebno.