หนี้ทางเทคนิคคืออะไร วิธีชำระเงิน (ด้วยตัวอย่าง)
สรุป
หนี้ทางเทคนิคเป็นต้นทุนของงานเพิ่มเติมที่เกิดจากการเลือกวิธีแก้ปัญหาที่รวดเร็วที่สุดแทนที่จะเป็นทางออกที่มีประสิทธิภาพมากที่สุด แม้ว่าจะมีบางครั้งที่หนี้ทางเทคนิคที่คุ้มค่า แต่ก็เป็นสิ่งสำคัญที่ทีมของคุณเข้าใจถึงผลบวกและเชิงลบของการตัดสินใจที่รวดเร็วและวิธีการจัดการงานซ้ำในวิธีที่มีประสิทธิภาพ ในบทความนี้เราอธิบายว่าหนี้ทางเทคนิคคืออะไรแบ่งปันเทคนิคในการหลีกเลี่ยงหนี้และดูวิธีการแยกความแตกต่างระหว่างการตัดสินใจที่มีค่าเทียบกับที่ไม่มีค่า
การทำงานในพื้นที่ผลิตภัณฑ์มักจะต้องตัดสินใจอย่างรวดเร็วเกี่ยวกับคุณสมบัติของซอฟต์แวร์ หากคุณเคยทำงานในทีม Devops คุณรู้ว่าจำเป็นต้องมีการตัดสินใจกี่ครั้งในการผลักดันคุณสมบัติการถ่ายทอดสด
หนี้ทางเทคนิคเป็นคำที่ใช้อธิบายผลลัพธ์ของ การตัดสินใจ ขึ้นอยู่กับความเร็วเหนือสิ่งอื่นใด การตัดสินใจแบบเรียลไทม์เหล่านี้สามารถสร้างหรือทำลายการอัปเดตซอฟต์แวร์ได้ แต่ควรมีความสมดุลระหว่างการตัดสินใจที่ดีและสิ่งที่รวดเร็ว หนี้เทคโนโลยีที่เกิดขึ้นอาจส่งผลให้เกิดผลลัพธ์เชิงลบหรือคุ้มค่าที่จะขึ้นอยู่กับสิ่งที่คุณและทีมของคุณตัดสินใจ
ในบทความนี้เราจะหารือเกี่ยวกับคำจำกัดความของหนี้เทคนิควิธีการจัดการการตัดสินใจอย่างรวดเร็วในกระบวนการพัฒนาและแบ่งปันตัวอย่างเพื่อให้คุณเข้าใจวิธีการหลีกเลี่ยงความผิดพลาดในอนาคต
หนี้เทคนิคคืออะไร
หนี้เทคนิคเป็นค่าใช้จ่ายในการทำซ้ำเพิ่มเติมที่เกิดจากการเลือกวิธีแก้ปัญหาที่เร็วที่สุดแทนที่จะเป็นโซลูชันที่มีประสิทธิภาพมากที่สุด หนี้ทางเทคนิคเป็นวลีที่ถูกประกาศเกียรติคุณจากนักพัฒนาซอฟต์แวร์ Ward Cunningham ในปี 1992 ถึงแม้ว่าคำนั้นมีวิวัฒนาการมาตั้งแต่นั้นมา
วันนี้หนี้ทางเทคนิคหรือที่เรียกว่าหนี้เทคโนโลยีและหนี้รหัสมักเกิดขึ้นเมื่อทีมพัฒนาเลือกที่จะเขียนรหัสที่รวดเร็วในขณะที่สร้างคุณสมบัติใหม่ของผลิตภัณฑ์การพัฒนาซอฟต์แวร์ การส่งมอบรหัสที่รวดเร็วสามารถช่วยให้ทีมของคุณเป็นไปตามกำหนดเวลาและหนี้ที่คุณเกิดขึ้น จะคุ้มค่าแม้ว่ามันจะนำไปสู่ผลลัพธ์เชิงลบหากจัดการไม่ถูกต้อง ผลลัพธ์เชิงลบเหล่านี้ไม่สามารถหลีกเลี่ยงได้เสมอเมื่อการตัดสินใจที่จะเกิดหนี้เทคนิค
ไม่ว่าคุณจะประสบกับผลลัพธ์ที่ดีหรือไม่ดีเราจะข้ามข้อเท็จจริงสำคัญเกี่ยวกับหนี้เทคนิคดังนั้นคุณจึงพร้อมที่จะตัดสินใจที่ถูกต้องในขณะนี้
หนี้ทางเทคนิคไม่ดี?
เช่นเดียวกับหนี้ทางการเงินหนี้เทคนิคสามารถนำไปใช้ได้ทั้งในรูปแบบที่ดีและไม่ดี
ในบางกรณีหนี้เทคโนโลยีเป็นผลมาจากการคำนวณการคำนวณเพื่อให้เป็นไปตามกำหนดเวลาซอฟต์แวร์และจัดส่งรหัสคุณภาพสูงภายใน Sprints ในกรณีอื่นหนี้ทางเทคนิคเป็นผลมาจากข้อผิดพลาดที่หลีกเลี่ยงไม่ได้ที่เกิดขึ้นเมื่อปล่อยการอัพเดทซอฟต์แวร์
คณะกรรมการทางเทคนิค
มีสี่สาเหตุที่แตกต่างกันของหนี้ทางเทคนิคที่เรียกว่าเป็นหนี้ทางเทคนิค สี่ฝ่ายเทคนิคด้านเทคนิคประกาศเกียรติคุณจากมาร์ตินฟาวเลอร์รวมถึงความประมาทรอบคอบโดยเจตนาและไม่ตั้งใจ
การกำหนดหนี้ทางเทคนิคให้กับ Quadrants เหล่านี้ช่วยวัดความตั้งใจและพื้นหลังเกี่ยวกับปัญหารหัส ในขณะที่หนี้รหัสบางอย่างอาจมีเจตนาและจัดประเภทเป็น รหัสอื่น ๆ อาจไม่ได้ตั้งใจและจัดเป็น .
รอบคอบและพิจารณา: การตัดสินใจจัดส่งอย่างรวดเร็วและจัดการกับผลที่ตามมาในภายหลังทำให้เกิดหนี้ที่รอบคอบและรอบคอบ หนี้ประเภทนี้ใช้กันมากที่สุดเมื่อเงินเดิมพันของผลิตภัณฑ์ค่อนข้างต่ำและประโยชน์ของการจัดส่งที่รวดเร็วเกินความเสี่ยง
ประมาทและโดยเจตนา: การรู้วิธีการผลิตรหัสที่ดีที่สุด แต่จัดลำดับความสำคัญการจัดส่งที่รวดเร็วกว่ามันเป็นสาเหตุของหนี้ที่ประมาทและรอบคอบ
รอบคอบและไม่ตั้งใจ: หนี้ที่รอบคอบและไม่ได้ตั้งใจจะเกิดขึ้นเมื่อมีความปรารถนาที่จะสร้างรหัสที่ดีที่สุด แต่คุณพบทางออกที่ดีกว่าหลังจากการใช้งาน
ประมาทและไม่ตั้งใจ: หนี้ที่ประมาทและไม่ตั้งใจเกิดขึ้นเมื่อทีมพยายามผลิตรหัสที่ดีที่สุดโดยไม่มีความรู้ที่จำเป็นในการทำเช่นนั้น ทีมมักจะไม่ทราบถึงความผิดพลาดที่พวกเขาทำ
ทีมเลือกหนี้ทางเทคนิคโดยเจตนาเพื่อประโยชน์ของการจัดส่งที่รวดเร็วในขณะที่หนี้สินโดยไม่ตั้งใจ - มันเกิดขึ้นหลังจากการดำเนินการ ความแตกต่างนี้อธิบายได้ดีที่สุดโดยวิศวกรซอฟต์แวร์ Steve McConnell เมื่ออธิบายถึงหนี้ทางเทคนิคทั้งสองประเภท ลองดำดิ่งลงไปในแต่ละสิ่งเพื่อให้ได้ความเข้าใจที่ดีขึ้น
ประเภทของหนี้ทางเทคนิค
Steve McConnell หัวหน้าวิศวกรซอฟต์แวร์ที่ Constrox Software แนะนำว่ามี หนี้ทางเทคนิคสองประเภท :
โดยเจตนา
ไม่ได้ตั้งใจ
1. หนี้ทางเทคนิคโดยเจตนา
หนี้โดยเจตนาเกิดขึ้นเมื่อองค์กรตัดสินใจอย่างมีสติในการเพิ่มประสิทธิภาพสำหรับปัจจุบันมากกว่าในอนาคต
มีทั้งการเปลี่ยนแปลงระยะสั้นและระยะยาวของหนี้โดยเจตนา ตัวอย่างเช่นหนี้โดยเจตนาเกิดขึ้นเพื่อชำระหนี้ในอดีตเป็นหนี้ระยะสั้นในขณะที่หนี้สินโดยเจตนาที่เกิดขึ้นเพื่อป้องกันหนี้ในอนาคตที่ใหญ่ขึ้นจะเป็นหนี้ระยะยาว
หนี้ระยะสั้น : หนี้ระยะสั้นเกิดขึ้นจริงสำหรับเหตุผลทางยุทธวิธีเช่นการใช้ทรัพยากรที่มีอยู่ นอกจากนี้หนี้ระยะสั้นสามารถโฟกัสหรือเลิกใช้งานได้
มุ่งเน้นหนี้ระยะสั้น: ซึ่งรวมถึงทางลัดที่ระบุตัวตนได้
ยกเลิกการใช้หนี้ระยะสั้น: ซึ่งรวมถึงทางลัดเล็ก ๆ มากมาย
หนี้สินระยะยาว : หนี้ระยะยาวเกิดขึ้นเชิงรุกเพื่อเหตุผลเชิงกลยุทธ์เช่นเพื่อให้ตรงตามกำหนดเวลา
อย่างที่คุณเห็นประเภทของหนี้ที่เกิดขึ้นจะกำหนดระยะเวลาที่จะต้องชำระเงิน
2. หนี้ทางเทคนิคโดยไม่ได้ตั้งใจ
ในทางกลับกันหนี้เทคนิคที่ไม่ได้ตั้งใจจะเกิดขึ้นเนื่องจากการขาดความเข้าใจข้อผิดพลาดโดยไม่ตั้งใจหรือในบางกรณี - รหัสที่เขียนไม่ดี ตัวอย่างของหนี้เทคนิคที่ไม่ได้ตั้งใจจะเป็นวิธีการออกแบบที่ปรากฎว่ามีข้อผิดพลาดเกิดขึ้น นี่คือผลลัพธ์ที่ไม่ใช่เชิงกลยุทธ์ของการทำผิดพลาดที่หลีกเลี่ยงไม่ได้
เราสามารถถือว่าเป็นหนี้เทคนิคที่ไม่ได้ตั้งใจเนื่องจากทีมไม่ได้เกิดขึ้นตามวัตถุประสงค์ โดยทั่วไปแล้วคุณจะตระหนักถึงความผิดพลาดของคุณหลังจากที่คุณใช้การอัปเดตซอฟต์แวร์หรือทำโครงการให้เสร็จสมบูรณ์
วิธีกำจัดหนี้ทางเทคนิค
ในขณะที่คุณอาจมีหนี้ทางเทคนิคบางอย่างโดยเจตนาทีมผลิตภัณฑ์จำนวนมากพยายามติดตามและ สื่อสาร หนี้เทคโนโลยี สิ่งนี้อาจส่งผลให้ทำงานได้มากกว่าที่คาดการณ์ไว้เมื่อต้องการแก้ปัญหาช่องว่างในรหัสซอฟต์แวร์
มีสองวิธีหลักในการจัดการหนี้ทางเทคนิคและสร้างมากขึ้น ความโปร่งใสในที่ทำงาน รอบโหลดหนี้
รักษารายชื่อหนี้ภายในระบบติดตาม: ทุกครั้งที่คุณต้องเสียหนี้ให้ป้อนงานที่จำเป็นในการชำระหนี้ให้เป็นระบบการติดตามของคุณพร้อมกับความพยายามและกำหนดเวลาโดยประมาณ ใช้หนี้ค้างชำระเพื่อติดตามความคืบหน้าของหนี้เทคโนโลยีของคุณ หนี้ที่ไม่ได้รับการแก้ไขใด ๆ เกินกว่า 90 วันควรได้รับการปฏิบัติที่สำคัญ
รักษารายชื่อหนี้เป็นส่วนหนึ่งของงาน Backlog Product: ปฏิบัติต่อหนี้แต่ละครั้งเป็น "เรื่องราว" Scrum และประเมินความพยายามและกำหนดเวลาเพื่อชำระหนี้แต่ละครั้ง - วิธีเดียวกับที่คุณประเมินเรื่องราวอื่น ๆ ในการต่อสู้ภายใน Backlog ผลิตภัณฑ์ .
วิธีการทั้งสองนี้สามารถช่วยให้คุณติดตามหนี้ทางเทคนิคได้อย่างมีประสิทธิภาพและกำจัดหนี้ได้อย่างรวดเร็วและมีประสิทธิภาพมากที่สุด คล้ายกับการจ่ายเงินด้วยบัตรเครดิตวิธีการทั้งสองช่วยให้คุณชำระหนี้ที่เพิ่มขึ้นเล็กน้อยจนกว่าจะมีการจ่ายเงินทั้งหมด
ตัวอย่างและการแก้ปัญหาหนี้ทางเทคนิค
ตอนนี้คุณมีความเข้าใจในการจัดการหนี้เทคนิคและสาเหตุบางประการที่อยู่เบื้องหลังหนี้ที่ไม่ได้ตั้งใจและตั้งใจให้ตรวจสอบตัวอย่างชีวิตจริงบางอย่าง
ตัวอย่างที่ 1: หนี้ทางเทคนิคโดยเจตนา
คำอธิบาย: ทีมเลือกกรอบงานที่รวดเร็วในการสร้างด้วยปัญหาประสิทธิภาพการทำงานที่รู้จักและความสามารถในการทำงานที่น้อยที่สุด
สารละลาย: ทีมใช้แอปพลิเคชันเพิ่มเติมสำหรับการใช้งานซอฟต์แวร์โพสต์ที่มีฟังก์ชั่นกรอบงานที่หายไป
หนี้: แม้ว่าพวกเขาจะพบกับกำหนดเวลาของผลิตภัณฑ์ แต่ทีมจะต้องทำใหม่คุณสมบัติหลังการเปิดตัวและจะต้องใช้เงินเพิ่มเติม
ตัวอย่างที่ 2: หนี้เทคนิคที่ไม่ได้ตั้งใจ
คำอธิบาย: ทีมมีนักพัฒนาจูเนียร์จำนวนมากที่ช่วยเปิดใช้งานคุณสมบัติซอฟต์แวร์ใหม่ในกำหนดเวลาที่แน่นแฟ้นกับนักพัฒนาอาวุโสที่ไม่เพียงพอที่จะตรวจสอบรหัสแต่ละชิ้น
สารละลาย: ทีมจ้างการสนับสนุนชั่วคราวเพิ่มเติมจากนักพัฒนาอาวุโสเพื่อดูรหัสและตรวจสอบการทำงานที่เหมาะสม
หนี้: ในขณะที่ทีมจับประเด็นส่วนใหญ่การสื่อสารผิดพลาดระหว่างพนักงานเต็มเวลาและการสนับสนุนชั่วคราวทำให้เกิดการกำกับดูแลเกี่ยวกับข้อบกพร่องที่ไม่ได้รับบางอย่างในรหัส ซึ่งหมายความว่าทีมจะต้องดีบักปัญหาเหล่านี้หลังการเปิดตัว
อย่างที่คุณเห็นในขณะที่แตกต่างกันทั้งหนี้ที่มีเจตนาและไม่ได้ตั้งใจจะต้องได้รับเงินเมื่อเวลาผ่านไป โดย การระดมความคิด วิธีแก้ปัญหาเกี่ยวกับหนี้เทคนิคคุณสามารถมั่นใจได้ว่าการอัปเดตซอฟต์แวร์ของคุณจะเปิดให้บริการตรงเวลาด้วยหนี้น้อยที่เกิดขึ้น
ชำระหนี้ทางเทคนิคของคุณด้วยความโปร่งใส
หนี้ไม่สามารถหลีกเลี่ยงได้เสมอเมื่อทำงานกับการเปิดตัวผลิตภัณฑ์ซอฟต์แวร์ จากการตัดสินใจที่ยากลำบากในการทำผิดพลาดในรหัส ว่องไว ทีมรู้ว่าจำนวนหนี้ทางเทคนิคที่เกิดขึ้นอาจส่งผลต่อการอัปเดตซอฟต์แวร์อย่างไร
กุญแจสำคัญในการชำระหนี้คือการบำรุงรักษาและติดตามการชำระเงินที่เพิ่มขึ้น ในขณะที่ประเภทของการจ่ายหนี้มีความแตกต่างกันในแต่ละสถานการณ์ความโปร่งใสของทีมและการสื่อสารสามารถช่วยชำระหนี้ได้เร็วขึ้น เนื่องจากความคมชัดที่เพิ่มขึ้นของโครงการว่องไวสามารถบังคับใช้โซลูชันร่วมกับปัญหาได้ในมือ