จากการที่ผมได้มีโอกาสอ่านหนังสือ “Team Topologies” ซึ่งเกี่ยวกับการวางโครงสร้างทีมเพื่อเพิ่มประสิทธิภาพองค์กร โดยผมได้ทำสรุปไว้ใน บทความนี้ โดยที่ในหนังสือเล่มนี้ได้มีการอ้างอิงถึงหนังสืออีกเล่มหนึ่งหลาย ๆ ครั้ง ทำให้ผมเกิดความสนใจในหนังสือเล่มนั้น เลยได้ไปลองหาอ่านดู และก็เป็นที่มาของบทความนี้ หนังสือเล่มนั้นชื่อว่า “Accelerate (ความเร่ง): วิทยาศาสตร์ของพัฒนาซอฟต์แวร์แบบลีนและเดฟออพส์ (DevOps): สร้างและขยายองค์กรด้านเทคโนโลยีที่มีประสิทธิภาพสูง

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

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

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

รูปที่ 1 - ภาพรวมปัจจัยและผลกระทบในหนังสือทั้งหมด

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

ผมจะแบ่งบทสรุปที่ผมได้จากหนังสือเล่มนี้ ออกเป็น 4 ตอน โดยแต่ละตอนจะกล่าวถึงแต่ละปัจจัย ดังนี้

  1. ประสิทธิภาพในการพัฒนาซอฟต์แวร์ (บทความนี้)
  2. วัฒนธรรมองค์กร
  3. การผลิตซอฟต์แวร์แบบต่อเนื่อง
  4. การบริหารแบบลีน

ตอนที่ 1 - จะเพิ่มประสิทธิภาพการพัฒนาซอฟต์แวร์ได้อย่างไร

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

รูปที่ 2 - ประสิทธิภาพในการพัฒนาซอฟต์แวร์และผลกระทบของมัน

วิธีการวัดผลประสิทธิภาพในการพัฒนาซอฟต์แวร์

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

  • ลีดไทม์ (Lead Time) - ปกติแล้วลีดไทม์จะหมายถึง เวลาที่ใช้ตั้งแต่รู้ความต้องการผู้ใช้ จนถึงการส่งมอบซอฟต์แวร์ให้กับผู้ใช้ แต่เพื่อที่จะสามารถวัดผลได้อย่างชัดเจน หนังสือจะใช้เวลาตั้งแต่เริ่มมีการแก้ไขโค้ดโปรแกรมจนถึงการปล่อยให้ใช้งานจริง
  • ความถี่ในการปล่อยซอฟต์แวร์ให้ใช้งานจริง (Deployment Frequency) - หมายถึง การปรับปรุง แก้ไขและปล่อยซอฟร์แวร์ให้ใช้งานจริงได้บ่อยแค่ไหน
  • เวลาเฉลี่ยที่ใช้ในการกู้ระบบ (Mean Time To Restore (MTTR)) - หมายถึง เวลาเฉลี่ยที่ใช้ในการกู้คืนระบบ หลังจากที่ปล่อยให้ใช้งานและพบความผิดพลาดเกิดขึ้น
  • เปอร์เซนต์ความผิดพลาดจากการเปลี่ยนแปลง (Change Fail Percentage) - หมายถึง อัตราความผิดพลาดที่เกิดขึ้นเมื่อเทียบกับจำนวนการปรับเปลี่ยนซอฟต์แวร์ที่เกิดขึ้น

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

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

ผลกระทบของ ประสิทธิภาพในการพัฒนาซอฟต์แวร์ กับ ประสิทธิภาพขององค์กร

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


สรุป

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

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