{"id":1941,"date":"2023-11-09T10:00:00","date_gmt":"2023-11-09T08:00:00","guid":{"rendered":"https:\/\/codelive.ee\/tehnilise-vola-tegelik-maksumus-kui-otseteed-tulevad-tagasi-kummitama\/"},"modified":"2023-11-09T10:00:00","modified_gmt":"2023-11-09T08:00:00","slug":"tehnilise-vola-tegelik-maksumus-kui-otseteed-tulevad-tagasi-kummitama","status":"publish","type":"post","link":"https:\/\/codelive.ee\/et\/tehnilise-vola-tegelik-maksumus-kui-otseteed-tulevad-tagasi-kummitama\/","title":{"rendered":"Tehnilise v\u00f5la tegelik maksumus: kui otseteed tulevad tagasi kummitama"},"content":{"rendered":"<p>Iga tarkvaraprojekt kogub otseteid. Kiire parandus siin, kopeeritud-kleebitud funktsioon seal, &#8220;me refaktoreerime selle hiljem&#8221;, mida kunagi ei refaktoreerita. Eraldi v\u00f5ttes on iga\u00fcks neist kahjutu. Kokku moodustavad need selle, mida t\u00f6\u00f6stuses nimetatakse tehniliseks v\u00f5laks \u2014 ning nagu rahaline v\u00f5lg, koguneb ka intress.   <\/p>\n<p>P\u00e4rast aastak\u00fcmmet klientidele tarkvara ehitamist ja hooldamist e-kaubanduse, FinTechi ja meedia valdkonnas oleme \u00f5ppinud tehnilist v\u00f5lga austama. Mitte kartma \u2014 vaid austama. Sest t\u00f5de on n\u00fcansirikkam kui &#8220;kogu v\u00f5lg on halb.&#8221;  <\/p>\n<h2>Mis tehniline v\u00f5lg tegelikult maksab<\/h2>\n<p>K\u00f5ige ohtlikum asi tehnilise v\u00f5la juures on see, et see on n\u00e4htamatu k\u00f5igile peale koodibaasis t\u00f6\u00f6tavate arendajate. Tegevjuht seda ei n\u00e4e. Tootejuht seda ei tunneta. Kliendid ei m\u00e4rka seda \u2014 kuni nad m\u00e4rkavad.   <\/p>\n<p>Siin on see, mida oleme n\u00e4inud v\u00f5la p\u00e4ris projektides maksma minevat:<\/p>\n<p><strong>Aeglasem funktsioonide arendus.<\/strong> Funktsioon, mis peaks v\u00f5tma n\u00e4dala, v\u00f5tab kolm, sest arendaja peab t\u00f6\u00f6tama \u00fcmber k\u00f5rbenud, sassis koodi. See on k\u00f5ige levinum kulu ja k\u00f5ige raskemini m\u00f5\u00f5detav, sest see n\u00e4ib lihtsalt &#8220;arendus on aeglane.&#8221; <\/p>\n<p><strong>Rohkem vigu tootmises.<\/strong> Kui koodi on raske m\u00f5ista, on seda raske ohutult muuta. Iga muudatus riskib millegi mitteseotu katkiajamisega. Oleme n\u00e4inud projekte, kus 40% sprindiajast kulus regressioonide parandamisele, mitte uute funktsioonide ehitamisele.  <\/p>\n<p><strong>Sisseelamise takistused.<\/strong> Uued arendajad liituvad meeskonnaga ja kulutavad n\u00e4dalaid, \u00fcritades m\u00f5ista, miks kood teeb seda, mida ta teeb. Dokumenteerimata t\u00f6\u00f6lahendused, ebaj\u00e4rjekindlad mustrid ning paikade kihid muudavad koodibaasi uustulnukatele vaenulikuks. <\/p>\n<p><strong>Kasutuselev\u00f5tu hirm.<\/strong> Kui meeskond kardab kasutusele v\u00f5tta, sest &#8220;midagi v\u00f5ib katki minna,&#8221; on see v\u00f5la s\u00fcmptom. Oleme t\u00f6\u00f6tanud klientidega, kelle meeskonnad v\u00f5tsid kasutusele kord kuus, sest iga v\u00e4ljalase oli hasartm\u00e4ng. Nende konkurendid v\u00f5tsid kasutusele iga p\u00e4ev.  <\/p>\n<h2>Millal v\u00f5lg on tegelikult tark valik<\/h2>\n<p>Siin on osa, mille enamik tehnilisi artikleid vahele j\u00e4tab: m\u00f5nikord on v\u00f5lg \u00f5ige valik.<\/p>\n<p>Kui CarBro vajas oma autoturu MVP turule toomist, tegime teadlikke kompromisse. Kasutasime lihtsamat andmebaasiskeemi, kui l\u00f5pptoode vajaks. J\u00e4tsime vahele m\u00f5ned erandjuhtude k\u00e4sitlused, mis m\u00f5jutasid v\u00e4hem kui 1% kasutajatest. Valisime mitmel API l\u00f5pp-punktil kiiruse elegantsuse asemel.   <\/p>\n<p>See oli strateegiline v\u00f5lg \u2014 v\u00f5etud lahtiste silmadega, dokumenteeritud ja tagasimaksmiseks planeeritud. MVP k\u00e4ivitus t\u00e4htajaks. Ettev\u00f5te valideeris oma turuh\u00fcpoteesi. Ning me l\u00e4ksime j\u00e4rgmises etapis tagasi ja korrastasime koodi.   <\/p>\n<p>Peamine erinevus strateegilise ja juhusliku v\u00f5la vahel:<\/p>\n<ul>\n<li><strong>Strateegiline v\u00f5lg <\/strong>on dokumenteeritud, ajaliselt piiritletud ning sellel on tagasimaksmisplaan.<\/li>\n<li><strong>Juhuslik v\u00f5lg<\/strong> koguneb vaikselt, sest meeskond kiirustab, on alaressursseeritud v\u00f5i puudub kogemus.<\/li>\n<\/ul>\n<h2>Hoiatusm\u00e4rgid<\/h2>\n<p>P\u00e4rast aastaid koodibaaside p\u00e4rimist teistelt meeskondadelt ja agentuuridelt oleme koostanud kontrollnimekirja ohtlike tehnilise v\u00f5la tasemete tuvastamiseks:<\/p>\n<p><strong>Teste pole, v\u00f5i teste, mida keegi ei usalda.<\/strong> Kui testikomplekt v\u00f5tab tundide kaupa aega, eba\u00f5nnestub juhuslikult v\u00f5i j\u00e4etakse enne kasutuselev\u00f5ttu vahele \u2014 v\u00f5lg on s\u00fcgav.<\/p>\n<p><strong>&#8220;Ainult \u00fcks inimene teab, kuidas see t\u00f6\u00f6tab.&#8221;<\/strong> \u00dchele arendajale koondunud teadmine on riski kordisti. Kui see inimene lahkub, muutub v\u00f5lg kriisiks. <\/p>\n<p><strong>Kopeeritud-kleebitud kood k\u00f5ikjal.<\/strong> Kui sama loogika eksisteerib viies kohas, peab iga veaparandus toimuma viis korda. Seda kunagi ei juhtu. <\/p>\n<p><strong>Koodibaas v\u00f5itleb raamistikuga.<\/strong> Oleme n\u00e4inud projekte, kus arendajad t\u00f6\u00f6tasid raamistiku tavade vastu, mitte nendega koos. Iga uuendus muutub lahinguks. Iga uue teegi integreerimine on valus.  <\/p>\n<p><strong>Kasutuselev\u00f5tt v\u00f5tab rohkem kui 15 minutit inimese t\u00e4helepanu.<\/strong> Kui kasutuselev\u00f5tt n\u00f5uab manuaalseid samme, SSH-ligip\u00e4\u00e4su ja ristis s\u00f5rmi, on infrastruktuuri v\u00f5lg m\u00e4rkimisv\u00e4\u00e4rne.<\/p>\n<h2>Mida me selle osas teeme<\/h2>\n<p>Kui klient tuleb meie juurde koodibaasiga, mis on t\u00e4is v\u00f5lga \u2014 mis juhtub sagedamini, kui arvata v\u00f5iks \u2014 siin on meie l\u00e4henemine:<\/p>\n<p><strong>Esiteks, hindame ausalt.<\/strong> Mitte iga v\u00f5laosa ei vaja parandamist. Osa elab koodis, mis harva muutub. Osa on funktsioonides, mis kaotatakse kasutuselt. Keskendume v\u00f5lale, mis aktiivselt meeskonda aeglustab.   <\/p>\n<p><strong>Teiseks, eraldame aega igal sprindil.<\/strong> P\u00fchendame umbes 20% igast sprindist v\u00f5la v\u00e4hendamisele. Mitte eraldi &#8220;refaktoreerimissprindis,&#8221; mida kunagi ei toimu, vaid p\u00f5imituna tavalisse funktsioonit\u00f6\u00f6sse. Puudutad faili? J\u00e4ta see paremaks, kui see oli.   <\/p>\n<p><strong>Kolmandaks, teeme selle n\u00e4htavaks.<\/strong> J\u00e4lgime v\u00f5la\u00fcksusi koos funktsioonide ja vigadega. Tooteomanik n\u00e4eb neid. Klient n\u00e4eb neid. V\u00f5la v\u00e4hendamine ei ole salajane projekt \u2014 see on osa terve toote tarnimisest.   <\/p>\n<p><strong>Neljandaks, ennetame uue v\u00f5la teket.<\/strong> Koodi\u00fclevaatused, automaattestimine, j\u00e4rjekindlad mustrid ning ausad vestlused ajakavade \u00fcle. Odavaim v\u00f5lg on v\u00f5lg, mida sa kunagi ei v\u00f5ta. <\/p>\n<h2>\u00c4riline vestlus<\/h2>\n<p>Kui oled asutaja v\u00f5i tooteomanik, kes seda loeb, siis siin on ebamugav t\u00f5de: su arendusmeeskond kannab t\u00f5en\u00e4oliselt rohkem v\u00f5lga, kui nad sulle on \u00f6elnud. Mitte sellep\u00e4rast, et nad seda varjaksid, vaid sellep\u00e4rast, et neil ei ole head viisi selle selgitamiseks. <\/p>\n<p>K\u00fcsi oma tehnikaliidrilt: &#8220;Kui sa saaksid kulutada kaks n\u00e4dalat mistahes asjale koodibaasis, mis see oleks?&#8221; Vastus \u00fctleb sulle, kus v\u00f5lg elab. Ja sellega tegelemine kohe \u2014 isegi osaliselt \u2014 s\u00e4\u00e4stab sind kuude p\u00e4rast.  <\/p>\n<p>Tehniline v\u00f5lg ei ole tehniline probleem. See on \u00e4ririsk. Ja nagu k\u00f5ik riskid, on seda k\u00f5ige odavam hallata enne, kui sellest saab kriis.  <\/p>\n<p><em>Codelive&#8217;is aitame meeskondadel ehitada uusi tooteid \u00f5igesti ning p\u00e4\u00e4stame projekte, mis l\u00e4ksid valesti. Kui su koodibaas sind aeglustab, <a href=\"https:\/\/codelive.ee\/#contact-us\">r\u00e4\u00e4gime<\/a>. <\/em><\/p>\n","protected":false},"excerpt":{"rendered":"Iga tarkvaraprojekt kogub otseteid. Kiire parandus siin, kopeeritud-kleebitud funktsioon seal, &#8220;me refaktoreerime selle hiljem&#8221;, mida kunagi ei refaktoreerita. Eraldi v\u00f5ttes on iga\u00fcks neist kahjutu. Kokku moodustavad need selle, mida t\u00f6\u00f6stuses nimetatakse tehniliseks v\u00f5laks \u2014 ning nagu rahaline v\u00f5lg, koguneb ka intress. P\u00e4rast aastak\u00fcmmet klientidele tarkvara ehitamist ja hooldamist e-kaubanduse, FinTechi ja meedia valdkonnas oleme \u00f5ppinud [&hellip;]","protected":false},"author":8,"featured_media":1900,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[128,124],"tags":[],"class_list":["post-1941","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendus-et","category-arendus"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Tehnilise v\u00f5la tegelik maksumus: kui otseteed tulevad tagasi kummitama - Codelive<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/codelive.ee\/et\/tehnilise-vola-tegelik-maksumus-kui-otseteed-tulevad-tagasi-kummitama\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tehnilise v\u00f5la tegelik maksumus: kui otseteed tulevad tagasi kummitama - Codelive\" \/>\n<meta property=\"og:description\" content=\"Iga tarkvaraprojekt kogub otseteid. Kiire parandus siin, kopeeritud-kleebitud funktsioon seal, &#8220;me refaktoreerime selle hiljem&#8221;, mida kunagi ei refaktoreerita. Eraldi v\u00f5ttes on iga\u00fcks neist kahjutu. Kokku moodustavad need selle, mida t\u00f6\u00f6stuses nimetatakse tehniliseks v\u00f5laks \u2014 ning nagu rahaline v\u00f5lg, koguneb ka intress. P\u00e4rast aastak\u00fcmmet klientidele tarkvara ehitamist ja hooldamist e-kaubanduse, FinTechi ja meedia valdkonnas oleme \u00f5ppinud [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/codelive.ee\/et\/tehnilise-vola-tegelik-maksumus-kui-otseteed-tulevad-tagasi-kummitama\/\" \/>\n<meta property=\"og:site_name\" content=\"Codelive\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-09T08:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/codelive.ee\/wp-content\/uploads\/2022\/08\/FB_cover_image_2.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Paperclip founding engineer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tehnilise v\u00f5la tegelik maksumus: kui otseteed tulevad tagasi kummitama - Codelive","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:\/\/codelive.ee\/et\/tehnilise-vola-tegelik-maksumus-kui-otseteed-tulevad-tagasi-kummitama\/","og_locale":"en_GB","og_type":"article","og_title":"Tehnilise v\u00f5la tegelik maksumus: kui otseteed tulevad tagasi kummitama - Codelive","og_description":"Iga tarkvaraprojekt kogub otseteid. Kiire parandus siin, kopeeritud-kleebitud funktsioon seal, &#8220;me refaktoreerime selle hiljem&#8221;, mida kunagi ei refaktoreerita. Eraldi v\u00f5ttes on iga\u00fcks neist kahjutu. Kokku moodustavad need selle, mida t\u00f6\u00f6stuses nimetatakse tehniliseks v\u00f5laks \u2014 ning nagu rahaline v\u00f5lg, koguneb ka intress. P\u00e4rast aastak\u00fcmmet klientidele tarkvara ehitamist ja hooldamist e-kaubanduse, FinTechi ja meedia valdkonnas oleme \u00f5ppinud [&hellip;]","og_url":"https:\/\/codelive.ee\/et\/tehnilise-vola-tegelik-maksumus-kui-otseteed-tulevad-tagasi-kummitama\/","og_site_name":"Codelive","article_published_time":"2023-11-09T08:00:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/codelive.ee\/wp-content\/uploads\/2022\/08\/FB_cover_image_2.jpg","type":"image\/jpeg"}],"author":"Paperclip founding engineer","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/codelive.ee\/et\/tehnilise-vola-tegelik-maksumus-kui-otseteed-tulevad-tagasi-kummitama\/","url":"https:\/\/codelive.ee\/et\/tehnilise-vola-tegelik-maksumus-kui-otseteed-tulevad-tagasi-kummitama\/","name":"Tehnilise v\u00f5la tegelik maksumus: kui otseteed tulevad tagasi kummitama - Codelive","isPartOf":{"@id":"https:\/\/codelive.ee\/et\/#website"},"primaryImageOfPage":{"@id":"https:\/\/codelive.ee\/et\/tehnilise-vola-tegelik-maksumus-kui-otseteed-tulevad-tagasi-kummitama\/#primaryimage"},"image":{"@id":"https:\/\/codelive.ee\/et\/tehnilise-vola-tegelik-maksumus-kui-otseteed-tulevad-tagasi-kummitama\/#primaryimage"},"thumbnailUrl":"https:\/\/codelive.ee\/wp-content\/uploads\/2026\/03\/the-real-cost-of-technical-debt-1.jpg","datePublished":"2023-11-09T08:00:00+00:00","author":{"@id":"https:\/\/codelive.ee\/et\/#\/schema\/person\/d160dc3f5f0208829742ca45b04b0036"},"breadcrumb":{"@id":"https:\/\/codelive.ee\/et\/tehnilise-vola-tegelik-maksumus-kui-otseteed-tulevad-tagasi-kummitama\/#breadcrumb"},"inLanguage":"et","potentialAction":[{"@type":"ReadAction","target":["https:\/\/codelive.ee\/et\/tehnilise-vola-tegelik-maksumus-kui-otseteed-tulevad-tagasi-kummitama\/"]}]},{"@type":"ImageObject","inLanguage":"et","@id":"https:\/\/codelive.ee\/et\/tehnilise-vola-tegelik-maksumus-kui-otseteed-tulevad-tagasi-kummitama\/#primaryimage","url":"https:\/\/codelive.ee\/wp-content\/uploads\/2026\/03\/the-real-cost-of-technical-debt-1.jpg","contentUrl":"https:\/\/codelive.ee\/wp-content\/uploads\/2026\/03\/the-real-cost-of-technical-debt-1.jpg","width":1200,"height":2133},{"@type":"BreadcrumbList","@id":"https:\/\/codelive.ee\/et\/tehnilise-vola-tegelik-maksumus-kui-otseteed-tulevad-tagasi-kummitama\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/codelive.ee\/et\/"},{"@type":"ListItem","position":2,"name":"Tehnilise v\u00f5la tegelik maksumus: kui otseteed tulevad tagasi kummitama"}]},{"@type":"WebSite","@id":"https:\/\/codelive.ee\/et\/#website","url":"https:\/\/codelive.ee\/et\/","name":"Codelive","description":"Transparent to the core","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/codelive.ee\/et\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"et"}]}},"_links":{"self":[{"href":"https:\/\/codelive.ee\/et\/wp-json\/wp\/v2\/posts\/1941","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codelive.ee\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codelive.ee\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codelive.ee\/et\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/codelive.ee\/et\/wp-json\/wp\/v2\/comments?post=1941"}],"version-history":[{"count":0,"href":"https:\/\/codelive.ee\/et\/wp-json\/wp\/v2\/posts\/1941\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/codelive.ee\/et\/wp-json\/wp\/v2\/media\/1900"}],"wp:attachment":[{"href":"https:\/\/codelive.ee\/et\/wp-json\/wp\/v2\/media?parent=1941"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codelive.ee\/et\/wp-json\/wp\/v2\/categories?post=1941"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codelive.ee\/et\/wp-json\/wp\/v2\/tags?post=1941"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}