เพราะงานหลักๆ ของชาว developer คือการส่งมอบงานให้กับลูกค้า (Working software) เพราะ ฉะนั้นคุณภาพของโค้ดจึงสำคัญและเป็นปัจจัยหลักที่สามารถแปลงไปอยู่ในรูปของตัวเงินได้ไม่ว่าจะรายรับหรือรายจ่าย
แล้วจะตรวจสอบคุณภาพโค้ดให้มีประสิทธิภาพได้อย่างไร? ลองมารู้จักเครื่องมือต่างๆ ที่สาย Dev อย่างเราห้ามพลาดกัน!
1.Cycle Time
เป็นการประเมินเวลาที่ใช้ในแต่ละรอบของการพัฒนา โดยนับตั้งแต่ตอนได้รับ Approve ไปจนถึงขึ้นตอน Production ยิ่งเราใช้เวลาน้อยเท่าไหร่ก็แปลว่าทีมเราทำงานได้ดีมากเท่านั้น และยังแปลว่ามีความต่อเนื่องในการส่งงานที่ดีอีกด้วย
2.Quality
เมื่อส่งงานได้เร็วแล้ว สิ่งที่พลาดไม่ได้และสำคัญมากนั่นคือ Quality หรือคุณภาพของงาน ซึ่งเราสามารถวัดได้จากหลายตัวแปร เช่น ข้อผิดพลาด ช่องโหว่ หรือ ความซับซ้อนของ Cycle เหล่านี้ก็เป็นตัวบ่งบอกถึงประสิทธิภาพหรือปัญหาได้เช่นกัน
3.Feedback
อีกเรื่องที่เป็นสิ่งสำคัญและเป็นตัวชี้ชะตางานก็คือ “ลูกค้า” โดยสิ่งที่สามารถวัดได้ดีก็คือ Feedback จากลูกค้าหรือผู้ใช้งานว่ามีแนวโน้มไปในทางที่ดีหรือไม่ และถ้าไม่ดีก็วิเคราะห์ต่อไปว่าปัญหามาจากส่วนไหนบ้าง เพื่อที่เราสามารถนำไปประเมินแล้วหาแนวทางแก้ไขต่อไปได้
4.Satisfaction
แน่นอนว่า Satisfaction หรือความพึงพอใจของลูกค้าเป็นสิ่งที่เราต้องใส่ใจอยู่แล้วเป็นปกติ แต่มีอีกสิ่งที่สำคัญเช่นกันก็คือ Employee Satisfaction หรือความพึงพอใจของพนักงานในทีม ว่าพวกเขารู้สึกอย่างไรบ้าง? มีปัญหาติดขัดตรงไหน? สามารถช่วยหรือแก้ไขได้อย่างไร? ไม่ว่าจะเป็นปัญหาที่มาจากเครื่องมือหรืองานหรือปัญหาส่วนตัวก็สามารถส่งผลกระทบต่องานได้
5.CI Duration
เวลาที่เราพัฒนาโปรเจกต์มาสักชิ้น อีกด้านหนึ่งที่สำคัญที่จะต้องมีการวัดผลก็คือเรื่องของ CI ซึ่งเป็นการวัดประสิทธิภาพของฝั่ง Developer โดยเรื่องแรกที่เราควรวัดคือเรื่องของ CI Duration ซึ่งเป็นการหาค่าเฉลี่ยดูว่าในการ Run CI แต่ละครั้งใช้เวลาโดยเฉลี่ยเท่าไหร่ หากใช้เวลานานไปอาจไม่ใช่เรื่องดี ซึ่งก็ต้องมาดูกันอีกทีว่าในกรณีที่ช้านั้นสาเหตุเกิดขึ้นที่ขั้นตอนหรือส่วนการทำงานไหน แล้วค่อย ๆ แก้ไขต่อไป
6.Total CI Run Time / Total CI Run
เป็นเครื่องมือในส่วนของ CI Duration เพื่อพิจารณาจำนวนการ Run CI ต่อวัน ซึ่งจะช่วยบอกเราว่าการทำงานของเราติดปัญหาอยู่หรือไม่
7.CI Time to Recovery
เมื่อเราทำการ Build และ Test แล้วสิ่งต่อมาที่ควรมีการวัดผลก็คือ CI Time to Recovery ที่จะช่วยบอกเราถึงระยะเวลาที่ทีมใช้ในการจัดการสิ่งที่ต้องแก้ไขจากข้อผิดพลาด นอกจากหาข้อผิดพลาดแล้วก็สามารถวัดหาจุดดีของงานได้ด้วย CI Success Rate ซึ่งก็คือการวัดหาอัตราความสำเร็จในการ Run CI แต่ละครั้งว่าอยู่ที่เท่าไหร่
8.Successful CI Run / Total CI Run
ถ้าหากผลลัพธ์ของ CI Success Rate ออกมาต่ำ ซึ่งอาจจะเป็นเพราะมีการทดสอบโค้ดน้อยเกินไป ให้มาดูการวัดผลจาก CI ต่อมา โดยเริ่มจาก Uptime หรือการดูว่าระบบของเราพร้อมใช้งานมากแค่ไหน มี Downtime มากน้อยเท่าไหร่ในแต่ละช่วงที่ทำการวัด ซึ่งเป็นค่าที่ไม่ควรปล่อยให้ลดลงเยอะ เพราะยิ่งมี Uptime น้อยก็หมายถึงทุกครั้งที่ระบบล่มเราก็มีโอกาสเสียลูกค้าหรือฐานผู้ใช้งานไปนั่นเอง
9.Coverage
การวัด Coverage หรือการดูว่าระบบของเราผ่านการทดสอบครอบคลุมทุกการทดสอบหรือไม่แต่การคาดหวังให้ Coverage ออกมา 100% ก็อาจไม่ใช่เรื่องที่ดีเสมอไป เพราะมันอาจหมายถึงการทดสอบบางอย่างที่เล็กน้อยจนเกินไปและไม่คุ้มกับเวลาหรือต้นทุนที่เสียไป ดังนั้นเราจึงต้องชั่งน้ำหนักดูว่าผ่านกี่ % ถึงจะถือว่าดีสำหรับมาตรฐานระบบของเรา
10.Time Detection
และสุดท้ายคือเรื่องของ Time Detection หรือการวัดเวลาที่ใช้ในการตรวจพบข้อผิดพลาด ซึ่งเป็นตัวชี้วัดที่บอกว่าเราเตรียมพร้อมรับมือมาดีแค่ไหนใน Process และการแก้ไขปัญหา ยิ่งเราใช้เวลานานแปลว่าจุดผิดพลาดนี้อยู่ในระบบนานและอาจมีผู้ใช้งานหลายคนต้องเจอกับจุดผิดพลาดนี้ซึ่งส่งผลให้มีความเสี่ยงต่อการเสียฐานผู้ใช้งานมากขึ้น
10 ตัวชี้วัดนี้อาจดูเหมือนเยอะ แต่ถ้าใครรู้ว่าการทำงานของสาย DevOps ต้องตรวจสอบและติดตามผลอะไรบ้าง จะรู้เลยว่ามี Tools ในการทำงานย่อมดีกว่าเป็นไหนๆ
Article by Thanisorn Boonchote