ปัจจุบันนี้เรามีเครื่องมือในการพัฒนา software มากมายครับ ภาษาทาง computer ก็มีการเปลี่ยนแปลงไปอย่างมากเลยตลอดระยะเวลา 20 กว่าปีที่ผ่านมา ผมเข้าวงการพัฒนา software ไม่ทันคนรุ่นแรก ๆ ครับ แต่พวกพี่ ๆ เล่าให้ฟังกันอย่างออกรสว่า การจะเขียน program เพื่อสั่งให้ computer ทำงานในรุ่นของพวกพี่ ๆ เค้านั้น เค้าต้องรู้ภาษาเครื่องครับ แถมต้องใช้บัตรเจาะรูซึ่งเป็นกระดาษแข็ง
Category: Programming
พูดคุยแต่เรื่องสร้างซอฟต์แวร์
ตอนนี้อุตสาหกรรม Robotic ก้าวหน้าไปมากครับ เห็นได้จากการที่โรงงานอุตสาหกรรมส่วนใหญ่ล้วนใช้ Robotic ทั้งนั้น ทีนี้คำจำกัดความของ “Robotic” มันค่อนข้างกว้าง เพราะมันมีความหมายถึงอุปกรณ์ทาง electronic ที่อาศัยสัญญาณทางไฟฟ้า เพื่อส่งสัญญาณดังกล่าวไปยังอุปกรณ์ทาง electronic ที่ควบคุมกำลังไฟฟ้าเพื่อสั่งการให้เครื่องประกอบของเครืองกลให้ทำงานต่อไป แขนกลในโรงงานอุตสาหกรรมถือเป็นอีกหนึ่งตัวอย่างของ Robotic ครับ เพราะมันครบทุกองค์ประกอบเลย มันใช้สัญญาณไฟฟ้าในการควบคุมจังหวะการทำงาน, มันใช้กำลังไฟฟ้าเพื่อควบคุมกลไกจักรกลให้ทำงานอีกทอดนึง แต่ปัจจุบันนี้นิยามของ Robotic มันยิ่งชัดเจนมากขึ้นครับ อันเนื่องจากการที่บริษัทชั้นนำทางด้านอิเลกทรอนิกส์และยานยนต์ต่าง
การทำให้คอมพิวเตอร์พูดได้เป็นปัญหาคลาสิกมานานแล้วครับ 🙂 เพราะจริง ๆ แล้วคอมพิวเตอร์มันเปล่งเสียงตามหลักภาษาต่าง ๆ เองไม่ได้ จึงเป็นงานของนักวิทยาการคอมพิวเตอร์, วิศวกรคอมพิวเตอร์ และนักวิจัยในสาขาอักษรศาสตร์ที่จะต้องมาช่วยกันค้นคว้าวิธีการเพื่อที่จะทำให้เกิดขึ้นได้ ในขั้นแรกก็มีความคิดกันว่า ถ้าเราอัดเสียงเป็นประโยคเอาไว้ เพื่อใช้ในงานเฉพาะอย่างเช่นระบบ IVR ก็คงเพียงพอแล้ว แต่จริง ๆ แล้วมนุษย์เรามีความต้องการมากกว่านั้นครับ จริง ๆ แล้วถ้าทำได้ เราอยากให้คอมพิวเตอร์อ่านประโยคที่เราพิมพ์มากกว่า ซึ่งก็อย่างที่เห็น ประโยคที่มนุษย์อย่างเราพิมพ์จะมีความหลากหลายมาก ๆ
ปรกติแล้วถ้าผมมีปัญหา ผมมักจะแก้ด้วยวิธีของตัวเอง ซึ่งบางครั้งก็ไม่ใช่วิธีที่ถูกต้องครับ อย่างการใส่ plugins ให้ blog ก็เหมือนกัน ตอนแรกผมคิดว่าผมจะใช้ macromedia dreamweaver เป็น editor เพื่อเขียน plugins เองทั้งหมดครับ เพราะผมก็อยากให้ blog ผมนับคนออนไลน์ได้, นับคนกดคลิ๊กได้, ทำโพลได้ มีปฏิทินด้วย ฯลฯ ผมก็เลยนั่งแกะโค้ดของ wordpress
ผมรู้สึกยินดีมากเลยครับ ที่ปัจจุบันประเทศไทยเรามีการเปิดสาขาที่เกี่ยวกับคอมพิวเตอร์มากขึ้น เพราะเมื่อสมัยก่อนนั้น สาขาทางคอมพิวเตอร์ก็มีเพียง วิศวกรรมคอมพิวเตอร์ และวิทยาการคอมพิวเตอร์เท่านั้น แต่ปัจจุบันมีมากมายขึ้น ทั้งระบบสารสนเทศ, เทคโนโลยีสารสนเทศ, คอมพิวเตอร์ธุรกิจ, ระบบจัดการสารสนเทศเพื่อการบริหาร, กราฟิกและมัลติมิเดีย ฯลฯ การที่มีสาขามากขึ้นแบบนี้ ก็มีความหมายถึงการที่ไทยเราผลิตบัณฑิตทางด้านนี้ได้มากขึ้น ซึ่งผมก็หวังนั่นแหล่ะ ว่าคุณภาพจะมากขึ้นไปด้วย เพราะจบมาแล้วถ้ามาเข้าองค์กรที่ผมทำงานอยู่ ผมก็จะได้เลือกมาทำงานในทีมผมได้โดยผมไม่ต้องลังเลใจอะไร 🙂 ขอแจ้งให้ทราบอย่างนึงครับ ซึ่งสำคัญมาก นั่นก็คือ การออกมาทำงานในภายนอก สถาบันการศึกษาที่จบมา
ซอฟต์แวร์ก็เหมือนเครื่องบินนั่นแหล่ะครับ ที่มีโอกาสจะเกิดอุบัติเหตุได้ทุกเมื่อ ดังนั้นเราจำเป็นที่ต้องให้ซอฟต์แวร์ที่เราสร้างขึ้นเก็บประวัติการทำงานของตนเองครับ หรือภาษาทางคอมพิวเตอร์ที่เรียกว่า Log File เจ้า Log File ถือว่าสำคัญมาก หากซอฟต์แวร์ดังกล่าว เราพัฒนามันขึ้นมาเพื่อให้มันทำงานแบบอัตโนมัติและทำงานอยู่ตลอดเวลาทั้งวันทั้งคืนโดยที่ไม่มีใครเฝ้า เราจำเป็นอย่างยิ่งครับที่ต้องมี Log File เพราะไม่รู้วันดีคืนดีซอฟต์แวร์ดังกล่าว จะเดี้ยงขึ้นมาเมื่อไหร่ แต่ถ้าซอฟต์แวร์ที่เราสร้างขึ้น ถูกใช้โดยเจ้าหน้าที่ระบบ Front Office หรือว่า Back Office ความจำเป็นในการมี
หลายสัปดาห์ก่อนผมถูกเรียกตัวด่วนเข้าศูนย์คอมพิวเตอร์ของที่ทำงานครับ โดยได้รับคำสั่งจากผู้บังคับบัญชาให้แก้ปัญหาระบบ Billing ด่วน เพราะระบบพิมพ์ใบเรียกเก็บลูกหนี้และระบบพิมพ์ใบเสร็จรับเงินให้ลูกค้าเกิดชะงักงัน ทำงานล่าช้าจนเกินกว่าจะยอมรับได้ ลูกค้าขององค์กรที่ผมทำงานอยู่มีมากมายครับ ในแต่ล่ะวันมีเข้ามาจำนวนราว 8,000 คนขึ้นไป ดังนั้นการออกใบเสร็จรับเงินจึงถือเป็นเรื่องสำคัญสุดขีดครับ เพราะออกใบเสร็จได้ก็แสดงว่าได้รับเงินเข้ากระเป๋าอย่างสมบูรณ์นั่นเอง และถ้าออกไม่ได้ แสดงว่าองค์กรจะสูญเสียเงินรายได้ถึงวันล่ะ 20 ล้านบาท!!! ทีนี้เรื่องยุ่ง ๆ มันก็อยู่ตรงที่ผมได้รับมอบหมายให้มาตรวจสอบว่าทำไมออกใบเสร็จรับเงินล่าช้า แต่ผมต้องควานหาครับ ว่าต้นตอนั้นเกิดจากที่ใด แถมต้องรายงานความคืบหน้าด้วยว่าดำเนินการยังไงไปบ้างแล้ว ประเด็นมันอยู่ที่ระบบ Billing ดังกล่าว
หลังจากผมเพิ่มหัวข้องานนิพนธ์และหนังสือเก่าขึ้นมา ผมก็วุ่นวายกับการหาข้อมูลสำหรับสองหัวข้อดังกล่าวอยู่พอสมควรครับ และยังต้องพัฒนาซอฟต์แวร์ตัวใหม่เพื่อเพิ่มในห้องแล็ป เพราะเห็นว่ามีแค่ PeeTai Nominal และ PeeTai Metrology มันยังน้อยเกินไปครับ คิดว่าจะสร้างขึ้นมาเรื่อย ๆ ตามแนวคิด Software as a Service ก็เลยเพิ่งได้มีโอกาสกลับมาต่อบทความวันนี้เอง กลับมาต่อจากหัวข้อที่แล้วดีกว่าครับ ผมคุยค้างเอาไว้เรื่องการเชื่อมโยงข้อมูลกันในระบบ Enterprise และเคยให้ดาวน์โหลด E-Book Network Programming
คราวที่แล้ว ผมได้คุยเรื่อง GAP Analyst เอาไว้ วันนี้เรามาต่อกันดีกว่าครับ ปรกติแล้วหลังจากที่นักวิเคราะห์ระบบได้ตกลงกับผู้ใช้ระบบ ว่าระบบอะไรจะต้องผูกโยงกับระบบอะไรบ้างแล้ว ทีนี้ก็ถึงคราวของวิศวกรซอฟต์แวร์กับโปรแกรมเมอร์แล้วครับ ที่จะต้องมาคุยกันว่าจะทำอีท่าไหนทางเทคนิค เพื่อให้ทุกระบบสามารถเชื่อมโยงข้อมูลกันได้ เป็นเรื่องโชคร้ายอย่างนึงครับ เพราะมีน้อยองค์กรนักที่จะมีวิศวกรซอฟต์แวร์ อันนี้เรื่องจริงเลย ผมผ่านมาหลายที่แล้ว มีที่เดียวเท่านั้นที่มีตำแหน่งวิศวกรซอฟต์แวร์ ที่นั่นเป็นบริษัทมหาชนครับ และหลังจากนั้นเพียงแค่สองปี พี่ที่มีตำแหน่งเป็นวิศวกรซอฟต์แวร์คนเดียวที่มี ก็ถูกย้ายมาเป็นนักวิเคราะห์ระบบแทนด้วยเงินเดือนที่เท่าเดิม ผมไม่รู้ว่าเป็นเพราะความยืดหยุ่นในการทำงาน หรือเพราะผู้บริหารมีความเข้าใจว่าวิศวกรซอฟต์แวร์มันไม่มีความจำเป็นกันแน่ เขาถึงได้ยุบตำแหน่งวิศวกรซอฟต์แวร์ อันนี้ยากจะเดาครับ จริง
ผมเชื่อว่านักพัฒนาซอฟต์แวร์หลาย ๆ คน ทั้งที่กำลังศึกษาอยู่และกำลังทำงานอยู่ หลาย ๆ คนคงจะมีลักษณะร่วมกันอย่างนึงนั่นก็คือ ไม่ชอบการทำเอกสาร ใช่มั้ยครับ? เมื่อแปดปีก่อน ผมเองก็ไม่ชอบทำเอกสารเหมือนกัน ชอบที่จะสร้างซอฟต์แวร์โดยการมุ่งมั่นกับการเขียนโปรแกรมเพียงอย่างเดียว ซึ่งมันก็ให้ผลดีในช่วงแรกครับ เพราะอะไร? เพราะสิ่งที่ต้องทำมันเป็นเพียงซอฟต์แวร์ขนาดเล็กครับ อีกทั้งทำคนเดียว รับงานเอง ทำเอง ไม่มีใครมาสั่ง ติดต่อกับคนที่ต้องการใช้ระบบโดยตรง แต่ภายหลังจากนั้นผมก็เริ่มพบกับปัญหาครับ เพราะเจ้านายผมมีความคิดที่จะให้ผมสร้างทีมพัฒนาซอฟต์แวร์ขึ้น มา โดยเจ้านายจะผลักดันผมขึ้นเป็นนักวิเคราะห์ระบบ แล้วให้มีทีมงานในสังกัดผมซักสองสามคน