แนวโน้มที่นิยม Throwaway Code มากกว่าเอกสารออกแบบ
(softwaredoug.com)-
เรามักจินตนาการว่าการพัฒนาซอฟต์แวร์จะเป็นไปตามกระบวนการที่สะอาดและเป็นระเบียบ
- เขียนเอกสารออกแบบ แล้วค่อย ๆ ปล่อยการเปลี่ยนแปลงเล็ก ๆ ผ่าน PR เพื่อพัฒนาฟีเจอร์
- ประวัติ Git ดูสะอาดและเป็นระเบียบ
- แต่ความเป็นจริงไม่เป็นแบบนั้น
-
ความต่างระหว่างเอกสารออกแบบกับการลงมือทำจริง
- การนำเอกสารออกแบบไปทำตามแบบเป๊ะ ๆ เป็นภาพฝัน
- เมื่อเริ่มเขียนโค้ด เราก็มักต้องแก้เนื้อหาในเอกสารออกแบบ
- แผนงานไม่อาจอยู่รอดได้เมื่อปะทะกับความเป็นจริง
-
วิธีการออกแบบแบบใหม่: ดิ่งไปกับการเขียนโค้ด
- ใช้ draft PR เพื่อสร้างต้นแบบ
- รับฟีดแบ็กตั้งแต่เนิ่น ๆ แล้วปรับแนวทาง
- บันทึก draft PR ไว้เป็นเอกสารของไอเดียการออกแบบในอดีต
- เตรียมพร้อมที่จะทิ้ง draft PR นั้นทั้งหมด
- ค่อย ๆ แตกงานจาก draft PR ออกมาเป็น PR แบบเป็นขั้นตอน
- ทดสอบแต่ละ PR เป็นลำดับขั้นและเสริมความแข็งแรงให้ระบบ
-
ความสำคัญของความเป็นผู้ใหญ่
- ความสามารถในการทิ้งไอเดียที่เราเขียนโค้ดไปแล้วเป็นเรื่องสำคัญ
- สิ่งสำคัญไม่ใช่จำนวนบรรทัดโค้ด แต่คือการถ่ายทอดความรู้ในองค์กร
- จัดแนวความเข้าใจในประเด็นสำคัญตั้งแต่ต้น เพื่อไม่ให้งานต้นแบบสูญเปล่า
-
วิธีใช้ PR เป็นเอกสารประกอบ
- PR เป็นหนึ่งในรูปแบบเอกสารที่ดีที่สุดสำหรับนักพัฒนา
- PR คือหลักฐานทางประวัติศาสตร์ที่สะท้อนสภาพ ณ ช่วงเวลาหนึ่ง
- เอกสารออกแบบมักให้ข้อมูลที่ไม่ตรงกับความจริง
-
ความสำคัญของต้นแบบ
- ต้นแบบมีค่ามากกว่าเอกสารออกแบบ 1000 ฉบับ
- หากต้องการขับเคลื่อนการเปลี่ยนแปลง ต้องทำผ่านโค้ด ไม่ใช่เอกสาร
- องค์กรควรมองต้นแบบเป็นคำถาม ไม่ใช่คำตอบ
-
ประโยชน์ของเอกสารออกแบบ
- มีประโยชน์ต่อการจัดระเบียบและเก็บถาวรฟีดแบ็กจากผู้มีส่วนเกี่ยวข้องหลากหลายฝ่าย
- มีประโยชน์เมื่อไอเดียยังเป็นนามธรรมหรือเป็นแผนระยะยาวมากเกินไป
- มีประโยชน์เมื่อการถ่ายทอดไอเดียด้วยการเขียนมีประสิทธิภาพกว่าการลงมือโค้ด
- มีประโยชน์เมื่อองค์กรยังไม่มีวินัยพอจะทิ้งโซลูชันแรกได้
- ช่วยสร้างสภาพแวดล้อมที่พนักงานระดับจูเนียร์สามารถตั้งคำถามกับไอเดียของนักพัฒนาระดับซีเนียร์ได้อย่างปลอดภัย
-
การใช้งานเอกสารออกแบบอย่างผิดทาง
- ถูกใช้เพื่อทำให้กระบวนการช้าลงสำหรับนักพัฒนาที่มีประสบการณ์น้อยกว่า
- ถูกใช้เป็นเอกสารประกอบ แต่ก็ล้าสมัยอย่างรวดเร็ว
- พยายามแก้ทุกปัญหาด้านการออกแบบ แต่ปัญหาที่แท้จริงกลับถูกค้นพบระหว่างการเขียนโค้ด
-
หากทีมมีวินัยเพียงพอ การแฮ็กลงมือทำจะมีประสิทธิภาพกว่าการออกแบบมาก
- แนะนำให้องค์กรสร้างวินัยลักษณะนี้ขึ้นมา
- สุดท้ายแล้ว โค้ดทรงพลังกว่าคำพูด
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
การทำต้นแบบเป็นส่วนสำคัญของกระบวนการออกแบบ และจำเป็นต้องนิยามปัญหาและทำให้แนวทางแก้ไขชัดเจน
การเขียนมีประโยชน์ต่อการสำรวจปัญหา และมีประสบการณ์ที่คิดว่าเข้าใจปัญหาแล้ว แต่พอเขียนออกมากลับเกิดคำถามใหม่
เคยมีประสบการณ์ใช้วิธีแก้ชั่วคราวเพื่อให้โปรเจกต์เสร็จทันกำหนด
ปัญหาใหญ่ที่สุดของเอกสารออกแบบคือไม่มีใครอ่าน
ฟีดแบ็กต่อโค้ดกับต่อการออกแบบแตกต่างกันมาก
ถ้าหน้าที่งานคือการเขียนโค้ดจำนวนมากเพื่อดูว่าอะไรใช้ได้ผล GPT ก็อาจเข้ามาแทนที่ได้เร็วกว่าและถูกกว่า
แทบไม่มีใครจินตนาการว่าการพัฒนาซอฟต์แวร์จะดำเนินไปตามกระบวนการที่สะอาดและเป็นระเบียบ
เคยเห็นกรณีที่โค้ดถูกกองซ้อนกันเหมือนเกม Jenga จนไม่มีใครอยากแตะต้อง
ชอบกระบวนการที่ใช้เธรดคอมเมนต์ต่อเนื่องเพื่อบันทึกการตัดสินใจด้านการออกแบบ
กำลังครุ่นคิดกับแนวทางนี้ และในกรณีเลวร้ายที่สุดอาจเสียเวลาไปมาก