เป็นหัวข้อที่น่าสนใจมากครับ
ผมย้ายมาหมวด Talk นะครับ เนื่องจากดูแล้วจะเป็นลักษณะของนโยบายและทิศทางในการบริหารของแต่ละองค์กรและแต่ละหน่วยงานในองค์กร
การที่หน่วยงาน IT ไม่นิยมสร้างเป็น Template ให้ผู้ใช้งานใช้ความน่าจะเป็นก็คือ อาจจะมี Template ที่หลากหลายสำหรับองค์กรขนาดใหญ่ นั่นหมายถึงว่าจำนวนไฟล์ Template จะมีปริมาณมหาศาลที่ต้องคอยดูแลและ Update ให้ตรงกับความต้องการของผู้ใช้งานในแต่ละที่แต่ละหน่วยงานอยู่เสมอ ซึ่งหากกำลังพลไม่พร้อมที่จะทำงานลักษณะนี้ย่อมจะมีความเสี่ยงที่จะถูกมองว่าไร้ประสิทธิภาพ
เมื่อถึงระยะเวลาหนึ่งที่มี Template ครอบคลุมงานที่จำเป็นต้องใช้ Template แล้ว งานส่วนใหญ่ของ IT จะกลายเป็นการ Maintain แทนการพัฒนา ซึ่งงาน Maintain ให้ Template สามารถใช้งานได้ไม่ติดขัด ผู้บริหารหน่วยงาน ผู้บริหารองค์กรมองว่าเป็นงานที่มีมูลค่าต่ำกว่าการ Maintain ระบบขนาดใหญ่ที่ใช้ร่วมกันทั้งองค์กร ต่างจากการรวบรวม Requirement แล้วสร้างเป็นโปรแกรมขนาดใหญ่ให้ผู้ใช้งานใช้ร่วมกันทั้งองค์กรมักจะมองว่ามีคุณค่า ยิ่งใหญ่ เป็นระบบ และมีความยั่งยืนมากกว่าจึงให้ความสำคัญมากกว่า การนำเสนอต่อผู้บริหารระดับสูง การของบประมาณ ขอกำลังพลในการทำ Project ทำได้ง่าย
ในการแก้ปัญหาด้วย Excel หรือเขียนเป็นระบบในมุมมองของหน่วยงานที่ผมสังกัดปกติจะพิจาณาการใช้งานหลายหน่วยงานหรือเป็นการใช้งานร่วมกันทั้งองค์กรหรือไม่ เชื่อมต่อกับระบบอื่น ๆ หรือระบบหลักขององค์กรแบบ Real time แบบ Online เป็นงานที่ต้องใช้ร่วมกับหน่วยงานที่อยู่ต่างประเทศหรือไม่ เป็นต้นครับ
การพัฒนาโปรแกรมด้วย Excel ทำได้เร็วและประหยัดกว่าการเขียนโปรแกรมขึ้นมาใหม่ทั้งหมดแน่นอนครับ เพราะเป็นการเขียนแบบต่อยอด ไม่ใช่ตั้งต้นเขียนใหม่ แต่จะต้องจัดการเรื่อง Version ที่ใช้งานให้ดี ปกติผมจะวางไว้ที่ Server แล้วให้ผู้ใช้งานดาวน์โหลดไปใช้
ปัญหาเรื่องความปลอดภัยก็จะมีเกี่ยวกับความลับของข้อมูลที่อาจจะแพร่ออกไปได้ง่าย เนื่องจากสามารถที่จะส่งผ่านอีเมลหรือ Copy ใส่ Thumb Drive ไปได้ กรณีการป้องกันใน Excel สามาถปลด Lock ได้ทั้งที่เป็นการ Lock Sheet และ Lock ที่ VBA Project ครับ แต่หาก Lock ตอนเปิดไฟล์จะค่อนข้างปลอดภัย
ระบบงานที่ผมพัฒนาโดยส่วนใหญ่แล้วจะเป็นการจัดการหรือแปลงข้อมูลเพื่อนำเข้าระบบหลักของกิจการพร้อม ๆ กันเป็นจำนวนมาก เช่นนำเข้าระบบ Data Warehouse, SAP, ระบบการการตรวจสอบและแยกแยะข้อมูลในปริมาณมหาศาลเช่นตรวจสอบ Vat, ระบบการทำหมายเหตุประกอบงบการเงินซึ่งเป็นระบบใหญ่มีความยุ่งยากซับซ้อนสูง สามารถดูเป็นภาพรวมกลุ่มธุรกิจ ภาพย่อยรายบริษัทได้ ที่กล่าวมานี้เป็นเพียงบางส่วนโดยผมเขียนในส่วนติดต่อผู้ใช้ (ใช้ Excel เป็น User Interface) เพียงคนเดียว
ปัญหาที่ผ่านล่ามตลอดมา (ปัญหาที่ผู้ใช้ไม่ได้พูดกับผมโดยตรง) คือ ผู้ใช้งานไม่สามารถแก้ไขปรับปรุงโปรแกรมที่ผมเขียนได้เลย หากจะปรับปรุงเพิ่มเติมต้องให้ผมเป็นผู้แก้ไขจึงเกิดความไม่คล่องตัว
ในมุมมองของผมคิดว่าผู้ที่มีปัญหานี้ต้องกลับไปดู Requirement เพราะผมเขียนตาม Requirement ผมมีหน้าที่เขียนโปรแกรมให้ตรงกับความต้องการและมีความเสถียรสูง มันคือข้อเด่นไม่ใช่ข้อด้อย และมันกลายเป็นข้อด้อยไปได้อย่างไร
ส่วนปัญหาว่าต้องคอยแก้ไขโปรแกรมบ่อย ๆ หลังจากใช้งานไปสักระยะเนื่องจากทำงานผิดพลาดหรือไม่ เท่าที่ผ่านมาผมแก้โปรแกรมเนื่องจากปัญหานี้น้อยครั้งมาก ที่พบบ่อยคือประกาศตัวแปรไว้เป็น Integer แล้วขนาดข้อมูลมีปริมาณมากกว่านั้นก็เลย Error หรือสร้างตัวแปร Array เผื่อไว้ไม่พอกับปริมาณข้อมูล ส่วนความผิดพลาดลักษณะอื่นแทบจะนับครั้งได้ ส่วนใหญ่จะเจอความบกพร่องและแก้ไขให้หมดไปในขั้นตอนของการ UAT สามารถกล่าวได้ว่าส่วนใหญ่ที่แก้คือ Requirement ที่แตกต่างจากเดิมหรือเพิ่มขึ้นจากเดิมไม่ใช่เพราะความผิดพลาดของโปรแกรมครับ
ความเห็นส่วนตัวในการทำไฟล์โปรแกรมเล็ก ๆ กับการทำระบบขนาดใหญ่ว่าอย่างไหนสำคัญกว่ากัน ผมให้ความสำคัญไม่ต่างกัน ผมอาจจะลำเอียงเนื่องจากผมเขียนไฟล์จำนวนมาก ผมมีมุมมองว่าสำหรับโปรแกรมขนาดเล็กที่ใช้เพื่อจัดการความถูกต้องแม่นยำของข้อมุล แปลงข้อมูล นำเข้าข้อมูล การรายงานผล มีความสำคัญสูงมาก หากนำเข้าข้อมูลไม่ทัน หรือนำเข้าได้ทันแต่ผิดพลาด ข้อมูลเหล่านั้นไม่สามารถนำไปใช้งานได้ หากผิดพลาดตั้งแต่ต้นทาง โปรแกรมหลักขององค์กรจะแสดงข้อมูลที่ถูกต้องขึ้นมาได้อยางไร หรือนำข้อมูลมาทำรายงานผิด ไม่ทันเวลา สามารถที่จะนำข้อมูลนั้นไปใช้ในการบริหารจัดการได้อย่างไร