Mon. Apr 29th, 2024
แนวคิดในการทำงานของผู้พัฒนาซอฟท์แวร์ที่ผู้ประกอบการควรรู้ก่อนว่าจ้าง

แนวคิดในการทำงานของผู้พัฒนาซอฟท์แวร์ที่ผู้ประกอบการควรรู้ก่อนว่าจ้าง

ในช่วงสิบปีที่ผ่านมาเทคโนโลยีเกือบทุกแขนงมีการเปลี่ยนผ่านไปสู่เทคโนโลยีที่ทันสมัยกว่าด้วยอัตราเร่งที่สูงมาก บางเทคโนโลยีมีการพัฒนาไปอย่างก้าวกระโดด

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

ในฝั่งฮาร์ดแวร์นั้น ผู้ใช้งานส่วนใหญ่จะรู้สึกถึงการปรับเปลี่ยนค่อนข้างชัดเจน เนื่องจากเป็นการเปลี่ยนแปลงทางกายภาพที่ผู้ใช้มองเห็นและจับต้องได้ อีกทั้งอุปกรณ์บางอย่างยังให้ข้อมูลด้าน Specifications หลัก ๆ กำกับเอาไว้ ทำให้ผู้ใช้งานสามารถเปรียบเทียบกับฮาร์ดแวร์เวอร์ชั่นก่อนได้ค่อนข้างชัดเจน สำหรับการปรับเปลี่ยนทางด้านซอฟต์แวร์นั้นก็จะมีความคล้ายคลึงกัน โดยปกติผู้ใช้งานจะทราบว่าซอฟต์แวร์เวอร์ชั่นล่าสุดมีฟังก์ชั่นการใช้งานใหม่ ๆ ในเรื่องใดบ้าง ซึ่งก็มักจะมุ่งไปในเรื่องของการเพิ่มประสิทธิภาพในการใช้งานเป็นหลัก เช่น เพิ่มฟังก์ชั่นการทำงานให้ตรงตามลักษณะงานมากขึ้น (User Experience : UX) มีการปรับเปลี่ยนรูปแบบหน้าตาของซอฟต์แวร์ให้ดูสวยงามน่าใช้มากขึ้น (User Interface : UI) หรืออาจเป็นการเพิ่มความปลอดภัยและเสถียรภาพในการใช้งานของซอฟต์แวร์มากขึ้น (Secutiry and Stability) เป็นต้น ทั้งนี้ผู้ใช้งานจะพบว่าหากมีการอัปเกรดจากเวอร์ชั่นเก่าไปสู่เวอร์ชั่นใหม่ก็จะมีตัวเลขเวอร์ชั่นของซอฟต์แวร์นั้น ๆ ปรากฏอยู่นั่นเอง

แนวคิดในการทำงานของผู้พัฒนาซอฟท์แวร์ที่ผู้ประกอบการควรรู้ก่อนว่าจ้าง

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

ในส่วนของซอฟต์แวร์สำเร็จรูปนั้น ผู้ใช้งานอาจจะไม่ต้องเสียเวลาไปกับขั้นตอนการพัฒนาซอฟต์แวร์เอง เพราะสามารถซื้อมาใช้งานได้เลยทันที ขอเพียงผู้ใช้งานมีความรู้ความสามารถในการใช้งานซอฟต์แวร์นั้น ๆ แต่บ่อยครั้งที่มักจะพบว่าตัวซอฟต์แวร์มีฟังก์ชั่นการใช้งานไม่ค่อยจะตรงกับความต้องการเท่าใดนัก ทำให้ในปัจจุบันซอฟต์แวร์ที่พัฒนาขึ้นมาเองกำลังได้รับความนิยมอย่างมาก เนื่องจากซอฟต์แวร์ยุคใหม่นี้มีช่วงอายุ (Software Life Cycle) ที่ค่อนข้างสั้น การเปลี่ยนผ่านเป็นไปอย่างรวดเร็ว จากซอฟต์แวร์ที่เคยทันสมัยเมื่อปีสองปีก่อน ก็อาจจะตกยุคในปีต่อ ๆ มา โดยเฉพาะซอฟต์แวร์ที่ใช้งานในลักษณะของ Web Application และ Mobile Application ซึ่งเป็นซอฟต์แวร์ที่ต้องสื่อสารข้อมูลผ่านเครือข่ายอินเทอร์เน็ต สำหรับซอฟต์แวร์ที่พัฒนาขึ้นมาเอง หากองค์กรไม่มีบุคลากรที่ทำหน้าที่เขียนโปรแกรม (Programmer) ก็จำเป็นจะต้องว่าจ้างบริษัทหรือทีมงานมืออาชีพด้านการพัฒนาซอฟต์แวร์จากภายนอกเข้ามาช่วยเขียนโปรแกรมให้ ซึ่งซอฟต์แวร์ที่พัฒนาขึ้นนั้นก็มักจะให้ผลลัพธ์ตรงตามวัตถุประสงค์ ตามที่ผู้ว่าจ้างหรือองค์กรกำหนดไว้

