สรุปปัญหาจากการออกแบบ API

สัปดาห์ที่ผ่านมา ทำการออกแบบ review และ พัฒนา API ของระบบงาน พบว่าสิ่งที่ทำออกมานั้นมีปัญหาหลายอย่าง ไม่ว่าจะเป็นการพัฒนาที่ยาก ไม่ว่าจะเป็นการใช้งานที่ยากอีก ดังนั้นจึงสรุปต้นเหตุที่ก่อให้เกิดปัญหาขึ้นมา

ปัญหาแรกคือ รีบทำจนเกินไป เป็นปัญหาหลักของการพัฒนาระบบงานเลย นั่นคือ เวลามีน้อยหรือมีอยู่อย่างจำกัด ดังนั้นนั้นเราต้องรีบออกแบบ ทำ และ deploy คิดว่าทำ ๆ ให้เสร็จไปก่อนแล้วจะกลับมาแก้ไขทีหลัง หรือใช้คำพูดที่ดูดีว่าทำแบบ iterative และ incremental ไป !!

แต่ผลที่ออกมากลับตรงข้าม ทำเสร็จแล้วก็เสร็จไปไม่ตามกลับมาแก้ไขให้ดีขึ้น ทำแบบปะผุไปเรื่อย ๆ บ่อยครั้งทำไปทั้ง ๆ ที่ยังไม่รู้หรือไม่เข้าใจ requirement อีกด้วยแก้ไข flow หนึ่ง ดันไปกระทบ flow อื่นอีก

ปัญหาต่อมาคือ ออกแบบโดยไม่สนใจคนใช้งานเลย ผลที่ตามมาคือ ผู้ใช้งานลำบอกต่อการใช้งาน API ที่ออกแบบอย่างมาก พอผู้ใช้งานแจ้งมา ก็ดันบอกว่า API ใช้งานง่ายจะตาย ไม่เข้าใจได้อย่างไร !!

ดังนั้นควรต้องรับ feedback มาปรับปรุงหรือไม่ หรือต้องย้อนกลับไปตั้งแต่การออกแบบก่อนไหม ทั้งเรื่องของรูปแบบ request/response ที่มีโครงสร้างที่ดี

อีกปัญหาคือ พยายามเพิ่ม feature เข้ามาเรื่อย ๆ ก็ให้เกิดความซับซ้อน ยกตัวอย่างเช่น API ใช้ endpoint เดียวกัน สำหรับทำงานหลาย ๆ อย่างมากมาย จะดีกว่าไหม ถ้าทำการแยกออกมาเป็นคนละ endpoint แต่ด้วยปัญหาข้อแรก จึงก่อให้เกิดปัญหานี้ตามมา !!

0
188