ความซับซ้อนของอุบัติเหตุ
คำถามเดิม (ถอดความ) คือ:
สถาปนิกจัดการความซับซ้อนโดยไม่ตั้งใจในโครงการซอฟต์แวร์ได้อย่างไร
ความซับซ้อนโดยบังเอิญเกิดขึ้นเมื่อผู้ที่มีทิศทางเหนือโครงการเลือกที่จะผนวกเทคโนโลยีที่เป็นหนึ่งเดียวและกลยุทธ์โดยรวมของสถาปนิกดั้งเดิมของโครงการไม่ได้ตั้งใจที่จะนำเข้ามาในโครงการ ด้วยเหตุนี้จึงเป็นสิ่งสำคัญที่จะต้องบันทึกเหตุผลที่อยู่เบื้องหลังตัวเลือกในกลยุทธ์
ความซับซ้อนของอุบัติเหตุนั้นอาจเกิดขึ้นได้จากความเป็นผู้นำที่ยึดติดกับกลยุทธ์ดั้งเดิมของพวกเขาจนกว่าจะถึงเวลาที่การพิจารณาอย่างรอบคอบจากกลยุทธ์นั้นกลายเป็นความจำเป็น
หลีกเลี่ยงความซับซ้อนที่ไม่จำเป็น
จากเนื้อหาของคำถามฉันจะใช้ถ้อยคำใหม่เช่นนี้:
สถาปนิกจัดการความซับซ้อนในโครงการซอฟต์แวร์อย่างไร
การใช้ถ้อยคำใหม่นี้มีประโยชน์ต่อร่างกายของคำถามมากขึ้นโดยที่อัลกอริทึมไฟน์แมนถูกนำเข้ามาโดยให้บริบทที่เสนอว่าสำหรับสถาปนิกที่ดีที่สุดเมื่อต้องเผชิญกับปัญหา ว่าพวกเราที่เหลือไม่สามารถเรียนรู้สิ่งนี้ได้ การมีท่าทางของความเข้าใจขึ้นอยู่กับความฉลาดของวิชาและความตั้งใจที่จะเรียนรู้คุณสมบัติของตัวเลือกสถาปัตยกรรมที่อาจอยู่ในขอบเขตของพวกเขา
กระบวนการวางแผนสำหรับโครงการจะใช้การเรียนรู้ขององค์กรเพื่อทำรายการข้อกำหนดของโครงการและจากนั้นพยายามสร้างรายการของตัวเลือกที่เป็นไปได้ทั้งหมดแล้วกระทบยอดตัวเลือกกับข้อกำหนด ท่าทางของผู้เชี่ยวชาญช่วยให้เขาทำสิ่งนี้ได้อย่างรวดเร็วและอาจมีงานเล็ก ๆ น้อย ๆ ทำให้ดูเหมือนว่าเขาจะมาง่าย
ฉันส่งให้คุณว่ามันมาถึงเขาเพราะการเตรียมของเขา ในการมีผู้เชี่ยวชาญของเราต้องการความคุ้นเคยกับตัวเลือกทั้งหมดของคุณและการมองการณ์ไกลในการจัดหาโซลูชั่นที่ตรงไปตรงมาซึ่งจะช่วยให้ความต้องการในอนาคตที่คาดการณ์ไว้ได้ว่ามีการพิจารณาว่าโครงการควรมี โครงการ. การเตรียมการของเฟย์แมนคือการที่เขามีความเข้าใจอย่างลึกซึ้งเกี่ยวกับวิธีการต่าง ๆ ทั้งในเชิงทฤษฎีและคณิตศาสตร์ประยุกต์และฟิสิกส์ เขามีความอยากรู้อยากเห็นในตัวและสว่างพอที่จะเข้าใจสิ่งต่าง ๆ ที่เขาค้นพบเกี่ยวกับโลกธรรมชาติรอบตัวเขา
สถาปนิกเทคโนโลยีผู้เชี่ยวชาญจะมีความอยากรู้อยากเห็นที่คล้ายกันโดยมีพื้นฐานอยู่บนความเข้าใจที่ลึกซึ้งเกี่ยวกับพื้นฐานรวมถึงการได้รับความรู้ที่หลากหลายเกี่ยวกับเทคโนโลยี เขา (หรือเธอ) จะมีภูมิปัญญาในการใช้กลยุทธ์ที่ประสบความสำเร็จในโดเมนต่างๆ (เช่นหลักการของ Unix Programming ) และที่ใช้กับโดเมนเฉพาะ (เช่นรูปแบบการออกแบบและคู่มือสไตล์ ) เขาอาจไม่มีความรู้อย่างลึกซึ้งเกี่ยวกับทรัพยากรทุกอย่าง แต่เขาจะรู้ว่าจะหาทรัพยากรได้จากที่ไหน
สร้างโซลูชัน
ความรู้ความเข้าใจและภูมิปัญญาในระดับนี้สามารถดึงออกมาจากประสบการณ์และการศึกษา แต่ต้องอาศัยความฉลาดและกิจกรรมทางจิตเพื่อรวบรวมโซลูชันเชิงกลยุทธ์ของ gestalt ที่ทำงานร่วมกันในลักษณะที่หลีกเลี่ยงความซับซ้อนโดยไม่ได้ตั้งใจและไม่จำเป็น มันต้องใช้ผู้เชี่ยวชาญในการรวบรวมปัจจัยพื้นฐานเหล่านี้เข้าด้วยกัน; เหล่านี้เป็นคนงานที่มีความรู้ที่ Drucker เล็งเห็นถึงเมื่อแรกประกาศเกียรติคุณระยะ
กลับไปที่คำถามสุดท้ายที่เฉพาะเจาะจง:
วิธีการเฉพาะในการทำให้เชื่องความซับซ้อนโดยไม่ตั้งใจสามารถพบได้ในแหล่งข้อมูลต่อไปนี้
การปฏิบัติตามหลักการของการเขียนโปรแกรม Unix จะช่วยให้คุณสร้างโปรแกรมแบบแยกส่วนที่ทำงานได้ดีและมีความทนทานด้วยอินเตอร์เฟสทั่วไป รูปแบบการออกแบบต่อไปนี้จะช่วยคุณสร้างอัลกอริทึมที่ซับซ้อนซึ่งไม่ซับซ้อนเกินความจำเป็น การทำตามคำแนะนำในสไตล์จะทำให้แน่ใจได้ว่าโค้ดของคุณนั้นสามารถอ่านได้ดูแลรักษาและเหมาะสมที่สุดสำหรับภาษาที่เขียนโค้ดของคุณ ผู้เชี่ยวชาญจะทำให้หลักการหลายอย่างที่พบในแหล่งข้อมูลเหล่านี้อยู่ภายในและสามารถรวมเข้าด้วยกันอย่างราบรื่น