แน่นอนว่าในช่วงของการพัฒนาซอฟต์แวร์นั้น ผู้ว่าจ้างจำเป็นจะต้องลงไปคลุกคลีกับทีมงานผู้พัฒนาในหลาย ๆ ขั้นตอน ทั้งนี้โครงการจะใช้เวลามากหรือน้อยเท่าใดนั้นนอกจากจะขึ้นอยู่กับรายละเอียดความต้องการ (Software Requirements) ของผู้ว่าจ้างแล้ว สิ่งที่สำคัญยิ่งกว่าก็คือรูปแบบในการทำงานของทีมงานผู้พัฒนาว่าเป็นแบบใด ซึ่งแต่เดิมทีมงานผู้พัฒนาซอฟต์แวร์จะใช้วิธีการทำงานแบบ Waterfall ซึ่งเป็นกระบวนการทำงานแบบการลำดับเป็นขั้นเป็นตอน โดยผู้ที่ควบคุมดูแลโครงการ คือ หัวหน้าทีมพัฒนาซอฟต์แวร์ ลำดับขั้นต่อมาจะเป็นทีมงานแยกฝ่าย เพื่อปฏิบัติงานกันอย่างชัดเจน ในแต่ละฝ่ายก็จะมีผู้ปฏิบัติที่ทำหน้าที่แยกจากกันตามเนื้องานที่ได้รับมอบหมาย ซึ่งจะเห็นได้ว่ามีลักษณะการทำงานเป็นแบบ Top-Down ที่จำเป็นจะต้องมีหัวหน้าเป็นผู้สั่งการหรือชี้ขาดแต่เพียงผู้เดียว ทั้งนี้ กระบวนการทำงานจะเริ่มต้นจากการวางแผน กำหนดเป้าหมาย กระจายเนื้องานไปตามฝ่ายหรือแผนกให้ลงมือปฏิบัติจนกว่าจะได้ผลลัพธ์ตามที่ผู้ว่าจ้างกำหนดไว้ ทำให้การพัฒนาซอฟต์แวร์ด้วยวิธีการทำงานแบบ Waterfall ประสบปัญหาหลายประการด้วยกัน เช่น

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

เมื่อกำหนดเป้าหมายโครงการไว้แล้วจะไม่สามารถยืดหยุ่นได้ เนื่องจากมีการจัดสรรงบประมาณไว้ตายตัว แม้จะตรวจพบว่าซอฟต์แวร์ที่กำลังพัฒนาตามความต้องการเดิมของผู้ว่าจ้างจะมีประสิทธิผลที่ไม่ดีนักก็ตาม

การจะนำซอฟต์แวร์ไปใช้งาน (Imprement) จะต้องรอให้พัฒนาจนเสร็จสมบรูณ์ในขั้นตอนสุดท้ายเท่านั้น ทำให้ผู้พัฒนาทำการแก้ไขได้ยากเมื่อตรวจพบปัญหาซอฟต์แวร์หรือบัก (Bug) ที่แย่กว่า คือ ต้องรื้อโค้ดเก่าแล้วเขียนโปรแกรมใหม่ ซึ่งจะเสียเวลามาก อาจทำให้ผู้ว่าจ้างได้รับความเสียหายได้

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

ทำให้เกิด Agile ซึ่งเป็นแนวคิดในการทำงานแบบใหม่ของผู้พัฒนาซอฟต์แวร์ ที่ผู้ประกอบการจำเป็นจะต้องเข้าใจและในบางครั้งอาจจะต้องเข้าไปมีส่วนร่วมในการพัฒนาด้วย ซึ่งจุดเด่นของ Agile มีดังต่อไปนี้

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

การทำงานแบบ Agile จะเน้นที่ผลลัพธ์หรือคุณค่าของงานมากกว่าเอกสาร หากพบว่ามีทางเลือกของผลลัพธ์ของซอฟต์แวร์ที่ดีกว่า ทีมงานก็จะลงมือทำทันที

การพัฒนาซอฟต์แวร์ตามแนวคิดการทำงานแบบ Agile จะแบ่งงานเป็นส่วนย่อย ๆ ที่เรียกว่า Sprint เมื่อดำเนินการเสร็จในแต่ละ Sprint ก็จะส่งให้ผู้ว่าจ้างทดลองใช้งานก่อน ซึ่งจะมีข้อดี คือ ทำให้สามารถตรวจพบปัญหาได้เร็วและแก้ไขได้ทันท่วงทีก่อนที่จะกลายเป็นปัญหาใหญ่ในซอฟต์แวร์เวอร์ชั่นสมบรูณ์ (Production)

Agile ให้ความสำคัญกับคุณภาพของซอฟต์แวร์ที่พัฒนามากกว่าการคำถึงถึงข้อมูลในเอกสารกำกับจากทางผู้ว่าจ้าง

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


ขอบคุณข้อมูลจาก : นิตยสาร Thai Hotels & Travel Vol.9 No.54

Leave a Reply

Or

Your email address will not be published. Required fields are marked *