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