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