คุณอ้างถึงหนี้ทางเทคนิค
เราทุกคนมีหนี้สินทางเทคนิคในผลิตภัณฑ์ที่เราพัฒนาอยู่ตลอดเวลา การปรับโครงสร้างใหม่เป็นหนึ่งในวิธีทั่วไปและมีประสิทธิภาพในการลดหนี้ทางเทคนิคนี้แม้ว่าหลาย ๆ บริษัท จะไม่ชำระหนี้ทางเทคนิค บริษัท เหล่านี้มักจะพบว่าซอฟต์แวร์ของพวกเขาไม่เสถียรในช่วงหลายปีที่ผ่านมาและหนี้สินทางเทคนิคก็ช่างน่ากลัวจนคุณไม่สามารถจ่ายเพิ่มทีละน้อยเพราะมันใช้เวลานานเกินกว่าที่จะจ่ายลง
หนี้ทางเทคนิคมีระยะเวลาเพราะเป็นไปตามพฤติกรรมแบบเดียวกันของหนี้ คุณได้รับหนี้และตราบใดที่คุณยังคงใช้จ่าย (สร้างคุณลักษณะ) และไม่จ่ายหนี้นั้นมันจะเติบโตขึ้นเท่านั้น เหมือนหนี้เมื่อมันใหญ่เกินไปคุณจะไปถึงจุดที่คุณอาจต้องการกำจัดมันด้วยงานที่เป็นอันตรายเช่นการเขียนใหม่ทั้งหมด เช่นเดียวกับหนี้จริงที่เกิดขึ้นจนถึงจุดหนึ่งมันเป็นอุปสรรคต่อความสามารถในการใช้จ่ายของคุณ (สร้างคุณลักษณะ) ทั้งหมด
เพียงแค่โยนคำอื่น ๆ ลงในการผสมการทำงานร่วมกันหมายถึงระบบระบบขนาดเล็กถึงระดับบรรทัดหรือมาโครกับระดับระบบเข้ากันได้ดีเพียงใด ระบบที่มีความเหนียวแน่นสูงจะมีชิ้นส่วนทั้งหมดเข้าด้วยกันเป็นอย่างดีและดูเหมือนว่าวิศวกรคนหนึ่งเขียนไว้ทั้งหมด การอ้างอิงของคุณข้างต้นกับใครสักคนเพียงแค่จ้องรหัสของพวกเขาไปจนสุดจะเป็นการละเมิดการทำงานร่วมกันของระบบนั้น
การจัดการหนี้ทางเทคนิค
มีหลายวิธีในการจัดการหนี้ด้านเทคนิคแม้ว่าจะเป็นหนี้จริงวิธีที่ดีที่สุดคือการชำระหนี้บ่อยครั้ง น่าเสียดายที่เป็นหนี้จริงเป็นบางครั้งเป็นความคิดที่ดีกว่าที่จะมีรายได้เพิ่มขึ้นในช่วงเวลาสั้น ๆ ซึ่งในบางครั้งคุณอาจมีรายได้ของคุณสองหรือสามเท่า ส่วนที่ยุ่งยากคือการชั่งน้ำหนักการจัดลำดับความสำคัญของการแข่งขันเหล่านี้รวมถึงการระบุว่าหนี้สินROIนั้นไม่คุ้มกับฟีเจอร์ที่ได้รับเทียบกับเมื่อใด
ดังนั้นบางครั้งมันก็คุ้มค่าที่จะสะสมหนี้ในช่วงเวลาสั้น ๆ แต่นั่นไม่ค่อยเป็นเช่นนั้นและเช่นเดียวกับหนี้ทั้งหมด ดังนั้นในที่สุด (อย่างรวดเร็วโดยเฉพาะอย่างยิ่ง) หลังจากที่คุณได้รับหนี้ทางเทคนิคคุณจะต้องจ่ายมันลงซึ่งเป็นวิธีการทั่วไป:
- refactoring
- สิ่งนี้ช่วยให้คุณสามารถนำโค้ดที่รู้ตัวว่าถูกวางผิดที่ผ่านหรือหลังจากการนำไปใช้งานเสร็จสมบูรณ์และวางไว้ในตำแหน่งที่ถูกต้อง (หรือถูกต้องมากกว่านั้น)
- Rewrite
- นี่เป็นเหมือนการล้มละลาย มันทำความสะอาดกระดานชนวนที่สะอาด แต่คุณเริ่มต้นด้วยไม่มีอะไรและมีโอกาสที่จะทำผิดพลาดเดียวกันหรือใหญ่กว่าทุกครั้ง วิธีการให้รางวัลที่มีความเสี่ยงสูงสำหรับหนี้ทางเทคนิค แต่บางครั้งเป็นตัวเลือกเดียวของคุณ แม้ว่าจะเป็นกรณีที่น้อยกว่าหลายคนจะบอกคุณ
- ภาพรวมสถาปัตยกรรม
- นี่เป็นวิธีการชำระหนี้ทางเทคนิคที่ใช้งานอยู่ สิ่งนี้ทำได้โดยมีคนที่มีอำนาจเหนือรายละเอียดทางเทคนิคเพื่อหยุดการดำเนินการโดยไม่คำนึงถึงแผนโครงการและกำหนดเวลาเพื่อให้แน่ใจว่าหนี้ค้างชำระทางเทคนิคน้อยลง
- การตรึงรหัส
- การแช่แข็งรหัสของการเปลี่ยนแปลงสามารถช่วยให้คุณหายใจในห้องที่หนี้ของคุณไม่ได้ขึ้นหรือลง สิ่งนี้จะช่วยให้คุณมีเวลาในการวางแผนแนวทางในการลดหนี้ทางเทคนิคด้วยความหวังว่าจะได้รับ ROI ที่สูงที่สุดในแนวทางของคุณ
- modularization
- นี่เป็นเหมือนวิธีเทียร์ 2 ที่ใช้ได้เฉพาะเมื่อคุณใช้ภาพรวมสถาปัตยกรรมอย่างใดอย่างหนึ่งเพื่อให้มีระบบโมดูลาร์อยู่แล้วหรือการเปลี่ยนโครงสร้างเพื่อย้ายไปยังระบบเดียว เมื่อคุณมีระบบแบบแยกส่วนคุณสามารถชำระหนี้เป็นส่วน ๆ ของระบบแบบแยกตัวได้ สิ่งนี้ช่วยให้คุณทำการเขียนซ้ำบางส่วนการปรับโครงสร้างบางส่วนรวมถึงการลดหนี้ทางเทคนิคของอัตราที่เกิดขึ้นเนื่องจากการแยกเก็บหนี้ไว้เฉพาะในพื้นที่ที่คุณลักษณะดังกล่าวตรงข้ามกับการแพร่กระจายไปทั่วระบบ
- การทดสอบอัตโนมัติ
- การทดสอบอัตโนมัติสามารถช่วยในการจัดการหนี้ด้านเทคนิคของคุณเพราะพวกเขาสามารถช่วยคุณระบุจุดที่มีปัญหาในระบบหวังว่าก่อนที่หนี้ในพื้นที่เหล่านั้นจะเติบโตมาก แต่แม้หลังจากที่พวกเขายังสามารถทำให้วิศวกรตระหนักถึงพื้นที่อันตรายเหล่านั้น อาจไม่ได้ตระหนัก นอกจากนี้เมื่อคุณได้รับการทดสอบอัตโนมัติคุณสามารถ refactor สิ่งต่าง ๆ ได้อย่างอิสระมากขึ้นโดยไม่ต้องกังวลเกี่ยวกับการทำลายมากเกินไป ไม่ใช่เพราะนักพัฒนาจะไม่ทำสิ่งต่าง ๆ แต่เพราะพวกเขาจะค้นพบเมื่อพวกเขาทำสิ่งต่าง ๆอาศัยการทดสอบด้วยตนเองในระบบที่มีหนี้สูงมีแนวโน้มที่จะมีประวัติที่น่าสงสารสำหรับการค้นหาปัญหา