พวกเราตอนนี้สร้างซอฟต์แวร์กันได้ระดับไหนแล้วครับ? 🙂 บางคนอาจจะตอบผมว่าสร้างได้นิดหน่อย, ตัวเล็ก ๆ บ้างก็อาจจะบอกว่าซอฟต์แวร์ผมติดต่อฐานข้อมูลได้, บางคนซึ่งเรียนทางด้านวิศวะมาอาจจะบอกว่า ซอฟต์แวร์ผมสามารถสั่งการควบคุมรถฉีดน้ำที่ฝังไมโครคอนโทลเลอร์เอาไว้ เป็นต้น
หลายแง่หลายมุมครับ แต่ก่อนที่เราจะเข้าไปคุยกันเรื่อง การสร้างซอฟต์แวร์ระดับ Enterprise ผมว่าเรามาทำความเข้าใจรูปแบบการพัฒนาซอฟต์แวร์ตอนที่เราเรียนหนังสือกันอยู่ กับตอนที่เราออกมาทำงานในองค์กรข้างนอกจริง ๆ กันดีกว่าครับ
ในตอนที่เราเรียนหนังสือกันอยู่นั้น ท่านอาจารย์จะเป็นผู้มอบหมายการบ้านให้เราทำครับ ซึ่งการบ้านที่ได้มักทำคนเดียว การบ้านส่วนใหญ่ก็คือการพัฒนาซอฟต์แวร์นั่นแหล่ะ ซึ่งก็แล้วแต่ว่าจะเป็นการพัฒนาซอฟต์แวร์ตามหัวข้อวิชาใดที่เราเรียนกันมา ยกตัวอย่างเช่น ถ้าเรียนวิชา Software Design & Development ท่านอาจารย์ก็อาจจะให้เรามาเขียนซอฟต์แวร์จำลองระบบเอนทรานซ์ หรือถ้าเรียนวิชา Data Structure เราก็อาจจะต้องมานั่งเขียนโปรแกรม Quick Sort, Binary Tree เป็นต้น
ส่วนใหญ่พวกเราจะลอกการบ้านกันใช่มั้ยล่ะ ผมรู้นะ 🙂
ทีนี้พอใกล้จะเรียนจบ แน่นอนครับ สำหรับนักศึกษาปริญญาตรี พวกท่านทั้งหลายต้องทำปริญญานิพนธ์แน่นอน และมันก็คงจะหลีกเลี่ยงไม่พ้น ที่จะต้องนึกหัวข้อปริญญานิพนธ์เอง แล้วจึงพัฒนาซอฟต์แวร์ประกอบปริญญานิพนธ์นั้น ๆ การทำปริญญานิพนธ์อาจจะทำคนเดียว หรือทำสองคน อันนั้นก็สุดแล้วแต่นโยบายที่ทางองค์กรการศึกษาจะเป็นผู้กำหนดมา
ตลอดระยะเวลาการเรียนหนังสือของเรา ถึงเราจะสร้างซอฟต์แวร์กันมาหลายตัว ทำคนเดียวบ้าง ทำคู่บ้าง ทำเป็นงานกลุ่มบ้าง แต่ลักษณะซอฟต์แวร์ที่สร้างออกมาจะมีรูปแบบดังภาพข้างล่างครับ
จากภาพจะเห็นว่า ไม่ว่าในตอนเรียนหนังสือ เราจะสร้างซอฟต์แวร์ให้ง่าย ๆ หรือสลับซับซ้อนยังไงก็ตาม, ไม่ว่ามันจะเป็นโปรแกรมก๊องแก๊งพื้น ๆ หรือโปรแกรมเข้ารหัส 256 บิตชั้นสูง ซอฟต์แวร์ของเราก็มีโมเดลเพียงอย่างเดียว นั่นคือ มีการนำข้อมูลเข้า การประมวลผล และการแสดงผลลัพท์ แล้วก็จบบบบบบบ
ถ้าในโลกของการทำงานเป็นอย่างนี้ก็คงดีครับ แต่เรื่องจริงมันไม่ใช่!!!
จากบทความก่อนนี้ที่ผมเคยพูดถึงรูปแบบธุรกิจพัฒนาซอฟต์แวร์ ผมได้เคยบอกถึงธุรกิจต่าง ๆ ที่เกี่ยวกับการพัฒนาซอฟต์แวร์เอาไว้ ผมบอกไว้ว่ามันมีหลายประเภท แต่ก็ไม่ได้หมายความว่าทุกบริษัทในประเทศไทยเป็นบริษัทพัฒนาซอฟต์แวร์ครับ จริง ๆ แล้วบริษัทพัฒนาซอฟต์แวร์ของไทยถือเป็นธุรกิจส่วนน้อยของไทย แต่ผมไม่มีข้อมูลแม่น ๆ หรอกนะ ว่าเป็นกี่เปอร์เซ็นต์ของ GDP เอาไว้จะหามาให้ทีหลังครับ
อ่ะ เรามากลับเข้าเรื่องกันต่อ ประเด็นที่จะบอกก็คือ นักพัฒนาซอฟต์แวร์ที่เรียนจบออกมาไม่ใช่ว่าจะได้ทำงานในบริษัทพัฒนาซอฟต์แวร์ทุกคนนั่นเอง จะมีก็แต่ส่วนน้อยที่ได้ทำ
ทีนี้เรามาดูครับ ว่าองค์กรส่วนใหญ่ที่ไม่ได้พัฒนาซอฟต์แวร์เพื่อเป็นอาชีพ เขาต้องการนักพัฒนาฯอย่างเราไปทำอะไร??? คำตอบคือ เค้าต้องการเราไปสร้างมูลค่าเพิ่มในการบริการครับ ศัพท์ฝรั่งเรียกไว้หรูว่า VAS (Value Added Services)
ถ้าเป็นองค์กรเล็ก ๆ เราก็จะได้ทำงานของเราด้วยโมเดลเดิมที่เราเคยทำครับ นั่นคือนั่งเขียนโปรแกรมตัวเล็ก ๆ หรือตัวกลาง ๆ ให้กับองค์กร ตามโมเดล นำเข้า -> ประมวลผล -> แสดงผลลัพท์ โดยคุณอาจจะทำคนเดียว หรือทำร่วมกับผู้ร่วมงานอีกคนสองคน
แต่ถ้าคุณต้องทำงานในองค์กรใหญ่ล่ะ องค์กรเหล่านี้ไม่เหมือนองค์กรเล็ก ๆ หรอกนะครับ เขามีงบประมาณมาก และที่สำคัญ เขาไม่เชื่อมือคนอย่างพวกเราหรอกครับ ดังนั้นสิ่งที่ผู้บริหารองค์กรทำก็คือ จ้างบริษัท TurnKey หรือจ้างบริษัท Consult มาทำระบบให้ครับ
แต่ปัญหาที่องค์กรใหญ่ ๆ มักจะพบก็คือ เขาจะจัดซื้อจัดจ้างซอฟต์แวร์มาเป็นชิ้น ๆ ครับ ยกตัวอย่างเช่น ซื้อระบบบริการลูกค้าจากบริษัท ก. จากนั้นซื้อระบบการเงินจากบริษัท ข. แล้วจึงซื้อระบบบัญชีจากบริษัท ค. โดยจะมีลักษณะตามรูปข้างล่างครับ
ทีนี้เมื่อส่งมอบทุก ๆ ระบบแล้วก็จะเกิดปัญหาครับ โดยปัญหาไม่ได้เกิดขึ้นจากระบบของบริษัท ก., ข. และ ค. แต่ปัญหาเกิดจากว่าจะทำยังไงให้ทุกระบบเชื่อมโยงกันได้ จริง ๆ เรื่องแบบนี้ไม่น่าทำให้เกิดปัญหาใช่มั้ยครับ แต่จากประสบการณ์ตลอดสิบกว่าปีที่ทำงานมา พบว่าทุกองค์กรมีปัญหานี้ครับ!!!! เพราะพวกผู้บริหารไม่เคยจัดสรรงบประมาณสำหรับการเชื่อมโยงทุกระบบเข้าหากันเลย ให้ตายสิ ทำไมเป็นเหมือนกันหมดก็ไม่รู้
ดังนั้น ทีนี้ก็ถึงงานของพวกเราแล้วครับ ที่จะต้องเชื่อมโยงให้ทุกระบบให้สามารถสื่อสารข้อมูลร่วมกัน กลายเป็นซอฟต์แวร์ระดับ Enterprise ตามรูปข้างล่าง
ไม่งั้นซอฟต์แวร์ที่ซื้อมาทั้งหมด คงจะง่อยเปลี้ยเสียขา ทำอะไรไม่ได้อย่างแน่นอน 🙂 แล้วค่อยมาคุยกันต่อครับ ว่าการผูกซอฟต์แวร์ให้สื่อสารกันได้ มันยากลำบากยังไง
One thought on “การสร้างซอฟต์แวร์ระดับ Enterprise”