วิถีคนโกไฟว์ กับการสร้างงานมาตรฐานภายในทีม ตอนที่ 1

Decha Kenthaworn
Gofive
Published in
2 min readFeb 15, 2020

ก่อนอื่นขอหยิบยกเนื้อหาบางส่วนในหนังสือ

"นิสัยการทำงานไม่ธรรมดาของโตโยต้า"

ซึ่งว่าด้วยเรื่อง งานมาตรฐาน (Standardized Work) เป็นลักษณะพิเศษอย่างหนึ่งของวิถีโตโยต้า โดยงานมาตรฐานของโตโยต้านั้น คือรูปแบบการทำงานที่ช่วยในการผลิตให้มีประสิทธิภาพโดยใช้คน เครื่องจักร และ สิ่งของ ซึ่งงานมาตรฐานเมื่อพนักงานนำไปปฏิบัติจริงแล้วรู้สึกว่า “ยุ่งยากเกินไป” หรือ “ใช้ไม่ได้ผล” พนักงานสามารถแจ้งเรื่องขอแก้ไขปรับปรุงใหม่ได้เพื่อสร้างงานมาตรฐานที่สมบูรณ์

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

  • มาตรฐานการเขียนโค้ด (Coding Standards) หมายถึงรูปแบบและข้อกำหนดในการเขียนโค้ดสำหรับภาษาต่างที่ใช้ในการพัฒนา
  • คู่มือการการพัฒนาระบบภายในทีม (IT Development Manual) เป็นคู่มือกระบวนการทำงานและข้อกำหนดการทำงานร่วมกันภายในทีม

มาตรฐานการเขียนโค้ด (Coding Standard) ในการกำหนดมารตฐานนั้นจะต้องคำนึงถึงรูปแบบการเขียนไม่ว่าจะเป็น indentation ,comments, naming conventions, file structure, unit test รวมถึง design pattern ซึ่งมีแนวทางดังนี้

  • อ่านโค้ดได้เข้าใจและเขียนต่อได้
  • ข้อบกพร่องน้อยลงและทำงานได้อย่างมีประสิทธิภาพมากยิ่งขึ้น
  • บำรุงรักษาได้ง่าย
  • ง่ายสำหรับคนเก่าและคนใหม่ที่พึ่งเข้ามาแก้ไขโค้ดต่อ
  • สร้างความแตกต่างระหว่างโปรเจคที่สำเร็จและโปรเจคเก่าที่เคยเกิดปัญหา

เรามีวิธีการอย่างไรในการสร้างมาตรฐานการเขียนโค้ดและปฏิบัติตามในทีมงานของเรา

  • จับมานั่งทำด้วยกันเลยว่าอยากได้มารตฐานแบบไหนในทีมเรา
  • ลองเอาโค้ดเก่ามาดูก่อนแล้วเราอยากเปลี่ยนให้เป็นแบบไหนที่เราต้องการ
  • ให้ระดับอาวุธโสช่วยแนะนำประสบการ์ที่ผ่านมา
  • เมื่อมีคนใหม่เข้ามาแน่นอนว่าจะต้องทำความเข้าใจในการเขียนโค้ดแต่ละโปรเจค
  • ต้องมีการมอบหมายสมาชิกในทีมให้ตรวจสอบโค้ดอยู่เสมอ (Weekly Code Review)
  • มีบางส่วนใช้ Tools ในการกำหนด Rule และขาดไม่ได้ Pull Request เมื่อเราใช้ GIT จะต้องทำการ Code Review ก่อนเสมอ
  • “หยอดเป็ดด้วยนะ” เมื่อตรวจสอบว่ามีสมาชิกในทีมทำไม่ตรงกับมาตรฐาน
  • เมื่อมาตรฐานเก่ามันล้าหลังสมาชิกทุกคนสามารถนำเสนอและปรับเปลี่ยนพร้อมกำหนดเวอร์ชันและเสื่อสารให้ทุกทีมได้ปฏิบัติร่วมกัน

* หยอดเป็ดครั้งละ 10 บาท เป็นวิธีให้สมาชิกในการใตร่ตรองข้อบกพร่องของตัวเองเพื่อไม่ให้เกิดซ้ำ

“จะวิ่งให้ไวไปให้เร็ว เราเดินตรงแล้วหรือยัง การวางมาตรฐานการเขียนโค้ดให้ดีก่อนการเริ่มเขียนโค้ดก็เช่นกัน”

Editor Tools แต่ละภาษามีให้เลือกใช้

Visual Studio สามารถตั่งค่าได้ที่ EditorConfig file

Visual Studio Code สำหรับการพัฒนาเว็บด้วย Angular จำเป็นจะต้องลง TSLint เพื่อช่วยกำหนดโค้ดที่เราเขียนด้วย Typescript

Xcode สามารถติดตั้ง SwiftLint เพื่อตั้งค่ารูปแบบโค้ดที่เราต้องการ

Android Studio ก็มี Android Lint ที่ช่วยวิเคราะห์โครงสร้างการเขียนโค้ด

อีกหนึ่งเครื่องมือที่ขาดไม่ได้ SonarQube ติดตั้งไว้สำหรับดูภาพรวมทุกโปรเจคว่าโค้ดมีคุณภาพตามที่เราได้กำหนดไว้หรือยัง

เห็น Code Coverage แล้วอย่าตกใจโปรเจคเก่าค่อย ๆ เครีย

สรุป การวางมาตรฐานการเขียนโค้ด (Coding Standards) ต้องอาสัยความร่วมมือกันในทีมปรับปรุงเปลี่ยนแปลงมาตรฐานของโค้ดให้ทันสมัยและเครื่องมือที่ใช้ไม่ได้เพิ่มความยุ่งยากในการทำงานแต่ต้องช่วยเพิ่มประสิทธิภาพการทำงานให้ดีและรวดเร็วมากยิ่งขึ้น เพื่อรองรับการเปลี่ยนแปลงของ Business ที่ต้องปรับเปลี่ยนตาม Product Owner ได้ตามรอบของแต่ละ Sprint และแน่นอนว่า Features ที่เพิ่มขึ้นจะไม่แถม Bug เข้ามาให้กวนใจ

คู่มือการการพัฒนาระบบภายในทีม (IT Development Manual) เป็นแหล่งรวมความรู้และข้อกำหนดในกระบวนการทำงานเพื่อให้ทุกคนทำความเข้าใจและปฏิบัติไปในทิศทางเดียวกัน ไว้ติดตามตอนถัดไปครับ Coming Soon!

--

--

Decha Kenthaworn
Gofive
Editor for

รักในการเขียนโค้ดและสนุกกับการเรียนรู้เทคโนโลยีใหม่ ๆ อยู่เสมอ ครอบครัว คือแรงบรรดาลใจ