บุคลากรสายงานพัฒนาซอฟต์แวร์น่าจะมีใครบ้าง? ผมคิดว่าพวกเราน่าจะนึกถึง “โปรแกรมเมอร์” กับ “วิศวกรซอฟต์แวร์” เป็นอันดับแรก ๆ ส่วน “วิศวกรคอมพิวเตอร์” กับ “นักวิเคราะห์ระบบงานคอมพิวเตอร์” พวกเราน่าจะนึกถึงเป็นอันดับรอง ๆ
ภาพข้างบน ผมพยายามนำเสนอว่า การพัฒนาซอฟต์แวร์มันตั้งต้นมาจากการที่มีคนคิดค้นทฤษฎีทางคอมพิวเตอร์ (คุณ A) ซึ่งถูกตีพิมพ์เผยแพร่ในงานประชุมวิชาการหรือวารสารวิชาการ (เช่น ACM หรือ IEEE) และมีคนคิดค้นมาตรฐานทางคอมพิวเตอร์ (คุณ B) ซึ่งถูกเผยแพร่โดยสหพันธ์วิชาชีพ สมาคมวิชาชีพ สภาวิชาชีพ หรือ บริษัทเอกชน (เช่น RFC โดย IETF หรือ IT Standard โดย ISO) เป็นต้น
จากนั้นโปรแกรมเมอร์หรือวิศวกรซอฟต์แวร์ (คุณ C) ก็นำเอาทฤษฎีทางคอมพิวเตอร์และมาตรฐานทางคอมพิวเตอร์ที่ถูกคิดค้นขึ้น มาสร้างเป็นโปรแกรมสำเร็จรูปโดยตรง หรือ ต่อยอดผ่อนแรงสร้างเป็น Library, API หรือ Framework ไปก่อน เพื่อให้โปรแกรมเมอร์หรือวิศวกรซอฟต์แวร์คนอื่น (คุณ D) นำสิ่งเหล่านี้ไปใช้สร้างโปรแกรมสำเร็จรูปอีกต่อหนึ่ง
โปรแกรมสำเร็จรูปเจ๋ง ๆ ที่สร้างออกมาได้ ส่วนใหญ่ก็จะถูกนำไปใช้งานโดยผู้ใช้งาน (คุณ E) เพื่อเอาไปผลิตสินค้าหรือบริการ ส่วนน้อยก็จะถูกนำไปใช้งานโดยคนที่คิดค้นทฤษฎีทางคอมพิวเตอร์ (คุณ A) หรือคนที่คิดค้นมาตรฐานทางคอมพิวเตอร์ (คุณ B) อีกทีหนึ่ง วนเป็นวงจรเกื้อหนุนกันไป
โดยส่วนตัวแล้ว ผมเคยลองเป็นคุณ C ผมอยากสร้างโปรแกรมสำเร็จรูปเพื่อใช้งานซักตัวนึง โดยผมต้องการใช้ทฤษฎีทางคอมพิวเตอร์ และ มาตรฐานทางคอมพิวเตอร์ที่ถูกคิดค้นขึ้น (โดยคนเจ๋ง ๆ) เพื่อเป็นแหล่งอ้างอิงสำหรับสร้างโปรแกรมสำเร็จรูปอย่างที่ต้องการ
โดยไม่พึ่งพา Framework หรือ API หรือ Library ใด ๆ
แต่ไม่ไหว สุดท้ายผมรอให้มีคุณ C หลาย ๆ คนที่เก่งกว่าผม ผมรอให้พวกเขาสร้าง API และ Library ปล่อยฟรีในอินเทอร์เน็ต เพื่อให้ผมซึ่งกลายร่างเป็นคุณ D ได้รวบรวมเอา API และ Library เหล่านั้น ไปสร้างโปรแกรมสำเร็จรูปได้อย่างที่ต้องการ
ณ ตอนนั้น ผมรู้สึกว่าการที่ผมเป็นคุณ D มันเร็วกว่า ง่ายกว่า แต่รู้สึกภูมิใจน้อยกว่า
ปัจจุบันผมกลายเป็นคุณ E ไปแล้ว ทุกวันนี้โปรแกรมสำเร็จรูปมันซับซ้อนและใช้ยากเหลือเกิน ต้องหัดกันนานพอตัว ถึงจะชำนาญใช้คล่อง
โดยสรุปแล้ว สิ่งที่ผมอยากจะสื่อสารก็คือ โปรแกรมสำเร็จรูปมันไม่ได้สร้างออกมาง่าย ๆ ครับ กว่าที่มันจะสำเร็จออกมาได้ มันต้องมีคนและลำดับขั้นตอนอะไรหลาย ๆ อย่างเกิดขึ้นมาก่อน ถึงจะกลายเป็นโปรแกรมสำเร็จรูปเจ๋ง ๆ ให้เราได้ใช้กันในทุกวันนี้
เมืองไทยเรากำลังขาดแคลนโปรแกรมเมอร์ครับ (ข่าวเขาว่างั้น) ดังนั้น บุคลากรที่กำลังขาดแคลน จึงหมายถึงคุณ C และคุณ D นั่นเองครับ