{"id":16682,"date":"2026-10-09T20:46:44","date_gmt":"2026-10-09T18:46:44","guid":{"rendered":"https:\/\/www.tomislavstankovic.com\/blog\/?p=16682"},"modified":"2026-10-23T05:17:53","modified_gmt":"2026-10-23T03:17:53","slug":"kako-softverski-projekti-propadaju","status":"publish","type":"post","link":"https:\/\/www.tomislavstankovic.com\/blog\/kako-softverski-projekti-propadaju\/","title":{"rendered":"Kako softverski projekti propadaju: obrasci koji se ponavljaju"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Kroz godine rada i komunikacije s drugim developerima susreo sam veliki broj softverskih projekata razvijenih u <a href=\"https:\/\/www.tomislavstankovic.com\/blog\/category\/razvoj\/\" data-type=\"category\" data-id=\"351\">razli\u010ditim tehnologijama<\/a>. Neki su zapo\u010deli s jasnom vizijom, definiranim pravilima i velikim entuzijazmom. Drugi nisu imali ni osnovne temelje.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unato\u010d tim razlikama kod mnogih sam primijetio gotovo identi\u010dan obrazac propadanja.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ne govorim o komercijalnom neuspjehu, nedostatku korisnika ili lo\u0161em marketingu. Govorim o tehni\u010dkom propadanju softvera koji mo\u017eda i dalje radi, ima korisnike i redovito dobiva nove funkcionalnosti, ali ga je svakim danom sve te\u017ee odr\u017eavati.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Takvi projekti rijetko propadaju preko no\u0107i. Propadaju polako, gotovo neprimjetno. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u010cesto to po\u010dinje jednim kompromisom kojeg nitko u tom trenutku ne smatra va\u017enim.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Propadanje ne po\u010dinje velikom gre\u0161kom<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Projekt mo\u017ee biti aktivan, imati koliko toliko stabilnu bazu korisnika \u0161to mo\u017ee zavarati da je sve u redu. I naj\u010de\u0161\u0107e <strong>ne\u0107e propasti jednom lo\u0161om odlukom<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No kada do\u0111e do &#8220;privremenih&#8221; kompromisa da \u0107e se ne\u0161to napraviti kako treba kada bude vi\u0161e vremena, da automatski testovi sada nisu potrebni i nemamo vremena za refaktoring po\u010dinje proces polaganog raspadanja.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Privremeni kompromisi jako \u010desto nisu privremeni nego postanu na\u010din rada. A linijom manjeg otpora bitno je samo isporu\u010diti nije bitno \u0161to. Sve do jednom.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kada se zahtjevi mijenjaju br\u017ee od koda<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nije problem kada se zahtjevi mijenjaju. Razvoj softvera nije stati\u010dan proces i promjene su o\u010dekivane. Problem nastaje kada se <strong>mijenjaju bez razumijevanja njihovih posljedica<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Funkcionalnost koja je ju\u010der bila zavr\u0161ena danas vi\u0161e ne odgovara novim zahtjevima. Dodaje se jo\u0161 jedan uvjet, jo\u0161 jedna iznimka, jo\u0161 jedno polje. Rok ostaje isti jer se radi o &#8220;samo maloj izmjeni&#8221;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No ono \u0161to se korisniku \u010dini kao mala promjena mo\u017ee zahtijevati izmjene baze podataka, poslovne logike, korisni\u010dkog su\u010delja i postoje\u0107ih integracija.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ako se takve promjene stalno dodaju bez ponovne procjene vremena i resursa, projekt s vremenom postaje skup me\u0111usobno povezanih kompromisa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Na kraju nitko vi\u0161e nije siguran <strong>\u0161to je bio izvorni zahtjev<\/strong>, \u0161to je naknadno dodano i za\u0161to je ne\u0161to implementirano ba\u0161 tako. A dokumentacija, ako postoji, naj\u010de\u0161\u0107e je ostala negdje na po\u010detku.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kada rokovi odre\u0111uju kvalitetu<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Nerealni rokovi i procjene<\/strong> \u010desto su po\u010detak problema. Nekada se rok isporuke odredi prije nego \u0161to se uop\u0107e zna \u0161to treba napraviti, a procjena developera postane samo formalnost.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ako je potrebno deset dana, a na raspolaganju je pet, posao ne\u0107e \u010darobno postati dvostruko jednostavniji. Ne\u0161to se mora izbaciti.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Naj\u010de\u0161\u0107e to budu stvari koje korisnik ne vidi. Testovi, dokumentacija, refaktoring, provjera kvalitete i sve ono \u0161to nije nu\u017eno da bi funkcionalnost na prvi pogled radila.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"> Projekt je isporu\u010den na vrijeme, svi su zadovoljni, a tehni\u010dki dug ostaje developerima koji \u0107e ga odr\u017eavati.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Problem nastaje kada takav na\u010din rada postane pravilo. <strong>Svaka sljede\u0107a isporuka sve je zahtjevnija<\/strong> jer se uz nove funkcionalnosti mora nositi i teret prethodnih kompromisa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Na kraju se postavlja pitanje za\u0161to razvoj traje toliko dugo, iako je upravo stalno forsiranje brzine jedan od razloga.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pravila postoje, ali samo na papiru<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">U zdravom projektu, pogotovo kada na njemu radi vi\u0161e osoba, treba imati i zadovoljiti neke standarde. Naming konvencije, struktura projekta, code review proces, CI\/CD i sl. ne bi trebali biti opcionalni nego obavezni.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">U projektu koji propada ta i druga pravila su ne\u0161to \u0161to se zaobilazi. Bez dosljedne primjene standarda <strong>developeri s vremenom po\u010dinju razvijati vlastite na\u010dine rada<\/strong>. To kratkoro\u010dno daje osje\u0107aj brzine, a dugoro\u010dno ubija projekt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tehni\u010dki dug postaje norma<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tehni\u010dki se dug ne mo\u017ee uvijek izbje\u0107i, ali kao i svaki dug ako se gomila jednom \u0107e puknuti. Sve ono \u0161to \u0107e se &#8220;rije\u0161iti kasnije&#8221; postaje problem ako to kasnije nema jasan rok ni plan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kada kod prestane biti razumljiv, a postane ne\u0161to \u0161to se izbjegava jer \u0107e se ne\u0161to drugo pokidati ve\u0107 je kasno. To se najlak\u0161e mo\u017ee vidjeti u situacijama kada ispravljanje gre\u0161aka traje du\u017ee nego implementacija nove funkcionalnosti, a svaka isporuka je stres.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Kada taj stres postane norma lako je djelovati zaposleno i prihvatiti da je to na\u010din rada, \u010dak se osjetiti va\u017eno spa\u0161avaju\u0107i ne\u0161to do \u010dega nije trebalo niti do\u0107i.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Gubitak vlasni\u0161tva nad kodom<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kao i u svemu, mora postojati odgovorna osoba jer &#8220;puno baba kilavo dijete&#8221;. Mo\u017eda je projekt u po\u010detku imao odgovornu osobu, onda se ona promijenila ili je do\u0161lo vi\u0161e developera od kojih je svaki radio po svome.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tko je kasnije odgovoran za nered? Na \u010diji na\u010din se radi? Tko \u0107e popravljati za kime? Puno pitanja, a nitko spreman odgovoriti. Lak\u0161e je pre\u0161utjeti problem nego riskirati sukob upozoravanjem na njega.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ljudi mogu oti\u0107i, ali znanje ne bi trebalo oti\u0107i za njima. No ako je svatko radio po svome to se naj\u010de\u0161\u0107e dogodi jer &#8220;\u0161ta ja znam \u0161to je on radio&#8221;. Novi developer mo\u017ee krpati projekt no ako je to bez razumijevanja i nema dokumentacije, tehni\u010dki dug \u0107e samo rasti.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Kolektivno vlasni\u0161tvo nad kodom nije samo po sebi problem. Problem je kada svi imaju pravo mijenjati kod, ali nitko ne preuzima odgovornost za njegovu kvalitetu i odr\u017eivost.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tehnologija napreduje, projekt stoji<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Jedan od najvidljivijih znakova zanemarivanja projekta su <strong>zastarjele tehnologije<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Projekt je mo\u017eda zapo\u010deo na tada aktualnoj verziji Angulara ili neke druge tehnologije. No kako godine prolaze projekt stoji dok nove verzije redovno izlaze.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jo\u0161 je pogubnije kada se ve\u0107 zastarjele tehnologije kopiraju za nove projekte i tako <strong>prenose postoje\u0107i tehni\u010dki dug<\/strong>. Pa tako novi projekt starta sa deset i vi\u0161e godina starim ovisnostima koje imaju toliko ranjivosti da ih nitko vi\u0161e ne\u0107e mo\u0107i ispraviti \u010dak i da \u017eeli. Pogotovo u produkciji.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Razlozi su uvijek sli\u010dni. Nema se vremena, za\u0161to dirati ako radi ili a\u017eurirat \u0107emo kada bude potrebno. Kada je brzina isporuke jedini prioritet, a\u017euriranje nikada ne dolazi na red.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Problem je \u0161to odr\u017eavanje projekta ne zna\u010di samo dodavanje novih funkcionalnosti ili ispravljanje funkcionalnih gre\u0161aka. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ako nema odr\u017eavanja i pra\u0107enja razvoja tehnologije na kojoj se projekt temelji dugoro\u010dna odr\u017eivost je upitna. \u0160to se nadogradnje dulje odga\u0111aju to postaje slo\u017eenije, skuplje i rizi\u010dnije.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>U jednom trenutku ono \u0161to je moglo biti redovno odr\u017eavanje postaje zaseban projekt.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Dokumentacija? Postoji. Negdje.<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Na prste jedne ruke mogu nabrojati potpunu i a\u017eurnu dokumentaciju koja je pratila stvarno stanje softvera. Nikome se ne da ili \u0107e to kasnije.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Naj\u010de\u0161\u0107e su to tri faze:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>dokumentacija ne postoji<\/li>\n\n\n\n<li>dokumentacija postoji, ali je vidljivo zastarjela<\/li>\n\n\n\n<li>dokumentacija postoji i aktivno smeta jer sadr\u017eava neto\u010dne informacije<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Sve to poma\u017ee da <strong>nitko ne zna \u0161to i za\u0161to radi<\/strong>. &#8220;Ma samo ne\u0161to napravi da radi i ba\u0161 te briga.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tu je lako sru\u0161iti <a href=\"https:\/\/fs.blog\/chestertons-fence\/\" target=\"_blank\" rel=\"noreferrer noopener\">Chestertonovu ogradu<\/a> jer se ne zna \u0161to stoji iza neke linije koda koja se mo\u017ee \u010diniti skroz nelogi\u010dnom. Bez dokumentacije i pravila puno takvih ograda se mo\u017ee nalaziti u projektu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Chestertonova ograda opisuje jednostavno na\u010delo: prije nego \u0161to ne\u0161to uklonimo ili promijenimo, trebamo razumjeti za\u0161to je uop\u0107e postavljeno.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Komunikacija postaje rizik<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">U po\u010detku se projekt, ako ima vremena, razra\u0111uje. Daju se ideje, planiraju se razvojne faze, zna se rok za isporuku. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Onda krene &#8220;fu\u0161arenje&#8221; jer ako se moglo na drugom projektu, a bio je brz za\u0161to se ne bi moglo i sada. &#8220;Samo da zavr\u0161imo&#8221; postaje moto, a nove ideje smetnja. Problemi se guraju pod tepih.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Onaj tko digne tepih dobiva &#8220;metlu&#8221; da to pomete.<\/strong> I \u0161to se dogodi? Vi\u0161e nitko ne di\u017ee tepih iako je ve\u0107 na oko vidljivo da se ispod nalazi &#8220;tona pra\u0161ine&#8221;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Upozoravanjem na problem postaje\u0161 ve\u0107i problem od pravog problema.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Projekt pre\u017eivljava<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Projekt nije mrtav, ali vi\u0161e ne napreduje. Bez razbijanja i preslagivanja svega rast postaje nemogu\u0107. Projekt nije odr\u017eiv. <strong>Svaki korak naprijed postaje dva koraka unazad<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Svaka nova funkcionalnost traje predugo, unosi sve vi\u0161e gre\u0161aka i pove\u0107ava kompleksnost. Ako je projekt sam sebi svrha to mo\u017eda nije problem, ali ako treba rije\u0161iti neki poslovni problem onda ote\u017eava to rje\u0161avanje.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mo\u017ee li se sve to sprije\u010diti?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Uz zdrave temelje mo\u017ee. Potrebna su <strong>jasna i dosljedna pravila<\/strong> kojih se svi developeri pridr\u017eavaju. Nekada jedno &#8220;pravo&#8221; pravilo mo\u017ee zna\u010diti vi\u0161e nego nabacanih njih 10 koji zapravo ni\u0161ta ne zna\u010de.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Code review<\/strong> bi trebao biti standard, a ne opcija. Kada je opcija po\u010dinje &#8220;fu\u0161arenje&#8221; jer &#8220;kod ionako nitko ne gleda&#8221;. Uz sve ve\u0107u upotrebu umjetne inteligencije taj problem mo\u017ee postati jo\u0161 izra\u017eeniji. Kod se mo\u017ee generirati br\u017ee nego ikada, ali ako ga nitko ne razumije, ne provjerava i ne preuzima odgovornost za njega brzina razvoja samo ubrzava gomilanje tehni\u010dkog duga.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vrijeme za mini <strong>refaktoring<\/strong> treba biti ugra\u0111eno u postoje\u0107e procjene. Bez redovnog refaktoringa dugoro\u010dni razvoj i odr\u017eavanje postaju sve te\u017ei. Tada se svaki projekt mo\u017ee ponovno raditi od nule kada vi\u0161e nije mogu\u0107e dodati novu funkcionalnost bez da se sve raspadne.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Jasno definirana odgovornost<\/strong> smanjuje prostor za me\u0111usobno prebacivanje krivnje. Tko je \u0161to napravio (dokumentacija) i za\u0161to (dokumentacija), gdje stoji kod (dokumentacija). Ako su svi radili sve, svatko na svoj na\u010din i nitko ne zna gdje se koji dio projekta nalazi nitko nije odgovoran.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Kontinuirano odr\u017eavanje ovisnosti<\/strong>. Nadogradnje frameworka, biblioteka i razvojnih alata trebaju biti planirani dio razvoja. Ne ka\u017eem da svaku novu verziju odmah treba uvoditi u produkciju, ali ne smije se godinama niti ignoriorirati njihov razvoj.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Automatizacija pravila<\/strong> jer pravila koja ovise o dobroj volji developera prije ili kasnije \u0107e se prekr\u0161iti. Zato je korisno automatizirati ono \u0161to se mo\u017ee: linting, formatiranje, testove, provjere ovisnosti, CI\/CD proces i sl. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Zaklju\u010dak<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Softverski projekti ne propadaju jer su ljudi (developeri, voditelji projekata, Scrum Masteri i ostali) nesposobni. Propadaju kada organizacijski procesi ne uspijevaju prepoznati, sprije\u010diti i ispraviti lo\u0161e razvojne prakse.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kada jedna osoba napravi kompromis, druga napravi jo\u0161 ve\u0107i, a tre\u0107a vi\u0161e ne vidi problem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">S vremenom ono \u0161to je prije bilo neprihvatljivo postaje standard. Pravila gube smisao, dokumentacija zastarijeva, tehni\u010dki dug raste, a odgovornost se prebacuje s jedne osobe na drugu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I mo\u017eda je upravo to najopasniji trenutak u \u017eivotnom ciklusu softverskog projekta. <strong>Svi znaju da ne\u0161to nije u redu, ali vi\u0161e nitko ne o\u010dekuje da \u0107e se i\u0161ta promijeniti.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kroz godine rada i komunikacije s drugim developerima susreo sam veliki broj softverskih projekata razvijenih u razli\u010ditim tehnologijama. Neki su zapo\u010deli s jasnom vizijom, definiranim pravilima i velikim entuzijazmom. Drugi nisu imali ni osnovne temelje. Unato\u010d tim razlikama kod mnogih sam primijetio gotovo identi\u010dan obrazac propadanja. Ne govorim o komercijalnom neuspjehu, nedostatku korisnika ili lo\u0161em &hellip; <a href=\"https:\/\/www.tomislavstankovic.com\/blog\/kako-softverski-projekti-propadaju\/\" class=\"more-link\">Nastavi \u010ditati <span class=\"screen-reader-text\">Kako softverski projekti propadaju: obrasci koji se ponavljaju<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":16715,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"footnotes":""},"categories":[351],"tags":[818,793,817,820,819],"class_list":["post-16682","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-razvoj","tag-chestertonova-ograda","tag-razvoj-softvera","tag-softver","tag-tehnicka-dokumentacija","tag-tehnicki-dug"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Kako softverski projekti propadaju: obrasci koji se ponavljaju - Tomislav Stankovi\u0107<\/title>\n<meta name=\"description\" content=\"Za\u0161to softverski projekti s vremenom postaju neodr\u017eivi? Iz iskustva opisujem tehni\u010dki dug, lo\u0161e prakse, zastarjelu dokumentaciju i gubitak odgovornosti.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.tomislavstankovic.com\/blog\/kako-softverski-projekti-propadaju\/\" \/>\n<meta property=\"og:locale\" content=\"hr_HR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kako softverski projekti propadaju: obrasci koji se ponavljaju - Tomislav Stankovi\u0107\" \/>\n<meta property=\"og:description\" content=\"Za\u0161to softverski projekti s vremenom postaju neodr\u017eivi? Iz iskustva opisujem tehni\u010dki dug, lo\u0161e prakse, zastarjelu dokumentaciju i gubitak odgovornosti.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.tomislavstankovic.com\/blog\/kako-softverski-projekti-propadaju\/\" \/>\n<meta property=\"og:site_name\" content=\"Tomislav Stankovi\u0107\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-09T18:46:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-23T03:17:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2026\/10\/Kako-softverski-projekti-propadaju.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"853\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Tomislav Stankovi\u0107\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisao\/la\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tomislav Stankovi\u0107\" \/>\n\t<meta name=\"twitter:label2\" content=\"Procijenjeno vrijeme \u010ditanja\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minuta\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/kako-softverski-projekti-propadaju\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/kako-softverski-projekti-propadaju\\\/\"},\"author\":{\"name\":\"Tomislav Stankovi\u0107\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/#\\\/schema\\\/person\\\/0329c549c57700034ea77f5d3d78396d\"},\"headline\":\"Kako softverski projekti propadaju: obrasci koji se ponavljaju\",\"datePublished\":\"2026-10-09T18:46:44+00:00\",\"dateModified\":\"2026-10-23T03:17:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/kako-softverski-projekti-propadaju\\\/\"},\"wordCount\":1800,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/#\\\/schema\\\/person\\\/0329c549c57700034ea77f5d3d78396d\"},\"image\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/kako-softverski-projekti-propadaju\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/Kako-softverski-projekti-propadaju.jpg\",\"keywords\":[\"Chestertonova ograda\",\"razvoj softvera\",\"softver\",\"tehni\u010dka dokumentacija\",\"tehni\u010dki dug\"],\"articleSection\":[\"Razvoj\"],\"inLanguage\":\"hr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/kako-softverski-projekti-propadaju\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/kako-softverski-projekti-propadaju\\\/\",\"url\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/kako-softverski-projekti-propadaju\\\/\",\"name\":\"Kako softverski projekti propadaju: obrasci koji se ponavljaju - Tomislav Stankovi\u0107\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/kako-softverski-projekti-propadaju\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/kako-softverski-projekti-propadaju\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/Kako-softverski-projekti-propadaju.jpg\",\"datePublished\":\"2026-10-09T18:46:44+00:00\",\"dateModified\":\"2026-10-23T03:17:53+00:00\",\"description\":\"Za\u0161to softverski projekti s vremenom postaju neodr\u017eivi? Iz iskustva opisujem tehni\u010dki dug, lo\u0161e prakse, zastarjelu dokumentaciju i gubitak odgovornosti.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/kako-softverski-projekti-propadaju\\\/#breadcrumb\"},\"inLanguage\":\"hr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/kako-softverski-projekti-propadaju\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"hr\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/kako-softverski-projekti-propadaju\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/Kako-softverski-projekti-propadaju.jpg\",\"contentUrl\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/Kako-softverski-projekti-propadaju.jpg\",\"width\":1280,\"height\":853,\"caption\":\"Kako softverski projekti propadaju\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/kako-softverski-projekti-propadaju\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Po\u010detna stranica\",\"item\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kako softverski projekti propadaju: obrasci koji se ponavljaju\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/\",\"name\":\"Tomislav Stankovi\u0107\",\"description\":\"Sam svoj bloger\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/#\\\/schema\\\/person\\\/0329c549c57700034ea77f5d3d78396d\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"hr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/#\\\/schema\\\/person\\\/0329c549c57700034ea77f5d3d78396d\",\"name\":\"Tomislav Stankovi\u0107\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"hr\",\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/cropped-TomislavStankovic.jpg\",\"url\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/cropped-TomislavStankovic.jpg\",\"contentUrl\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/cropped-TomislavStankovic.jpg\",\"width\":248,\"height\":165,\"caption\":\"Tomislav Stankovi\u0107\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/cropped-TomislavStankovic.jpg\"},\"description\":\"Bloger \u0161irokog raspona interesa od kojih dio voli objaviti na ovom blogu. U neslobodno vrijeme Angular developer mobilnih i web aplikacija.\",\"sameAs\":[\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/tomislavstankovic\\\/\"],\"url\":\"https:\\\/\\\/www.tomislavstankovic.com\\\/blog\\\/author\\\/tomislavstankovic\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Kako softverski projekti propadaju: obrasci koji se ponavljaju - Tomislav Stankovi\u0107","description":"Za\u0161to softverski projekti s vremenom postaju neodr\u017eivi? Iz iskustva opisujem tehni\u010dki dug, lo\u0161e prakse, zastarjelu dokumentaciju i gubitak odgovornosti.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.tomislavstankovic.com\/blog\/kako-softverski-projekti-propadaju\/","og_locale":"hr_HR","og_type":"article","og_title":"Kako softverski projekti propadaju: obrasci koji se ponavljaju - Tomislav Stankovi\u0107","og_description":"Za\u0161to softverski projekti s vremenom postaju neodr\u017eivi? Iz iskustva opisujem tehni\u010dki dug, lo\u0161e prakse, zastarjelu dokumentaciju i gubitak odgovornosti.","og_url":"https:\/\/www.tomislavstankovic.com\/blog\/kako-softverski-projekti-propadaju\/","og_site_name":"Tomislav Stankovi\u0107","article_published_time":"2026-10-09T18:46:44+00:00","article_modified_time":"2026-10-23T03:17:53+00:00","og_image":[{"width":1280,"height":853,"url":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2026\/10\/Kako-softverski-projekti-propadaju.jpg","type":"image\/jpeg"}],"author":"Tomislav Stankovi\u0107","twitter_card":"summary_large_image","twitter_misc":{"Napisao\/la":"Tomislav Stankovi\u0107","Procijenjeno vrijeme \u010ditanja":"9 minuta"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.tomislavstankovic.com\/blog\/kako-softverski-projekti-propadaju\/#article","isPartOf":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/kako-softverski-projekti-propadaju\/"},"author":{"name":"Tomislav Stankovi\u0107","@id":"https:\/\/www.tomislavstankovic.com\/blog\/#\/schema\/person\/0329c549c57700034ea77f5d3d78396d"},"headline":"Kako softverski projekti propadaju: obrasci koji se ponavljaju","datePublished":"2026-10-09T18:46:44+00:00","dateModified":"2026-10-23T03:17:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/kako-softverski-projekti-propadaju\/"},"wordCount":1800,"commentCount":0,"publisher":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/#\/schema\/person\/0329c549c57700034ea77f5d3d78396d"},"image":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/kako-softverski-projekti-propadaju\/#primaryimage"},"thumbnailUrl":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2026\/10\/Kako-softverski-projekti-propadaju.jpg","keywords":["Chestertonova ograda","razvoj softvera","softver","tehni\u010dka dokumentacija","tehni\u010dki dug"],"articleSection":["Razvoj"],"inLanguage":"hr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.tomislavstankovic.com\/blog\/kako-softverski-projekti-propadaju\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.tomislavstankovic.com\/blog\/kako-softverski-projekti-propadaju\/","url":"https:\/\/www.tomislavstankovic.com\/blog\/kako-softverski-projekti-propadaju\/","name":"Kako softverski projekti propadaju: obrasci koji se ponavljaju - Tomislav Stankovi\u0107","isPartOf":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/kako-softverski-projekti-propadaju\/#primaryimage"},"image":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/kako-softverski-projekti-propadaju\/#primaryimage"},"thumbnailUrl":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2026\/10\/Kako-softverski-projekti-propadaju.jpg","datePublished":"2026-10-09T18:46:44+00:00","dateModified":"2026-10-23T03:17:53+00:00","description":"Za\u0161to softverski projekti s vremenom postaju neodr\u017eivi? Iz iskustva opisujem tehni\u010dki dug, lo\u0161e prakse, zastarjelu dokumentaciju i gubitak odgovornosti.","breadcrumb":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/kako-softverski-projekti-propadaju\/#breadcrumb"},"inLanguage":"hr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.tomislavstankovic.com\/blog\/kako-softverski-projekti-propadaju\/"]}]},{"@type":"ImageObject","inLanguage":"hr","@id":"https:\/\/www.tomislavstankovic.com\/blog\/kako-softverski-projekti-propadaju\/#primaryimage","url":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2026\/10\/Kako-softverski-projekti-propadaju.jpg","contentUrl":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2026\/10\/Kako-softverski-projekti-propadaju.jpg","width":1280,"height":853,"caption":"Kako softverski projekti propadaju"},{"@type":"BreadcrumbList","@id":"https:\/\/www.tomislavstankovic.com\/blog\/kako-softverski-projekti-propadaju\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Po\u010detna stranica","item":"https:\/\/www.tomislavstankovic.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Kako softverski projekti propadaju: obrasci koji se ponavljaju"}]},{"@type":"WebSite","@id":"https:\/\/www.tomislavstankovic.com\/blog\/#website","url":"https:\/\/www.tomislavstankovic.com\/blog\/","name":"Tomislav Stankovi\u0107","description":"Sam svoj bloger","publisher":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/#\/schema\/person\/0329c549c57700034ea77f5d3d78396d"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.tomislavstankovic.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"hr"},{"@type":["Person","Organization"],"@id":"https:\/\/www.tomislavstankovic.com\/blog\/#\/schema\/person\/0329c549c57700034ea77f5d3d78396d","name":"Tomislav Stankovi\u0107","image":{"@type":"ImageObject","inLanguage":"hr","@id":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2019\/10\/cropped-TomislavStankovic.jpg","url":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2019\/10\/cropped-TomislavStankovic.jpg","contentUrl":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2019\/10\/cropped-TomislavStankovic.jpg","width":248,"height":165,"caption":"Tomislav Stankovi\u0107"},"logo":{"@id":"https:\/\/www.tomislavstankovic.com\/blog\/wp-content\/uploads\/2019\/10\/cropped-TomislavStankovic.jpg"},"description":"Bloger \u0161irokog raspona interesa od kojih dio voli objaviti na ovom blogu. U neslobodno vrijeme Angular developer mobilnih i web aplikacija.","sameAs":["https:\/\/www.tomislavstankovic.com\/blog\/","https:\/\/www.linkedin.com\/in\/tomislavstankovic\/"],"url":"https:\/\/www.tomislavstankovic.com\/blog\/author\/tomislavstankovic\/"}]}},"_links":{"self":[{"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/posts\/16682","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/comments?post=16682"}],"version-history":[{"count":32,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/posts\/16682\/revisions"}],"predecessor-version":[{"id":16718,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/posts\/16682\/revisions\/16718"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/media\/16715"}],"wp:attachment":[{"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/media?parent=16682"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/categories?post=16682"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tomislavstankovic.com\/blog\/wp-json\/wp\/v2\/tags?post=16682"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}