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