{"id":265277,"date":"2023-03-02T06:48:00","date_gmt":"2023-03-02T03:48:00","guid":{"rendered":"https:\/\/inform.click\/hur-man-utvarderar-hanterar-och-undviker-tekniska-skulder\/"},"modified":"2023-03-02T07:35:00","modified_gmt":"2023-03-02T04:35:00","slug":"hur-man-utvarderar-hanterar-och-undviker-tekniska-skulder","status":"publish","type":"post","link":"https:\/\/inform.click\/sv\/hur-man-utvarderar-hanterar-och-undviker-tekniska-skulder\/","title":{"rendered":"Hur man utv\u00e4rderar, hanterar och undviker tekniska skulder"},"content":{"rendered":"<p>\n  Om teknisk skuld l\u00e5ter som n\u00e5got lyft fr\u00e5n en handbok om ekonomi, \u00e4r det f\u00f6r att termen \u00e4r relaterad till ekonomi. Men i den verkliga meningen \u00e4r teknisk skuld relaterad till programmering. Det \u00e4r tanken att under utvecklingen av ett mjukvaruprojekt hoppar man \u00f6ver vissa n\u00f6dv\u00e4ndiga steg, eller helt enkelt sl\u00e4ngs bort i ett f\u00f6rs\u00f6k att h\u00e5lla en deadline.\n<\/p>\n<p>\n  I ett f\u00f6rs\u00f6k att utveckla den perfekta appen eller mjukvaran \u00e4r utvecklarna ofta tidsbundna \u2013 precis som alla slumpm\u00e4ssiga personer som \u00e4nd\u00e5 utf\u00f6r en godtycklig uppgift. D\u00e4rf\u00f6r \u00e4r det vanligtvis vettigt att ha n\u00e5gon form av avv\u00e4gning mellan att leverera en perfekt produkt med perfekt kod och att maximera tiden.\n<\/p>\n<p>\n  Fr\u00e5gan \u00e4r d\u00e5: finns det en gr\u00e4ns f\u00f6r dessa avv\u00e4gningar? Finns det inneboende skador som kan bli f\u00f6ljden av denna avv\u00e4gning? Slutligen, \u00e4r utvecklaren verkligen b\u00e4ttre i det l\u00e5nga loppet? I det h\u00e4r stycket om tekniska skulder kommer jag att f\u00f6rs\u00f6ka svara p\u00e5 alla dessa fr\u00e5gor.\n<\/p>\n<h5>\n  Vad \u00e4r teknisk skuld?<br \/>\n<\/h5>\n<p>\n  N\u00e4r vi definierar teknisk skuld m\u00e5ste vi h\u00e4nvisa till mannen som krediteras f\u00f6r att ha genererat termen i f\u00f6rsta hand: Ward Cunningham. Enligt Cunningham avser teknisk skuld det extra utvecklingsarbete som m\u00e5ste g\u00e5 till programmering av en kod f\u00f6r att kompensera f\u00f6r underskottet som uppst\u00e5r vid programmering inom en kort period.\n<\/p>\n<p>\n  F\u00f6r att g\u00f6ra det mer grafiskt, f\u00f6rest\u00e4ll dig att du har i uppdrag att st\u00e4da upp i ett r\u00f6rigt rum och att du kommer f\u00f6r sent till en lektion. I ett f\u00f6rs\u00f6k att se till att du genomf\u00f6r instruktionen och \u00e4ven komma i tid till din klass, g\u00f6r du en snabb st\u00e4dning och sopar det mesta av skr\u00e4pet under soffan. F\u00f6ljden av detta \u00e4r att du s\u00e5 sm\u00e5ningom m\u00e5ste ta dig tid att sortera igenom r\u00f6ran. F\u00f6r mjukvaruutveckling, n\u00e4r du hoppar igenom de n\u00f6dv\u00e4ndiga stegen och f\u00f6ljer en enklare v\u00e4g, med &#8221;inte s\u00e5 rena&#8221; koder, kommer det att bli sv\u00e5rare att rensa upp koden senare i framtiden. Det finns flera faser i mjukvaruprojektets domino, och ju l\u00e4ngre du ignorerar ett befintligt problem, desto l\u00e4ngre tid tar det att l\u00f6sa.\n<\/p>\n<p>\n  Typer av tekniska skulder\n<\/p>\n<p>\n  Tekniska skulder \u00e4r av olika slag, inklusive:\n<\/p>\n<h5>\n  Planerade tekniska skulder<br \/>\n<\/h5>\n<p>\n  Detta intr\u00e4ffar i situationer d\u00e4r organisationer medvetet beslutar sig f\u00f6r att g\u00e5 in i tekniska skulder. Detta, som tidigare diskuterats, \u00e4r vanligtvis f\u00f6r att sl\u00e5 angivna deadlines och komma fram till ett specifikt m\u00e5l. N\u00e4r man engagerar sig i planerade tekniska skulder m\u00e5ste organisationen vara tydlig med vad de \u00e4r villiga att ge upp och vad de inte kan. Du m\u00e5ste f\u00f6ra korrekta register, med tanke p\u00e5 att du s\u00e5 sm\u00e5ningom m\u00e5ste \u00e5terv\u00e4nda och r\u00e4tta till de fel du hoppade \u00f6ver i b\u00f6rjan.\n<\/p>\n<h5>\n  Oavsiktliga tekniska skulder<br \/>\n<\/h5>\n<p>\n  Denna typ av tekniska skulder \u00e4r en rak motsats till den f\u00f6rsta. Det uppst\u00e5r n\u00e4r en organisation inte f\u00f6rutser eller planerar f\u00f6r tekniska skulder. Orsaken till detta \u00e4r typiskt sett ett sammanbrott i kommunikationen mellan de olika enheterna i organisationen, eller usla arbetss\u00e4tt mellan enheterna.\n<\/p>\n<h5>\n  Oundvikliga tekniska skulder<br \/>\n<\/h5>\n<p>\n  Detta \u00e4r den typ av teknisk skuld som ingen \u00e5tg\u00e4rd fr\u00e5n organisationens sida kunde ha f\u00f6rhindrat. Till exempel, med de snabba f\u00f6r\u00e4ndringar som upplevs inom tekniken, \u00e4r det vettigt att vissa koder som skrivits i det f\u00f6rflutna kommer att inte \u00f6verensst\u00e4mma med de nuvarande standarderna som f\u00f6rv\u00e4ntas.\n<\/p>\n<p>\n  Denna typ av teknisk skuld kan ocks\u00e5 uppst\u00e5 n\u00e4r \u00e4ndringar beg\u00e4rs n\u00e4r koden redan skrivs. Om vissa \u00e4ndringar inf\u00f6rs halvv\u00e4gs i utformningen av programvaran, kan det f\u00f6rst\u00f6ra dynamiken, vilket g\u00f6r den gamla koden f\u00f6r\u00e5ldrad eller on\u00f6dig.\n<\/p>\n<h3>\n  Orsaker till teknisk skuld<br \/>\n<\/h3>\n<p><a href=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-314713-638398b8ae14d.webp\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-314713-638398b8ae14d.webp\" alt=\"\" \/><\/a><\/p>\n<p>\n  N\u00e5gra av orsakerna till tekniska skulder har diskuterats ovan, men jag ska bara plocka ut dem en efter en f\u00f6r att g\u00f6ra dem tydligare.\n<\/p>\n<h5>\n  Br\u00e5dska<br \/>\n<\/h5>\n<p>\n  Den vanligaste orsaken till tekniska skulder \u00e4r br\u00e5dska. Utvecklare har ofta str\u00e4nga deadlines, av vilka n\u00e5gra inkluderar deadlines f\u00f6r att lansera viss programvara. Det \u00e4r ofta f\u00f6rst\u00e5eligt (och f\u00f6rv\u00e4ntat) i den h\u00e4r typen av situationer att utvecklaren kan \u00e5dra sig tekniska skulder p\u00e5 v\u00e4gen. Denna typ av teknisk skuld \u00e4r ofta avsiktlig och kan resultera i problem som kan str\u00e4cka sig fr\u00e5n att ha buggar i koden eller att spagettikoder uppst\u00e5r.\n<\/p>\n<h5>\n  F\u00f6rbiseende\/misstag<br \/>\n<\/h5>\n<p>\n  Ibland skriver programmerare bara d\u00e5liga koder, vilket s\u00e5 sm\u00e5ningom leder till tekniska skulder. Oavsett om den d\u00e5liga koden existerar som ett resultat av kodarens misstag eller inte, \u00e4r faktum att misstag leder till tekniska skulder, och eftersom de inte \u00e4r skalbara m\u00e5ste de s\u00e5 sm\u00e5ningom \u00e5tg\u00e4rdas.\n<\/p>\n<h5>\n  Brist p\u00e5 medvetenhet om effekterna<br \/>\n<\/h5>\n<p>\n  Ibland uppst\u00e5r tekniska skulder f\u00f6r att kodaren inte inser eller erk\u00e4nner hur skadliga tekniska skulder \u00e4r p\u00e5 l\u00e5ng sikt. Detta kan bero p\u00e5 en legitim okunnighet om de skadliga effekterna av att ta genv\u00e4gar under programmering, eller s\u00e5 kan det vara en medveten ignorering av konsekvenserna.\n<\/p>\n<h5>\n  Avsikt<br \/>\n<\/h5>\n<p>\n  Tekniska skulder kan uppst\u00e5 avsiktligt av kodarens eller organisationens avsiktliga handlingar.\n<\/p>\n<h5>\n  Brist p\u00e5 modularitet<br \/>\n<\/h5>\n<p>\n  Detta beror mest p\u00e5 att en kod kan tj\u00e4na olika aff\u00e4rslogik samtidigt. Denna typ av situation g\u00f6r det mycket sv\u00e5rare att hantera programvara. Med varje kod en utvecklare skriver, desto st\u00f6rre chans \u00e4r det att de skulle uppleva utmaningar med modularitet.\n<\/p>\n<h3>\n  Utv\u00e4rdering av teknisk skuld<br \/>\n<\/h3>\n<p><a href=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-314713-638398bb9dc83.webp\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-314713-638398bb9dc83.webp\" alt=\"\" \/><\/a><\/p>\n<p>\n  Tekniska skulder b\u00f6r aldrig ber\u00e4knas manuellt eftersom det skulle vara ganska besv\u00e4rligt. Det skulle inneb\u00e4ra att man m\u00e5ste ange koden manuellt f\u00f6r att fastst\u00e4lla de aktuella problemen och m\u00f6jliga framtida. F\u00f6rutom hur tids\u00f6dande den manuella processen \u00e4r, finns det m\u00f6jlighet att koderna skulle ha \u00e4ndrat form i slutet av den manuella processen.\n<\/p>\n<p>\n  Ett s\u00e4tt att genomf\u00f6ra utv\u00e4rderingen \u00e4r genom att utf\u00f6ra en statisk analys med hj\u00e4lp av n\u00e5gra verktyg som st\u00f6djer den. N\u00e5gra av verktygen som kan anv\u00e4ndas inkluderar Coverity, SonarQube, Check Style och Closure Compiler.\n<\/p>\n<p>\n  Generellt finns det tv\u00e5 s\u00e4tt att ber\u00e4kna tekniska skulder. I det f\u00f6rsta tillv\u00e4gag\u00e5ngss\u00e4ttet kunde det erh\u00e5llas genom att ber\u00e4kna den tekniska skuldens kvot efter kodkvot. H\u00e4r skulle den initiala uppskattningen eller den totala tiden som beh\u00f6vs f\u00f6r att utveckla appen anv\u00e4ndas f\u00f6r att fastst\u00e4lla den tid som kr\u00e4vs f\u00f6r att fixa den tekniska skulden.\n<\/p>\n<p>\n  I det andra tillv\u00e4gag\u00e5ngss\u00e4ttet kan du direkt anv\u00e4nda de uppskattningar som ges av de olika verktygen s\u00e5som SonarQube. Detta kommer att kombineras med listorna \u00f6ver de tekniska skulderna samt deras referenskoder. Fr\u00e5n verktygen kunde du f\u00e5 en exakt uppskattning av hur l\u00e5ng tid det tar att fixa det.\n<\/p>\n<p>\n  Att utv\u00e4rdera den tekniska skulden kommer att ge dig en k\u00e4nsla av hur m\u00e5nga dagar det kommer att ta att fixa den tekniska skulden. Ju fler skulder det finns, desto l\u00e4ngre tid tar det att fixa det.\n<\/p>\n<h3>\n  L\u00f6sning av tekniska skulder<br \/>\n<\/h3>\n<p>\n  Vad h\u00e4nder om tekniska skulder har uppst\u00e5tt och du \u00e4r os\u00e4ker p\u00e5 vad du ska g\u00f6ra? Det finns vissa steg du kan vidta f\u00f6r att hantera de tekniska skulderna.\n<\/p>\n<p>\n  F\u00f6r det f\u00f6rsta b\u00f6r du erk\u00e4nna att de tekniska skulderna finns och kommunicera detsamma till ditt team. N\u00e4r du kommunicerar b\u00f6r du vara tydlig med vad som har h\u00e4nt och vad som beh\u00f6ver g\u00f6ras f\u00f6r att r\u00e4tta till det. Du b\u00f6r se till att du tydligt kommunicerar behovet av att ta hand om den tekniska skulden s\u00e5 snart som m\u00f6jligt.\n<\/p>\n<p>\n  Efter att ha informerat ditt team om de tekniska skulderna finns det tre tillv\u00e4gag\u00e5ngss\u00e4tt du kan ta. I det f\u00f6rsta tillv\u00e4gag\u00e5ngss\u00e4ttet kan du v\u00e4lja att forts\u00e4tta med systemet som det \u00e4r. I det h\u00e4r scenariot kommer applikationen att anv\u00e4ndas som den \u00e4r.\n<\/p>\n<p>\n  Alternativt kan du besluta att omfaktorisera applikationen. Refaktorering g\u00f6rs med syftet att minska komplexiteten i appen samt att rensa upp i appens struktur. Med refactoring kommer inte programvarans beteende att \u00e4ndras; den enda p\u00e5verkade delen kommer att vara den interna strukturen.\n<\/p>\n<p>\n  Slutligen, om de tv\u00e5 alternativen som diskuterats ovan inte fungerar, m\u00e5ste du ers\u00e4tta koden helt. Ett problem med detta \u00e4r att det kan leda till nya tekniska skulder, men det kan vara en b\u00e4ttre avv\u00e4gning p\u00e5 sikt.\n<\/p>\n<h3>\n  Undvik tekniska skulder i framtiden<br \/>\n<\/h3>\n<p><a href=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-314713-638398be56829.webp\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-314713-638398be56829.webp\" alt=\"\" \/><\/a><\/p>\n<p>\n  Naturligtvis \u00e4r det enkelt att undvika tekniska skulder definitivt \u00e4r smartare \u00e4n att f\u00f6rs\u00f6ka fixa dem n\u00e4r de uppst\u00e5r. F\u00f6rutom att det sparar dig b\u00e5de tid och stress, ser det ocks\u00e5 till att de restkonsekvenser som kommer av att ha tekniska skulder fr\u00e5n b\u00f6rjan uteblir.\n<\/p>\n<p>\n  Man kan h\u00e4vda att tekniska skulder i sig inte \u00e4r d\u00e5liga. De \u00e4r generellt problematiska eftersom de \u00e4r skulder som m\u00e5ste betalas tillbaka, och m\u00e4nniskor \u00e4r inte den mest ansvarsfulla arten p\u00e5 jorden. Att konsekvent v\u00e4lja ett svagare alternativ kommer i allm\u00e4nhet att f\u00f6rsvaga styrkan hos din programvara och g\u00f6ra det sv\u00e5rare att f\u00f6rb\u00e4ttra funktionerna senare. Sammantaget \u00e4r det b\u00e4sta valet f\u00f6r alla att undvika tekniska skulder.\n<\/p>\n<p>\n  S\u00e5, hur f\u00f6rhindrar du att tekniska skulder uppst\u00e5r:\n<\/p>\n<p>\n  Skapa en projekteftersl\u00e4pning\n<\/p>\n<p>\n  Tanken h\u00e4r \u00e4r att h\u00e5lla alla uppdaterade om processen och f\u00e5 dem att uppdateras med kraven f\u00f6r vilken uppgift som helst som utf\u00f6rs. Genom att skapa en eftersl\u00e4pning kan alla se de uppgifter som l\u00e4mnats ogjorda och v\u00e4garna att ta f\u00f6r att uppn\u00e5 dem.\n<\/p>\n<p>\n  Prioritera kvalitet framf\u00f6r hastighet\n<\/p>\n<p>\n  Om du sj\u00e4lv \u00e4r programmerare m\u00e5ste du l\u00e4ra dig att prioritera att l\u00e4gga ut kvalitetsarbete framf\u00f6r mycket arbete. Se till att dina koder \u00e4r rena och att dina appar eller annan programvara \u00e4r utvecklad till perfektion. F\u00f6rst\u00e5 att frestelsen att ta genv\u00e4gar inte kommer att vara v\u00e4rt det eftersom du s\u00e5 sm\u00e5ningom fortfarande m\u00e5ste utf\u00f6ra de uppgifter du l\u00e4mnade.\n<\/p>\n<p>\n  Om du leder ett team m\u00e5ste du kommunicera samma v\u00e4rderingar till teammedlemmarna. Medlemmar b\u00f6r l\u00e4ras att skapa resultatorienterade l\u00f6sningar och undvika genv\u00e4gar.\n<\/p>\n<p>\n  Skapa medvetenhet\n<\/p>\n<p>\n  Generellt sett kan en f\u00f6rdjupad kunskap om vad teknisk skuld \u00e4r och hur man undviker den vara anv\u00e4ndbar f\u00f6r att f\u00f6rhindra att de uppst\u00e5r i f\u00f6rsta hand. N\u00e4r du bev\u00e4pnar dina utvecklare med den kunskap som kr\u00e4vs, kommer de b\u00e4ttre att undvika de f\u00e4llor som tekniska skulder utg\u00f6r.\n<\/p>\n<p>\n  Introducera god kodningspraxis\n<\/p>\n<p>\n  Vissa kodningsmetoder g\u00f6r det mer troligt \u00e4n inte att du hamnar i tekniska skulder. D\u00e4rf\u00f6r skulle det vara bra att undvika t\u00e4t koppling, anv\u00e4nda abstraktion och refactoring.\n<\/p>\n<p>\n  Introducera uppdaterad teknik\n<\/p>\n<p>\n  Regelbundna uppdateringar av teknik kan vara ett utm\u00e4rkt s\u00e4tt att f\u00f6rebygga tekniska skulder. Vid uppdatering m\u00e5ste du se till att det som anv\u00e4nds \u00e4r det senaste ramverket, databaserna och applikationsmjukvaran.\n<\/p>\n<h5>\n  Slutsats<br \/>\n<\/h5>\n<p>\n  Tekniska skulder \u00e4r i de allra flesta fall oundvikliga s\u00e5 l\u00e4nge du forts\u00e4tter att utveckla program och skriva koder. D\u00e4remot kan risken f\u00f6r att de intr\u00e4ffar minskas avsev\u00e4rt n\u00e4r stegen som anges ovan f\u00f6ljs. Dessutom, i h\u00e4ndelse av tekniska skulder, \u00e4r inte allt hopp f\u00f6rlorat. H\u00e5ll dig lugn, var sj\u00e4lvs\u00e4ker, agera d\u00e4refter.\n<\/p>\n<\/p>\n<div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\n  Inspelningsk\u00e4lla: <a target=\"_blank\" rel=\"noopener nofollow\" data-pssr=\"\" href=\"http:\/\/www.instantshift.com\/2020\/05\/26\/technical-debts-tips\/\">instantshift.com<\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Om teknisk skuld l\u00e5ter som n\u00e5got lyft fr\u00e5n en handbok om ekonomi, \u00e4r det f\u00f6r att termen \u00e4r relaterad till ekonomi. Men i den verkliga meningen \u00e4r teknisk skuld relaterad till programmering. Det \u00e4r tanken att under utvecklingen av ett mjukvaruprojekt hoppar man \u00f6ver vissa n\u00f6dv\u00e4ndiga steg, eller helt enkelt sl\u00e4ngs bort i ett f\u00f6rs\u00f6k att h\u00e5lla en deadline. I ett f\u00f6rs\u00f6k att utveckla den perfekta appen eller mjukvaran \u00e4r utvecklarna ofta tidsbundna \u2013 precis som alla slumpm\u00e4ssiga personer som \u00e4nd\u00e5 utf\u00f6r en godtycklig uppgift. D\u00e4rf\u00f6r \u00e4r det vanligtvis vettigt att ha n\u00e5gon form av&#8230;<\/p>\n","protected":false},"author":1,"featured_media":209172,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[217,269,100,61],"tags":[],"class_list":["post-265277","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kodning","category-psykologi-2","category-seo-och-marknadsforing","category-web-och-wordpress"],"_links":{"self":[{"href":"https:\/\/inform.click\/sv\/wp-json\/wp\/v2\/posts\/265277","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inform.click\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inform.click\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inform.click\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/inform.click\/sv\/wp-json\/wp\/v2\/comments?post=265277"}],"version-history":[{"count":0,"href":"https:\/\/inform.click\/sv\/wp-json\/wp\/v2\/posts\/265277\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inform.click\/sv\/wp-json\/wp\/v2\/media\/209172"}],"wp:attachment":[{"href":"https:\/\/inform.click\/sv\/wp-json\/wp\/v2\/media?parent=265277"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inform.click\/sv\/wp-json\/wp\/v2\/categories?post=265277"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inform.click\/sv\/wp-json\/wp\/v2\/tags?post=265277"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}