Architectural Design เอกสารที่คุ้มค่าแก่การลงทุน

You Should Need A Document That Can Be Useful For Long Time. Start With ‘Product’ Level

Piyorot
Agile Development in Thai
2 min readMar 30, 2015

--

หนึ่งในเจตนารมณ์สำคัญของปรัชญาแบบ Agile Software Development คือ

Working software over comprehensive document

แปลความหมายได้ว่า “เราควรให้ความสำคัญกับซอฟต์แวร์ที่ทำงานได้มากกว่าเอกสารที่ครบถ้วน” แปลในรายละเอียดได้ว่า Agile Software Development ไม่ได้บอกให้ยกเลิกการทำเอกสาร เพียงแต่ว่าเราควรให้ความสำคัญกับมันในระดับที่เหมาะสม ไม่ใช่ตะบี้ตะบันเขียนมันแต่เอกสาร สามเดือนผ่านไปไม่ได้เขียนโค๊ดซักกะบรรทัด

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

ส่วนตัวผมค่อนข้างจะเห็นความสำคัญของการเขียนเอกสารในระดับ Product นะครับ ยิ่งอยู่สูง ผมยิ่งมองว่ามีประโยชน์ใช้อ้างอิงได้ในระยะยาว ตัวอย่างที่เห็นได้ชัดคือเอกสารที่เรียกว่า Architectural Design Specification ซึ่งเป็นเอกสารที่ใช้อธิบายโครงสร้างทางสถาปัตยกรรมของระบบและโปรดักส์โดยรวม ที่คิดว่ามันคุ้มค่าที่จะทำเพราะว่าโครงสร้างทางสถาปัตยกรรมนั้นไม่ควรเปลี่ยนบ่อย หรือถึงจะเปลี่ยนก็ไม่ควรจะเปลี่ยนแบบยกกระบิชนิดโละของเก่าทิ้ง ข้อมูลที่อยู่ในเอกสารฉบับนี้จึงน่าจะใช้เป็นที่อ้างอิงได้ดีในการทำงานในระดับที่ย่อยลงมาอย่างโปรเจกต์หรือสปริ้นท์ ตัวอย่างการเขียนและใช้งาน (แบบคร่าวๆสุดๆ)

เมื่อมี User Story ที่บอกว่า “Add user roles to sign up screen” สิ่งที่ Architectural Design Specification บอกเราได้คือการทำ User Story นี้จะส่งผลกระทบต่อโครงสร้างและส่วนประกอบอะไรบ้างในระบบเรา แบบนี้

จากที่เคยคิดว่างานนี้คือการทำงานกับแค่ UI มันก็ไม่ใช่ล่ะ ไหนจะเรื่อง Daemon ที่ใช้ Sync Data ระหว่าง DB Servers ยังมี Import / Export / Archive ข้อมูลผู้ใช้และมี Report ที่ต้องแก้อีกหลายโมดูล … ถ้าไม่มีเอกสารอ้างอิง งานนี้หลายคนคงคิดว่าแค่ 3 แต้ม เมื่อมีเอกสารอ้างอิงแล้ว งานนี้หลายคนบอกว่ามันคือ Epic ไปย่อยให้เป็น User Story ที่เล็กกว่านี้ก่อนนะคุณ Product Owner

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

The Future Has Arrived — It’s Just Not Evenly Distributed Yet, William Gibson

อนาคตอยู่ตรงนี้แล้ว เรามีหน้าที่ต้องถ่ายทอดมันออกไปให้คนอื่นได้สัมผัสสิ่งดีๆร่วมกันครับ

--

--

Piyorot
Agile Development in Thai

A member of Mutrack and Inthentic. I lead, learn, and build with vision, love and care. https://piyorot.com