สัปดาห์ที่ผ่านมา
ทำการออกแบบ review และ พัฒนา API ของระบบงาน
พบว่าสิ่งที่ทำออกมานั้นมีปัญหาหลายอย่าง
ไม่ว่าจะเป็นการพัฒนาที่ยาก
ไม่ว่าจะเป็นการใช้งานที่ยากอีก
ดังนั้นจึงสรุปต้นเหตุที่ก่อให้เกิดปัญหาขึ้นมา
ปัญหาแรกคือ รีบทำจนเกินไป
เป็นปัญหาหลักของการพัฒนาระบบงานเลย
นั่นคือ เวลามีน้อยหรือมีอยู่อย่างจำกัด
ดังนั้นนั้นเราต้องรีบออกแบบ ทำ และ deploy
คิดว่าทำ ๆ ให้เสร็จไปก่อนแล้วจะกลับมาแก้ไขทีหลัง
หรือใช้คำพูดที่ดูดีว่าทำแบบ iterative และ incremental ไป !!
แต่ผลที่ออกมากลับตรงข้าม
ทำเสร็จแล้วก็เสร็จไปไม่ตามกลับมาแก้ไขให้ดีขึ้น
ทำแบบปะผุไปเรื่อย ๆ
บ่อยครั้งทำไปทั้ง ๆ ที่ยังไม่รู้หรือไม่เข้าใจ requirement อีกด้วย
แก้ไข flow หนึ่ง ดันไปกระทบ flow อื่นอีก
ปัญหาต่อมาคือ ออกแบบโดยไม่สนใจคนใช้งานเลย
ผลที่ตามมาคือ ผู้ใช้งานลำบอกต่อการใช้งาน API ที่ออกแบบอย่างมาก
พอผู้ใช้งานแจ้งมา
ก็ดันบอกว่า API ใช้งานง่ายจะตาย ไม่เข้าใจได้อย่างไร !!
ดังนั้นควรต้องรับ feedback มาปรับปรุงหรือไม่
หรือต้องย้อนกลับไปตั้งแต่การออกแบบก่อนไหม
ทั้งเรื่องของรูปแบบ request/response ที่มีโครงสร้างที่ดี
อีกปัญหาคือ พยายามเพิ่ม feature เข้ามาเรื่อย ๆ
ก็ให้เกิดความซับซ้อน
ยกตัวอย่างเช่น API ใช้ endpoint เดียวกัน
สำหรับทำงานหลาย ๆ อย่างมากมาย
จะดีกว่าไหม ถ้าทำการแยกออกมาเป็นคนละ endpoint
แต่ด้วยปัญหาข้อแรก จึงก่อให้เกิดปัญหานี้ตามมา !!