ซึ่งรวมถึงการตัดสินใจด้านสถาปัตยกรรมตัวเลือกแพลตฟอร์มหรือสถานการณ์ใด ๆ ที่เป็นตัวเลือกที่ไม่ดีเช่นนั้นนำไปสู่ผลกระทบด้านลบ
ซึ่งรวมถึงการตัดสินใจด้านสถาปัตยกรรมตัวเลือกแพลตฟอร์มหรือสถานการณ์ใด ๆ ที่เป็นตัวเลือกที่ไม่ดีเช่นนั้นนำไปสู่ผลกระทบด้านลบ
คำตอบ:
หลายปีก่อนฉันเป็นผู้นำในการพัฒนาแอปพลิเคชันที่มีฐานข้อมูลเป็นศูนย์กลางซึ่งเริ่มโยนข้อผิดพลาด ฉันติดตามความจริงที่ว่ามีค่าซ้ำกันในเขตข้อมูลฐานข้อมูลที่ไม่ควรอนุญาต
ฉันกำลังเต้นจนลืมที่จะตั้งข้อ จำกัด ที่ไม่เหมือนใครในฐานข้อมูลเมื่อฉันผลักมันไปผลิตเพราะเห็นได้ชัดว่าฟิลด์นี้ต้องการสิ่งหนึ่ง ฉันยอมรับกับหนึ่งในนักพัฒนาเพื่อนของฉันที่แก้ไขฉัน ...
นักพัฒนาอื่น ๆ : "โอ้คุณไม่ลืมมีข้อ จำกัด ที่ไม่ซ้ำกันในฟิลด์นั้นฉันเพิ่งลบมัน"
ฉัน : "ทำไมคุณลบออก"
ผู้พัฒนารายอื่น : "ฉันทำเมื่อไม่กี่สัปดาห์ก่อนฉันได้รับไฟล์ข้อมูลจากลูกค้าและพวกเขาจะไม่นำเข้าเพราะข้อ จำกัด ที่ไม่ซ้ำกันคือการปิดกั้นข้อมูลใหม่ดังนั้นฉันจึงลบข้อ จำกัด ออกเพื่อนำเข้าเสร็จ"
ฉัน: "คุณหยุดที่จะพิจารณาว่าอาจมีปัญหาหากเราได้รับข้อมูลใหม่ที่ซ้อนทับกับข้อมูลที่มีอยู่และคิดว่าจะพูดถึงใครบางคนก่อนนำเข้าหรือไม่"
ผู้พัฒนาอื่น ๆ : (blank stare)
ฉัน : Facepalm
ไม่แน่ใจว่านี่เป็นการตัดสินใจทางเทคโนโลยีหรือไม่ แต่ฉันรับผิดชอบเว็บไซต์การจัดการเอกสารแบบ CMS ที่เขียนด้วย PHP เป็นเวลาสี่ปี ตลอดหลายปีที่ผ่านมาผมพยายามหลายครั้งที่จะรับคน (ผู้จัดการผู้ที่มีคุณลักษณะ requestors) ไปบางทีอาจจะเป็นเช่นอาจจะพิจารณาความเป็นไปได้ของการนั่งร่วมกันและความคิดเกี่ยวกับความต้องการและทิศทางในอนาคตของสิ่ง มันไม่เคยเกิดขึ้น มันเป็น“ เพิ่มฟีเจอร์นี้”,“ เพิ่มฟีเจอร์นั้น” และทุกคนต่างก็ไม่รู้วิธีต่าง ๆ ทั้งหมดที่คนอื่นใช้เว็บไซต์ ตอนที่ฉันจากไปมันกลายเป็นความยุ่งเหยิงขนาดใหญ่ของคุณสมบัติที่เชื่อมต่อระหว่างกัน แต่ไม่เกี่ยวข้องกันและฉันก็เป็นเพียงคนเดียวใน บริษัท ทั้งหมดที่รู้จักคุณสมบัติทุกอย่าง ตอนนี้ไม่มีใครทำ Mwahaha
การใช้งาน SAP
การเขียนใหม่ระบบจดหมายเสียงระดับ Telco
ระบบก่อนหน้านี้ทำงานบน Unix และในช่วงปลายยุค 90 เทคโนโลยี Microsoft ของ COM นั้นเกิดขึ้นพร้อมกัน นักพัฒนาหลายคนกำลังทำงานบนระบบที่ใช้ NT ใหม่นี้ หลังจากความพยายามอย่างมากประสิทธิภาพการทำงานก็ยังไม่ใกล้เคียงกับระบบ Unix และลูกค้าขนาดใหญ่ที่ซื้อระบบใหม่นี้ก็โกรธ ต้องขาย บริษัท และบางคนต้องออกจาก บริษัท
มันน่าเกลียด ทั้งหมดนี้เกิดขึ้นประมาณสองปีก่อนที่โจเอลเขียนบทความของเขา: สิ่งที่คุณไม่ควรทำตอนที่ 1
การนำไลบรารี่ภายนอก (ในกรณีนี้คือSpring RCP ) มาใช้ก่อนรีลีสเวอร์ชันแรกโดยอิงจากสแน็ปช็อต SVN รับประกันค่อนข้างมากว่าโครงการจะจบลงไม่มากก็น้อยและคุณจะพบว่าตัวเองผูกติดอยู่กับศพ ในกรณีของเรามันอาจแย่กว่านี้ ยังคงเป็นความเสี่ยงใหญ่
ตัวอย่างหนึ่งที่ฉันจำได้ว่าเกี่ยวข้องกับการผูกติดกับแอ็พพลิเคชันเซิร์ฟเวอร์ Java ก่อน แต่ข้อเท็จจริงที่ว่ามันยังไม่ได้มีคุณสมบัติที่จำเป็นสำหรับโครงการเพียงแค่แผนงานสำหรับเมื่อพวกเขาจะดำเนินการ โดยปกติผู้ขายไม่ได้ส่งมอบตามที่ระบุไว้ในทันทีซึ่งควรจะเป็นปัญหาใหญ่ แต่ในความเป็นจริงเป็นเพียงหนึ่งในไก่อัพจำนวนมากบนถนนช้าไปสู่ความล้มเหลว
อินสแตนซ์ส่วนใหญ่ของปัญหาแบบนี้ที่ฉันเจอมีส่วนเกี่ยวข้องกับการยอมรับเทคโนโลยีที่ไม่ได้พิสูจน์ / ยังไม่บรรลุนิติภาวะบ่อยครั้งเพราะใครบางคนที่มีอิทธิพลทางด้านเทคนิคนั้นเป็นผู้ขับเคลื่อนการพัฒนาเรซูเม่
เมื่อสามปีก่อนแผนก BusDev ของเรากล่าวว่าพวกเขาต้องสร้างระบบการจัดการเนื้อหาบน Documentum เพราะ บริษัท ยาที่พวกเขาพยายามจะรู้ชื่อและพอใจกับเทคโนโลยี ดังนั้นเราจึงใช้เงินจำนวนมากเพื่อสร้างมันจากนั้นก็เก็บไว้ 12 เดือนต่อมา
ในเดือนกุมภาพันธ์ปีนี้พวกเขาประกาศว่าระบบใหม่จะใช้ Sharepoint 2010 ต้องการเดาว่าทำไม เพราะทันใดนั้นนี่เป็นชื่อที่ Pharmas รู้จักและเป็นชื่อที่พวกเขาคุ้นเคย!\\ uSlackr
การเขียนระบบปฏิบัติการที่ทันสมัยใน C / C ++ เรารู้จักกันมาตั้งแต่มอร์ริสเวิร์ม (ช่วงปลายยุค 80) ว่าเป็นภาษาที่ไม่เหมาะสมอย่างสมบูรณ์สำหรับการสร้างซอฟต์แวร์เครือข่ายใน แต่ก็ไม่ได้หยุดยั้งไม่ให้ใครทำเช่นนั้น
std::string
แต่มันใช้งานได้และพร้อมกับแม่แบบคลาสคอนเทนเนอร์สามารถกำจัดข้อผิดพลาดที่อาจเกิดขึ้นได้ในระดับสูง
สิ่งที่ฉันเห็น ....
ย้อนกลับไปในปี 1980 มี บริษัท ชื่อ Prime ที่ผลิตคอมพิวเตอร์ที่ใช้ฐานข้อมูล Pick และ BASIC แผนกผู้ใช้งานของสถานที่ที่ฉันทำงานในเวลาที่ซื้อมานั้นเชื่อมั่นว่านี่จะช่วยพวกเขาได้เยอะแยะมากมายว่าพวกเขาได้รับการประมวลผลและผลลัพธ์ที่พวกเขาต้องการกับนักวิเคราะห์ธุรกิจคนหนึ่งในไตรมาสเดียว มันไม่นานเลยก่อนที่จะมีนักวิเคราะห์โปรแกรมเมอร์เต็มเวลาสี่คนและงานค้าง
ความผิดพลาดครั้งใหญ่ในการประเมินว่าเทคโนโลยีจะทำอะไรให้พวกเขา