วิถีคนโกไฟว์ กับการสร้างงานมาตรฐานภายในทีม ตอนที่ 1
ก่อนอื่นขอหยิบยกเนื้อหาบางส่วนในหนังสือ
"นิสัยการทำงานไม่ธรรมดาของโตโยต้า"
ซึ่งว่าด้วยเรื่อง งานมาตรฐาน (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 ติดตั้งไว้สำหรับดูภาพรวมทุกโปรเจคว่าโค้ดมีคุณภาพตามที่เราได้กำหนดไว้หรือยัง
สรุป การวางมาตรฐานการเขียนโค้ด (Coding Standards) ต้องอาสัยความร่วมมือกันในทีมปรับปรุงเปลี่ยนแปลงมาตรฐานของโค้ดให้ทันสมัยและเครื่องมือที่ใช้ไม่ได้เพิ่มความยุ่งยากในการทำงานแต่ต้องช่วยเพิ่มประสิทธิภาพการทำงานให้ดีและรวดเร็วมากยิ่งขึ้น เพื่อรองรับการเปลี่ยนแปลงของ Business ที่ต้องปรับเปลี่ยนตาม Product Owner ได้ตามรอบของแต่ละ Sprint และแน่นอนว่า Features ที่เพิ่มขึ้นจะไม่แถม Bug เข้ามาให้กวนใจ
คู่มือการการพัฒนาระบบภายในทีม (IT Development Manual) เป็นแหล่งรวมความรู้และข้อกำหนดในกระบวนการทำงานเพื่อให้ทุกคนทำความเข้าใจและปฏิบัติไปในทิศทางเดียวกัน ไว้ติดตามตอนถัดไปครับ Coming Soon!