Software Engineeringagile-developmentPamamahala ng ProduktoDevOps
Innovation Velocity kumpara sa Teknikal na Utang
Ang paghahambing na ito ay nagsasaliksik ng maselan na pagbabalanse sa pagitan ng mga tampok ng pagpapadala nang mabilis upang makuha ang bahagi ng merkado at pagpapanatili ng isang malusog na codebase. Habang sinusukat ng bilis ng pagbabago kung gaano kabilis naghahatid ng halaga ang isang koponan, ang teknikal na utang ay kumakatawan sa hinaharap na gastos ng mga shortcut na kinuha ngayon. Ang pagpindot sa tamang chord sa pagitan ng dalawang ito ay tumutukoy sa pangmatagalang kaligtasan ng buhay ng isang produkto.
Mga Naka-highlight
Ang bilis ng pagbabago ay nagbibigay ng kakayahang manalo ng mga merkado sa pamamagitan ng mabilis na pag-ulit.
Ang teknikal na utang ay kumakatawan sa nakatagong alitan na nagpapabagal sa bawat hinaharap na gawain sa engineering.
Ang mataas na bilis ay pansamantala lamang kung ito ay pinalakas ng walang pakundangan, hindi pinamamahalaang mga shortcut ng code.
Ang pamamahala ng utang ay isang pamumuhunan sa pagpapanatili ng kakayahan ng isang koponan na mabilis na lumipat sa mahabang panahon.
Ano ang Bilis ng Innovation?
Ang masusukat na bilis kung saan ang isang koponan ng software ay naghahatid ng mga bago, functional na tampok sa mga gumagamit nito.
Nakatuon ito sa dalas ng pag-deploy at ang oras na kinuha mula sa ideya hanggang sa produksyon.
Ang mataas na bilis ay nagbibigay-daan sa mga kumpanya na subukan ang mga hypotheses ng merkado at mangolekta ng feedback ng gumagamit nang mas mabilis.
Ang bilis ay kadalasang sinusukat gamit ang mga sukatan ng DORA tulad ng dalas ng pag-deploy at lead time para sa mga pagbabago.
Ang mga startup sa maagang yugto ay madalas na inuuna ang sukatan na ito upang makahanap ng akma sa merkado ng produkto bago maubos ang pagpopondo.
Ito ay gumaganap bilang isang pangunahing mapagkumpitensyang kalamangan sa mabilis na umuusbong na mga digital na tanawin at industriya.
Ano ang Teknikal na Utang?
Ang ipinahiwatig na gastos ng karagdagang muling paggawa na sanhi ng pagpili ng isang madaling solusyon ngayon sa halip na isang mas mahusay na isa.
Nilikha ni Ward Cunningham ang termino noong 1992 upang ipaliwanag kung bakit ang pagpapanatili ng code ay bumabagal sa paglipas ng panahon.
Ang utang ay maaaring sinasadya, tulad ng pagmamadali ng isang prototype, o hindi sinasadya dahil sa umuusbong na mga kinakailangan.
Ang hindi pinamamahalaang utang ay humahantong sa 'bit rot,' kung saan ang code ay nagiging masyadong marupok upang baguhin nang hindi nasisira.
Ang interes sa utang na ito ay binabayaran sa pamamagitan ng mas mabagal na mga siklo ng pag-unlad at nadagdagan ang pagtuklas ng bug.
Ang mga modernong koponan ng engineering ay madalas na naglalaan ng 20% ng kanilang kapasidad sa sprint partikular sa pagreretiro ng utang.
Talahanayang Pagkukumpara
Tampok
Bilis ng Innovation
Teknikal na Utang
Pangunahing Pokus
Pagtugon sa merkado
Pagpapanatili ng sistema
Pangunahing sukatan
Tampok na oras ng lead
Code churn at pagiging kumplikado
Estratehikong Layunin
Panandaliang paglago
Pangmatagalang katatagan
Interes ng Stakeholder
Produkto at Marketing
Engineering at QA
Kadahilanan ng Panganib
Pagbuo ng maling bagay
Sistematikong pagbagsak
Feedback Loop
Panlabas (Customer)
Panloob (Developer)
Epekto sa Ekonomiya
Agarang pagbuo ng kita
Pagbawas ng gastos sa pagpapatakbo
Perpektong Estado
Napapanatiling bilis
Mapapamahalaang pagiging kumplikado
Detalyadong Paghahambing
Ang Tug-of-War para sa Mga Mapagkukunan
Ang bilis ng pagbabago at teknikal na utang ay pangunahing naka-link sa pamamagitan ng isang zero-sum resource pool. Kapag ang isang koponan ay nagbubuhos ng bawat oras sa pagbuo ng mga bagong tampok, hindi maiiwasan na laktawan nila ang dokumentasyon at pagsubok, na nagiging sanhi ng pag-iipon ng utang. Sa kabaligtaran, ang isang koponan na nahuhumaling sa perpektong code ay makakahanap ng kanilang bilis na bumababa sa zero, na potensyal na nawawala ang mga kritikal na window ng merkado.
Paano Lumilikha ng Utang ang Bilis
Ang mabilis na paglipat ay kadalasang nangangailangan ng pagkuha ng 'maingat' na mga shortcut, tulad ng mga halaga ng hardcoding o paglaktaw ng isang abstraction layer upang matugunan ang deadline ng isang trade show. Habang pinapalakas nito ang agarang bilis, ang mga shortcut na ito ay kumikilos bilang mga pautang na may mataas na interes. Sa kalaunan, ang mga developer ay gumugugol ng mas maraming oras sa pag-aayos ng mga lumang bug kaysa sa pagsulat ng bagong code, na nagiging sanhi ng paunang bilis na mawala.
Ang Gastos ng Interes
Ang teknikal na utang ay hindi palaging masama, ngunit ang 'interes' ay kung ano ang pumapatay sa pagiging produktibo. Ito ay nagpapakita bilang nadagdagan na nagbibigay-malay na pag-load para sa mga developer at isang mas mataas na 'Change Failure Rate.' Kapag ang utang ay nagiging masyadong mataas, kahit na ang mga simpleng tampok ay tumatagal ng ilang linggo upang maipatupad dahil ang pinagbabatayan na arkitektura ay isang gusot na gulo ng mga legacy workarounds.
Pagkamit ng napapanatiling bilis
Ang pinakamalusog na organisasyon ay tinatrato ang mga konseptong ito bilang isang siklo sa halip na isang salungatan. Gumagamit sila ng mataas na bilis upang manalo ng mga customer, pagkatapos ay sadyang pabagalin upang muling i-refactor at 'bayaran' ang utang. Tinitiyak ng pana-panahong pagpapanatili na ito na ang codebase ay nananatiling sapat na kakayahang umangkop upang suportahan ang mataas na bilis ng pagbabago sa hinaharap.
Mga Kalamangan at Kahinaan
Bilis ng Innovation
Mga Bentahe
+Mas mabilis na pagpasok sa merkado
+Mataas na morale ng koponan
+Mabilis na feedback ng gumagamit
+Umaakit sa mga mamumuhunan
Nakumpleto
−Pinatataas ang bilang ng mga bug
−Fragmented na arkitektura
−Mataas na panganib ng burnout
−Mga kakulangan sa dokumentasyon
Teknikal na Pamamahala ng Utang
Mga Bentahe
+Mahuhulaan na mga paglabas
+Mas madaling onboarding
+Mas mataas na kalidad ng code
+Katatagan ng system
Nakumpleto
−Mga naantala na tampok
−Mga Bigo na Stakeholder
−Mas mababang liksi sa merkado
−Mahirap sukatin
Mga Karaniwang Maling Akala
Alamat
Ang lahat ng teknikal na utang ay tanda ng masamang engineering.
Katotohanan
Ang utang ay kadalasang isang estratehikong pagpipilian. Ang mga mahusay na inhinyero kung minsan ay sadyang kumuha ng mga shortcut upang matugunan ang mga layunin sa negosyo, tulad ng pagkuha ng mortgage upang bumili ng isang bahay na hindi mo kayang bayaran.
Alamat
Sinusukat lamang ng bilis kung gaano karaming mga linya ng code ang nakasulat.
Katotohanan
Ang tunay na bilis ay sumusukat sa paghahatid ng halaga, hindi dami. Ang pagsulat ng libu-libong mga linya ng code na hindi malulutas ang isang problema ng gumagamit ay talagang negatibong bilis.
Alamat
Sa kalaunan ay maaari mong maabot ang isang estado ng zero teknikal na utang.
Katotohanan
Imposible ito sa isang buhay na sistema. Habang umuunlad ang teknolohiya at nagbabago ang mga kinakailangan, kahit na ang 'perpektong' code na isinulat tatlong taon na ang nakalilipas ay natural na nagiging utang dahil hindi na ito akma sa modernong konteksto.
Alamat
Ang pag-aaksaya ng oras ay isang pag-aaksaya ng oras para sa negosyo.
Katotohanan
Ang refactoring ay isang direktang pamumuhunan sa bilis ng hinaharap. Ang hindi pag-refactor ay katumbas ng pagpapaalam sa mga makina ng isang pabrika na kalawangin hanggang sa tuluyan silang tumigil sa pagtatrabaho.
Mga Madalas Itanong
Paano mo ipaliwanag ang teknikal na utang sa mga di-teknikal na stakeholder?
Isipin ito tulad ng isang credit card para sa software. Maaari kang bumili ng mga bagay na gusto mo ngayon kahit wala kang pera, ngunit kung hindi mo binabayaran ang balanse, ang mga pagbabayad ng interes ay kalaunan ay ubusin ang iyong buong buwanang badyet. Sa software, ang 'interes' na iyon ay ang dagdag na oras na ginugugol ng mga inhinyero sa pakikibaka sa magulo na code sa halip na bumuo ng mga bagong tampok.
Ang mataas na bilis ba ay laging humahantong sa mas maraming teknikal na utang?
Hindi kinakailangan, ngunit mayroong isang malakas na kaugnayan. Ang mga koponan na gumagamit ng awtomatikong pagsubok at patuloy na pagsasama ay maaaring mapanatili ang mataas na bilis na may mas mababang akumulasyon ng utang. Ang susi ay ang 'napapanatiling bilis,' na nagsasangkot ng pagbuo ng kalidad sa proseso sa halip na subukang ayusin ang mga bagay pagkatapos ng katotohanan.
Ano ang pinakamahusay na mga sukatan upang subaybayan ang bilis ng pagbabago?
Ang pinaka maaasahang pamamaraan ay ang mga sukatan ng DORA, partikular na ang Lead Time para sa Mga Pagbabago at Dalas ng Pag-deploy. Dapat mo ring tingnan ang 'Feature Throughput'—ang bilang ng mga kwento ng gumagamit na nakumpleto sa bawat sprint. Mahalaga na sukatin ang mga ito kasama ang mga sukatan ng kalidad upang matiyak na hindi ka lamang mabilis na gumagalaw sa maling direksyon.
Kailan okay na sadyang kumuha ng teknikal na utang?
Ito ay madalas na angkop sa panahon ng isang 'Minimum Viable Product' (MVP) phase o kapag nahaharap sa isang mahirap na deadline ng regulasyon. Kung ang kaligtasan ng kumpanya ay nakasalalay sa pagpapadala sa loob ng dalawang linggo, ang pagkuha ng utang ay isang lohikal na desisyon sa negosyo. Ang panganib ay hindi ang utang mismo, ngunit ang kakulangan ng plano upang bayaran ito sa ibang pagkakataon.
Gaano karaming oras ang dapat gastusin ng isang developer sa utang?
Habang nag-iiba ito ayon sa industriya, maraming mga organisasyon ng engineering na may mataas na pagganap ay sumusunod sa '80/20 na panuntunan.' Inilaan nila ang 80% ng kanilang oras sa mga bagong tampok at 20% sa pagpapanatili, refactoring, at pagpapabuti ng tool. Kung ang iyong utang ay mabigat, maaaring kailanganin mong i-flip ang mga numerong ito sa loob ng ilang buwan upang mabawi ang katatagan.
Maaari mo bang sukatin ang gastos ng teknikal na utang sa dolyar?
Oo, bagama't nangangailangan ito ng kaunting pagtatantya. Maaari mong kalkulahin ito sa pamamagitan ng pagtingin sa 'agwat ng pagiging produktibo'-ang pagkakaiba sa pagitan ng kung gaano katagal ang isang gawain ay dapat tumagal sa isang malinis na sistema kumpara sa kung gaano katagal ito aktwal na tumatagal. Ang pagpaparami ng dagdag na oras sa oras-oras na gastos ng iyong koponan sa engineering ay nagbibigay sa iyo ng isang magaspang na pinansiyal na numero para sa 'interes' na iyong binabayaran.
Ano ang 'Madilim na Utang' sa mga sistema ng software?
Ang madilim na utang ay tumutukoy sa mga kumplikado at kahinaan na hindi nakikita hanggang sa ang isang tiyak na hanay ng mga pangyayari ay nag-trigger ng isang pagkabigo sa buong system. Hindi tulad ng kilalang teknikal na utang (tulad ng isang nawawalang pagsubok), ang madilim na utang ay matatagpuan sa mga hindi inaasahang pakikipag-ugnayan sa pagitan ng iba't ibang mga microservices o mga bahagi ng legacy.
Nakakatulong ba ang 'Code Freeze' na mabawasan ang teknikal na utang?
Ang isang code freeze ay maaaring ihinto ang akumulasyon ng mga bagong utang, ngunit hindi nito awtomatikong ayusin ang mga umiiral na isyu. Karaniwan itong isang taktika ng huling resort na ginagamit kapag ang isang sistema ay naging masyadong hindi matatag upang mai-deploy. Ang isang mas mahusay na diskarte ay ang 'patuloy na refactoring,' kung saan ang mga maliliit na pagpapabuti ay ginawa kasama ang bawat bagong tampok.
Hatol
Piliin na unahin ang bilis ng pagbabago sa panahon ng maagang yugto ng paglago o mapagkumpitensyang mga pivot upang ma-secure ang iyong posisyon sa merkado. Gayunpaman, ilipat ang iyong pokus patungo sa pamamahala ng teknikal na utang sa sandaling ang produkto ay matures upang maiwasan ang isang kabuuang pagwawalang-kilos ng pag-unlad at pagkasunog ng talento.