top of page
ค้นหา
รูปภาพนักเขียนSathit Jittanupat

A Hard Day with the Legacy Code

อัปเดตเมื่อ 1 มี.ค. 2567


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

ไม่นานมานี้มีผู้ใช้รายหนึ่งได้ตั้งคำถามว่า "โปรแกรมของเราแสดงกราฟได้ไหม?"


เป็นเรื่องที่ผมไม่เคยคิดมาก่อน โลกนี้มี Excel, Sheets ไปจนถึง Looker , Tableau และอีกมากมายที่ใช้ทำกราฟได้ดีอยู่แล้ว ก็แค่หาทางส่งข้อมูลให้โปรแกรมเหล่านั้นได้ ทำไมต้องไปทำอะไรซ้ำซ้อนในโปรแกรมตัวเองอีก​ แต่ผู้ใช้กลับไม่คิดเช่นนั้น อาจเพราะเห็นว่าโปรแกรมบัญชีรุ่นใหม่ต่างก็มีหน้าจอแสดงกราฟจนเป็นเรื่องที่ควรจะทำได้เหมือนกัน


ถึงแม้ว่าโปรแกรมของเราจะเตรียมส่วนเชื่อมต่อข้อมูลนอกจาก Excel ก็มี Google Sheets ที่สามารถใช้งานร่วมกับ Looker Studio เอาไว้แล้ว แต่ก็ยังเป็นความรู้สึกบางอย่างที่เรียกว่าไม่ใช่ seamless หรือดูได้ทันที ต้องสั่ง sync data ออกไปก่อน จึงได้ข้อมูลล่าสุด


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


ในวาระพิเศษการได้ไปไหว้พระ 9 วัดบ้างก็ดี แต่ถ้าต้องเดินทางอย่างนั้นทุกวันอาจไม่ใช่ เหมือนกับมี Dashboard ใน Looker Studio ก็ดี แต่ก็ควรมีกราฟง่าย ๆ ในโปรแกรม


"ควรมีกราฟง่าย ๆ ในโปรแกรมหรือไม่?"

ก่อนจะนำไปสู่การตอบคำถามของผู้ใช้ว่า "โปรแกรมแสดงกราฟได้ไหม?" ในใจผมคิดถึงทางเลือกของความเป็นไปได้ที่มากมาย ไม่ใช่ประเด็นทางเทคนิคอย่างเดียว แต่เป็นเรื่องของเหตุผลด้านอื่นด้วย

เจตนาที่ถามเรื่องนี้จริงจังแค่ไหน? มีคนอื่นที่คิดแบบนี้อีกไหม? เป็นสัญญาณบ่งชี้ว่าโปรแกรมล้าสมัยจริงหรือไม่?


จะเป็นอย่างไรหากตอบว่าโปรแกรมไม่มีกราฟ (เชื่อว่าไม่จำเป็นเพราะ Looker Studio เพียงพอแล้ว) 

จะต้องแลกกับอะไรบ้างหากพยายามพัฒนาโปรแกรมให้มีกราฟ (ความคุ้มค่าเมื่อต้องลงทุนคน เวลา ฯลฯ เพื่อทำสิ่งนี้ เป็นการโฟกัสไปกับเรื่องที่ไม่จำเป็นหรือไม่)


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


อีกความเห็นหนึ่ง ในเรื่องหลักการ หากต่อไปมีเรื่องความสามารถโปรแกรมโน้นนี้มาอีก จะกลายเป็นบ้าไล่ตามเก็บงานไม่มีวันจบหรือไม่


สำหรับผมมองว่าโปรแกรมอายุเกือบ 10 ปีนี้อยู่ในสถานะ Legacy Code แล้ว ถ้าไม่จำเป็นก็ไม่อยากลงทุนพัฒนาอะไรเพิ่ม นอกจากดูแลให้ใช้งานได้ตามปกติ (Maintainance state) เหมือนพนักงานที่รอเกษียณ ไม่ควรส่งไปเรียนทักษะใหม่


ถ้าเทียบกับโปรแกรม ERP รุ่นเก่าทั้งหลายก็จะยังคงมีอายุใช้งานต่อไปอีกประมาณ 10–20 ปีเป็นอย่างน้อย รอให้คนรุ่นอายุ 50 ที่อยู่ในระดับอาวุโสส่วนใหญ่เกษียณกันหมด


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


ทุกอย่างเป็นต้นทุน จังหวะเวลาที่ไม่เหมาะสมก็เป็นต้นทุน ล้ำสมัยเกินไปไม่ได้ ล้าหลังเกินไปไม่ควร หากไม่สามารถเต้นรำให้เข้าจังหวะของความเปลี่ยนแปลงย่อมมีราคาที่ต้องจ่าย


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

 

เบื้องต้นลองทดสอบ Chart.js แบบคร่าว ๆ หากใช้ได้ดีอาจเอาจะมาเล่าให้ฟังต่อไป



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


  • กราฟเพื่อมอนิเตอร์ (ง่ายและเร็ว) ไม่เหมือนกราฟเพื่อวิเคราะห์เชิงลึก (มีมิติและยืดหยุ่น)

  • กราฟมอนิเตอร์ใช้ดูความปกติของปัจจุบัน

  • กราฟวิเคราะห์ใช้ดูอดีตเพื่อทำนายอนาคต

  • บางครั้งผู้ใช้ก็บอกไม่ได้ว่าต้องการดูกราฟเพื่ออะไร (อุ่นใจ)

  • บางครั้งผู้ใช้ต้องการใช้กราฟเพื่อพิสูจน์สมมติฐานอะไรบางอย่างของเขา (ค้นคว้า)

  • บางครั้งผู้ใช้ต้องการกราฟเพื่อติดตามวัดผลอะไรบางอย่างที่เขาสนใจ (เฝ้าดู) 

  • บางครั้ง(บางคนเท่านั้น) ที่มี Dashboard ของตัวเองที่ใช้เป็น Command Center

  • นโยบายปฏิบัติงานที่ไม่ชัดเจน มีผลทำให้ข้อมูลมีขยะ (noise) 

  • แต่ละคนแต่ละองค์กรมีขีดความสามารถการใช้ประโยชน์จากกราฟไม่เท่ากัน

  • คนที่ต้องการใช้ประโยชน์จากกราฟจริง ๆ มักจะไม่รอใช้จากโปรแกรม

  • การออกแบบกราฟที่ไม่ได้เป็นผู้ใช้เอง ต้องการ Story Telling ด้วย


อ้างอิง

ดู 5 ครั้ง0 ความคิดเห็น

โพสต์ล่าสุด

ดูทั้งหมด

Comments


Post: Blog2_Post
bottom of page