10 Code Quality Tools: เครื่องมือตรวจสอบคุณภาพโค้ดสำหรับสาย Dev

Your Opinion
Published: 12.06.23

เพราะงานหลักๆ ของชาว 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

Nice Selfie

Office Manager

Chanatinad Chotiksatis

Thailand