Architectural Decision Records (ADRs) คืออะไร?

Share
Architectural Decision Records (ADRs) คืออะไร?
Architectural Decision Records (ADRs)

Architectural Decision Records หรือ ADRs คือเอกสารสั้น ๆ ที่ใช้บันทึกการตัดสินใจด้านสถาปัตยกรรมของระบบ (Software Architecture) พร้อมเหตุผลและบริบทของการตัดสินใจนั้น เพื่อให้ทีมสามารถเข้าใจว่า

ทำไมเราถึงตัดสินใจเลือกทำระบบมาแบบนี้

และเพื่อให้ข้อแลกเปลี่ยน (trade-offs) ของการตัดสินใจเหล่านั้นสามารถเข้าถึงและเข้าใจได้ง่าย

การตัดสินใจเหล่านั้นผลกระทบโดยตรงต่อการพัฒนา การดูแลรักษา และความสามารถในการขยายระบบในหลาย ๆ กรณี เหตุผลเบื้องหลังการตัดสินใจเหล่านี้มักสูญหายไปตามกาลเวลา ทำให้เกิดความยากลำบากในการทำความเข้าใจ การปรับแก้ไข และการต่อยอดระบบในอนาคต

โครงสร้าง ADR แบบพื้นฐาน

ADR หนึ่งฉบับมักมีโครงสร้างประมาณนี้:

  1. Title – ชื่อการตัดสินใจ
  2. Status – สถานะ (Proposed / Accepted / Deprecated ฯลฯ)
  3. Context – ปัญหาหรือสถานการณ์ที่ทำให้ต้องตัดสินใจ
  4. Decision – สิ่งที่ตัดสินใจเลือก
  5. Consequences – ผลกระทบ ข้อดี ข้อเสีย

เมื่อไหร่ถึงเขียน ADR?

ควรเขียน ADR เมื่อการตัดสินใจนั้นเป็นการตัดสินใจที่ แก้ไขได้ยากในภายหลัง เพราะทุกการเลือกมี trade-off และเมื่อตัดสินใจแล้วต้องเดินหน้าต่อ ไม่สามารถเปลี่ยนไปมาได้ง่าย ตัวอย่างเช่น การเลือกภาษาโปรแกรม หรือการเปลี่ยนชนิดของฐานข้อมูล ซึ่งเป็นการตัดสินใจเชิงสถาปัตยกรรมที่ส่งผลระยะยาวต่อระบบ

ADR มีประโยชน์มากต่อการทำงานร่วมกับ AI

แน่นอนว่าในยุคนี้จะไม่พูดถึง AI ไม่ได้ การที่เราเขียน ADR นั้นจะช่วยให้ AI นั้นเข้าใจบริบท เหตุผล และข้อจำกัดของสถาปัตยกรรมระบบเราได้ชัดเจนขึ้น ไม่ต้องเดาเอง ทำให้คำแนะนำ การวิเคราะห์ และการช่วยตัดสินใจทางเทคนิคมีความสอดคล้องกับระบบจริงมากขึ้นอีกด้วย

จริง ๆ เวลาพูดถึง ADR ผมมักจะโยงถึงเรื่องของการเขียนด้วยเช่นกัน ผมเขียนอธิบายไว้ในบทความด้านล่างนี้

“การเขียน” วัฒนธรรมหนึ่งที่ทุกองค์กรต้องมี
การเขียนนี่แหละ จะเป็นสิ่งที่บอกความแตกต่างระหว่างองค์กร แม้กระทั่งความแตกต่างระหว่างคนทำงานด้วยกันเอง

เพราะว่าถ้าเราไม่เขียน เราไม่จารึกสิ่งนั้นไว้เป็นประวัติศาสตร์ของเรา ไม่นานเราก็จะลืม และสิ่งนั้นจะค่อย ๆ หายไปจากโลกนี้

สถาปัตยกรรมที่ดีไม่ใช่แค่โค้ดที่เขียนในวันนี้ แต่คือเหตุผลที่เรายังยืนหยัดกับมันได้ในวันข้างหน้า — และ ADR คือความทรงจำของสถาปัตยกรรมนั้น

ใครยังไม่ได้เริ่มเขียน ADR วันนี้เริ่มเลยนะ 😉

Read more

Distributed Decision Making

Distributed Decision Making

ในองค์กรใหญ่ ๆ อะไร ๆ ก็ช้าลงไปหมด และสิ่งที่ช้าที่สุดคือการตัดสินใจนี่แหละครับ การตัดสินใจกระจายอยู่ในทุก ๆ อณูขององค์กร องค์กรที่มีบรรยากาศสบาย ๆ ทุกคนรู้สึกปลอดภัย ใคร ๆ ก็จะกล้าตัดสินใจและกล้าออกความเห็น แต่พอองค์กรใหญ่

By Chokchai Phatharamalai
Risk Management: The Hard Test

Risk Management: The Hard Test

ท้ายหนังสือ Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency ของ Tom DeMarco ได้ให้เทคนิคใหม่ในการจัดการความเสี่ยงกับผม ทอมสอนว่าในการทำงานยุคปัจจุบัน งานมีความเสี่ยงกระจายอยู่เต็มไปหมด ซึ่งในความเสี่ยงนั้น เรามีโอกาสโชคดีและมีโอกาสโชคร้าย การจัดการความเสี่ยงเป็นสิ

By Chokchai Phatharamalai
วิธีปรับเวลาการนอน

วิธีปรับเวลาการนอน

ผมเดินทางกลับมาจาก Conference ของ Berkeley ที่ซานฟรานซิสโก เครื่องลงที่สนามบินสุวรรณภูมิประมาณ 22:30 น. กว่าจะถึงบ้านก็เกือบเที่ยงคืน ยังดีที่ขากลับไม่เหนื่อยเท่าขาไป เพราะลองซื้อหมอนรองคอจาก Duty Free ที่ซานฟรานซิสโกมาใช้ดู หมอนเป็นลายการ์ตูน มีรูปสะพาน

By Chokchai Phatharamalai
เร็วแค่ไหนก็ไร้ค่า ถ้าไปผิดทาง

เร็วแค่ไหนก็ไร้ค่า ถ้าไปผิดทาง

อีกบทเรียนที่ผมได้จากหนังสือ Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency ของ Tom DeMarco คือ ทำไมองค์กรใหญ่ ๆ ถึงยึดมั่นกับ Efficiency กันนัก Efficiency คืออะไร? Efficiency แปลว่า "ประสิทธิภาพ" ยกตัวอย่างเช่น

By Chokchai Phatharamalai