วันจันทร์, กุมภาพันธ์ 08, 2553

Cash Study โปรแกรม ERP: HDD มาก่อน TDD

HDD ไม่ใช่ Hard disk นะครับ แต่เป็น Help Driven Development (ผมตั้งขึ้นมาส่วนตัว) ก่อนหน้านี้เราฮิตเรื่อง Test Driven Development กันมาก ซึ่งผมเห็นด้วยเป็นอย่างยิ่ง แม้ว่าตอนทำงานจริงๆ จะเอามาใช้ได้แค่นิดหน่อย แต่ตอนที่ใช้อยู่จะมีความสุขมาก โดยเฉพาะตอนที่เจอ bug ที่คาดไม่ถึง

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

ทางออก นอกจาก SA จะเขียนเอกสารสำหรับสือสารกับผู้ใช้แล้ว ตัว Programmer เองควรเข้ามาช่วยเขียน Help ด้วย การเขียน Help ควรเริ่มก่อนเขียนโปรแกรม หรือเขียน test เป็นการเพิ่มความเข้าใจในตัวโปรแกรมให้มากขึ้น เมื่อเวลาผ่านไปหากต้องแก้ไขโปรแกรม ทั้ง Programmer  SA และ Tester ก็จะเข้ามาช่วยกันเพิ่มเติมให้ Help สมบูรณ์มากขึ้น

หากเอา Help มาเขียนหลังสุด เราต้องใช้ความพยายามอย่างมากในการนึก ในการอ่านเอกสาร หรือการอ่าน code เพื่อสรุปว่าโปรแกรมของเราทำงานอย่างไร และมีข้อยกเว้นอยู่ตรงไหนบ้าง อย่าลืมว่าโปรแกรม ERP มันจะโตขึ้นเรื่อยๆ ถ้าไม่รีบเขียนแต่ต้นๆ ก็จะเหมือนการทำ Test สุดท้ายจะทำไม่ได้ดี

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

เมื่อผู้ใช้คุ้นเคยกับ Help จะทำให้ SA, Developer, Tester, User ทำงานบนเอกสารเดียวกัน พูดเป็นภาษาเดียวกัน และเข้าใจกันและกัน มากขึ้น

Test Driven Development: By Example  The RSpec Book: Behaviour Driven Development with Rspec, Cucumber, and Friends
blog comments powered by Disqus