เรื่องเล่าของ JavaIQE
เรื่องนี้เป็นเรื่องสมัยเรียนอยู่ ป.ตรี ช่วงประมาณ ปี 2
ในวิชา Data Structure จะมีการทดสอบเขียนโปรแกรมอยู่เกือบทุกสัปดาห์
โดยในการทดสอบนั้น อาจารย์สมชาย ประสิทธิ์จูตระกูลได้พัฒนาโปรแกรมง่ายๆ ขึ้นมาตัวหนึ่งซึ่งตอนนั้นยังไม่มีชื่อ แต่ฟังก์ชั่นมันคือ
- ให้นิสิตทำการ Login เข้าไปโดยใช้รหัสและ password ของจุฬาฯ (Centralized Authentication เป็นอะไรที่เหนือมากในช่วงนั้น เพราะไม่มีใครต่อได้ง่ายๆ)
- เมื่อถึงเวลาทำข้อสอบ ระบบจะไปเปิดหน้าเว็บข้อสอบมา
- เวลาจะเริ่มนับถอยหลัง
- เมื่อทำเสร็จแล้ว ให้ upload ไฟล์ที่ทำ
- แต่ถ้าหมดเวลาก็จะเกิดคำในตำนานขึ้นมาว่า
หมดเวลาแล้ว สวัสดี
ในช่วงนั้นการทดสอบการเขียนโปรแกรมในห้องแล็ป นอกเหนือจากโปรแกรมนั้น ก็จะมี Notepad และ JavaHelp สำหรับดู Library Reference ไม่มีอะไรมากกว่านั้น
การโกงของข้าพเจ้า
หลังจากที่ใช้ Notepad ทำโจทย์ ไปสักระยะ ส่วนตัวก็เริ่มรู้สึกรำคาญ Notepad ทั้งเรื่องที่มันไม่ Syntax Highlight หรือ ต้องไปรัน Java ใน Command Prompt เอง ในต้องนั้นเลยทำการโกงตาชั่งเล็กน้อย
ด้วยการไปแอบลงโปรแกรมชื่อ Editplus ลงไปในเครื่องในห้องแล็ป
ทีนี้เนื่องจากว่าในการทำ Quiz มัน Fix ตำแหน่งที่นั่ง เราก็ลงเครื่องที่ใช้ทดสอบไปกับอีก 2–3 เครื่อง …
ทีนี้ในการ ทำ Quiz ในรอบหลัง ชีวิตก็ดีขึ้น เพราะ Editplus มี Syntax Checker และ execute java ได้ผ่านตัวมันเองทั้งหมด กด shortcut ทีเดียว ก็วิ่งแล้ว
ปะทะกับอ. สมชาย
ในวันที่ทำ Quiz วันหนึ่ง ขณะที่ข้าพเจ้าก็ทำ Quiz กันไปตามปกติ อ. สมชาย ที่เดินดูความเรียบร้อยอยู่ คงสังเกตเห็นตัวโปรแกรมที่เปิดอยู่ เลยเดินเข้ามาทักทาย
(จั่บ) นี่โปรแกรมชื่อ… Editplus เหรอ
ไอ้เราก็เห็นอาจารย์มาทัก ก็แอบซีดสิครับ ก็ได้แต่บอกว่า ใช่ครับ..
อาจารย์นิ่งไปสักครู่… คิดไปสักพัก…
เวลา 5 วินาที ที่เงียบๆยาวนานเหมือน 10 นาที…
แล้วอาจารย์ก็พูดขึ้นมาว่า
(จั่บ) น่าสนใจดีนี่ ดีๆๆ
แล้วอาจารย์ก็เดินจากไป เดินไปเดินมาต่อ
เราก็ถอนหายใจรอดไป แล้วก็ปั่น Quiz ต่อ
การท้าทายกลับของอ. สมชาย
สองสัปดาห์ถัดมา ก่อนจะ Quiz อาจารย์สมชาย ก็พูดเป็นนัยๆ ว่า
อืมม วันนี้โปรแกรมมี Update นิดหน่อยนะ
เมื่อเราเข้าที่ทำ Quiz
ก็ร้องจ้ากขึ้นมาทันที…
โปรแกรมใหม่มี IDE แล้วครับ!!!
นอกจากนี้ยังสามารถ Execute Code Java ได้ โดยไม่ต้องไป Command Prompt
และโปรแกรมก็เริ่มมีชื่อ ขึ้นมาว่า
Java IQE (Integrated Quiz Environment)
แน่นอนว่า การมีมาของเรื่องนี้ทำให้ ไม่ต้องไปเสียเวลาใช้ Editplus ต่อไป
แต่ทีเด็ดกว่านั้น
อาจารย์เริ่มเพิ่มความเข้มมากขึ้น ในอัพเดทถัดๆ ไป เช่น
- ในระหว่างที่รัน Mode Quiz ไม่สามารถเรียกโปรแกรมข้างนอกได้
- ในระหว่างที่รัน Mode Quiz จะไม่สามารถใช้ Ctrl + Alt + Delete ได้
โปรแกรมตัวนี้ถูกพัฒนาต่อเรื่อยๆ จนกระทั่งท้ายที่สุด ที่ส่วนตัวยังตามอยู่ โปรแกรมตัวนี้ได้ใช้ชื่อว่า
JLab
จะห้ามหรือท้าทาย
ในช่วงเวลาที่ ตัวอาจารย์เองเจอว่าผมใช้ Editplus เขียนโค้ด อาจารย์มีทางเลือกอยู่ 2 อย่าง
- ห้ามหรือจับผมฟาวล์
- ปล่อยไปด้วย Benefit of the doubt แล้วแก้ไขปัญหาของตัวเอง
ส่วนตัวไม่ทราบว่าอาจารย์ใช้เรื่องนี้ในการตัดสินใจหรือไม่ แต่ส่วนตัวแอบรู้สึกดีที่อาจารย์ท่านเลือกทางที่ 2 ทำให้เราได้เห็น การเติบโตของโปรแกรมเมื่อแก้ปัญหาของผู้ใช้ ซึ่งในที่นี้คือผู้เรียนอย่างแท้จริง
Complexion of Software Engineering
และถ้าสังเกตอีกเรื่อง อาจารย์ยังเพิ่ม Feature ไปเรื่อยๆ เป็นรอบสั้นๆ แต่ว่าตัวโปรแกรมแรกเริ่ม ก็สามารถใช้งานได้แล้ว
ใครจะเชื่อแนวคิดของ Sprint, Agile, Iteration หรือ Minimum Viable Product มาก็ไม่น่าจะแปลกใจสักเท่าไหร่
แต่อยากบอกว่า เหตุการณ์นี้เกิดขึ้นเมื่อปี 2543
Agile Manifesto เผยแพร่เมื่อปี 2544
MVP มาจากหนังสือ ของ Erics Ries เมื่อปี 2554
และ Software JLab สามารถ update ตัวเองได้ จากการ control ข้างหลังของอาจารย์ ถ้าต้องการ update เครื่องในห้องแล็ปทั้งหมด
หรือง่ายๆ ว่า มี CI/CD ไว้เรียบร้อยแล้ว
เรื่องนี้ไม่ได้จะ Bluff อะไรเกี่ยวกับกระบวนการนะครับ ส่วนตัวก็ชื่นชอบกระบวนการที่ว่ามาทั้งหมด
แต่มันน่าตื่นเต้นที่อยู่ๆ เมื่อย้อนกลับไปมองดู เราเห็น Practice นี้มันนานนมมาก และเป็นรูปธรรมที่สุดตัวหนึ่ง
สุดท้าย อันนี้ส่วนตัวก็ลองเดาแนวทางของอาจารย์ท่านดู น่าจะมีหลักอยู่ 3เรื่อง
- รับความท้าทายใหม่
- ทำเพื่อประโยชน์ของผู้ใช้
- พัฒนาอย่างต่อเนื่อง
หลังจากใช้จะใช้ Framework อะไรก็สุดแท้แต่
ขอบคุณบทเรียนจากอาจารย์สมชาย แม้ว่าอาจารย์จะตั้งใจหรือไม่ตั้งใจให้ก็ตาม -/\-