การต่อสู้ไม่ได้พูดอะไรเกี่ยวกับการรื้อฟื้น (ดูการบรรยายของโรเบิร์ตซี. มาร์ติน "ดินแดนที่ทะเลาะกันลืม")
ในภารกิจการต่อสู้คือการกำหนดเป้าหมายคุณสมบัติของซอฟต์แวร์ของคุณที่ระบุโดยลูกค้าไม่ใช่หนี้ทางเทคนิคเพื่อชำระคืนโดยการปรับโครงสร้างใหม่ สิ่งเหล่านี้เป็นระดับนามธรรมที่แตกต่างกันโดยสิ้นเชิง ลูกค้าส่วนใหญ่ไม่สามารถประเมินความจำเป็นได้
การต่อสู้คือการจัดการโครงการทางสถิติ ในการรับมาตรการที่มีความหมายว่า "ใช้เวลานานเท่าใด" คุณต้องรู้ประสิทธิภาพ (เอาต์พุตต่อการวิ่ง) คุณเปรียบเทียบการประเมินและระยะเวลาที่แท้จริงสำหรับสถานที่อย่างน้อย 1 วิ่งเพื่อเข้าสู่สถิติ ฉันแนะนำ 5 sprints แต่นั่นก็ขึ้นอยู่กับทีมของคุณ
สิ่งสำคัญคือการรักษาความหมายและเทียบเคียงเพื่อให้การคาดการณ์ใด ๆ ที่เป็นไปได้ จะไม่เป็นเช่นนั้นหากประสิทธิภาพลดลงเนื่องจากหนี้สินทางเทคนิค
หากคุณยังคงคิดว่าการปรับเปลี่ยนงานที่คุณมีสองปัญหา: 1. ลูกค้าที่ไม่เข้าใจว่าทำไมเขาต้องยอมรับงานที่จะไม่สร้างคุณลักษณะใหม่ 2. คุณบิดเบือนสถิติโดยสิ้นเชิงและทำให้ความสามารถในการพยากรณ์ของคุณหมดไป ในขณะที่คุณเปลี่ยนตัวแปรอื่นที่ไม่ได้พิจารณาในการวิ่งครั้งก่อน
ในทั้งสองกรณีคุณประนีประนอมความคิดของการต่อสู้ในขณะที่คุณต้องการพูดคุยเกี่ยวกับคุณสมบัติกับลูกค้าและทำให้การคาดการณ์ที่เชื่อถือได้สำหรับ "ใช้เวลานานแค่ไหน?" ในทางสถิติ เพื่อความปลอดภัยคุณต้องให้รหัสของคุณมีคุณภาพคงที่ (อาจสูง)
การปรับโครงสร้างส่วนใหญ่เป็นงานใต้ดิน การรีแฟคเตอร์ "ยอดเยี่ยม" หมายความว่าการรีแฟคเตอร์ "น้อย" ยังไม่ได้รับการประมวลผลในอดีต
หมายเหตุสุดท้ายหนึ่ง: หากคุณทำการปรับโครงสร้างใหม่ให้แน่ใจว่าคุณมีองค์ประกอบภายใต้การทดสอบคุณกำลังทำการปรับโครงสร้างใหม่ โอ้คุณไม่มีการทดสอบ? ทำภารกิจในการเขียนการทดสอบ ลูกค้าของคุณยินดีที่จะทราบว่าซอฟต์แวร์ที่เขาใช้อยู่ในขณะนี้มีการทดสอบไม่เพียงพอ ...
หลีกเลี่ยงสิ่งทางเทคนิคจากลูกค้าและทำงานในฐานะนักพัฒนามืออาชีพ