วันอังคารที่ 4 พฤศจิกายน พ.ศ. 2557

เมื่อคิดจะเป็น...นักพัฒนาซอฟต์แวร์ (มืออาชีพ)

มากกว่าครึ่งของโครงการพัฒนาซอฟต์แวร์ที่ล่าช้า
หลายโครงการใช้งบประมาณเกินกว่าที่คาดการณ์
หนึ่งในสี่ของโครงการพัฒนาซอฟต์แวร์ล้มเหลว
มีโครงการจำนวนมากที่ไม่เสร็จและต้องยกเลิกไป
และมีเพียงไม่ถึง 30% เท่านั้นที่ประสบความสำเร็จ [1]

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

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

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

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

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

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

อ้างอิง
1. Watts S. Humphrey, “PSP: A Self-Improvement Process for Software Engineering,” Addison Wesley, NJ, 2005

27 สิงหาคม 2553


ไม่มีความคิดเห็น: