คิดว่า developer หลาย ๆ คนน่าจะรู้จักกับ 5ส หรือ 5S
5S was developed in Japan and was identified as one of the techniques that enabled Just in Time manufacturingซึ่งประกอบไปด้วย
- Seiri หรือ Sort/Clearing/Classify หรือ สะสาง
- Seiton หรือ Systematic Arrangement/Streamline/Simplify/Configure หรือ สะดวก
- Seiso หรือ Shine/Cleanliness/Clean and check หรือ สะอาด
- Seiketsu หรือ Standardize/Conformity หรือ สร้างมาตรฐาน
- Shitsuke หรือ Sustain the discipline/Custom and practice หรือ สร้างนิสัย
- Clearing
- Configure
- Clean and Check
- Conformity and finally
- Custom and practice
เริ่มต้นด้วยสะสาง
คือการแยกส่วนที่จำเป็นออกจากส่วนที่ไม่จำเป็น จากนั้นลบของที่ไม่จำเป็นทิ้งไปซะ โดยมีขั้นตอนดังนี้- การสำรวจตรวจดู
- การแยกแยะ
- การลบหรือขจัดทิ้งไป
- การลบ code ที่ไม่ถูกใช้งานออกไป
- การลบ library ที่ไม่ถูกใช้งานออกไป
- การลบ software ที่ไม่ถูกใช้งานออกไป
ต่อมาคือ สะดวก
เป็นการจัดวางจัดเรียงสิ่งต่าง ๆ ในที่ทำงานให้เป็นระบบ เพื่อให้สะดวกและปลอดภัยต่อการหยิบจับหรือนำไปใช้งาน โดยมีขั้นตอนดังนี้- กำหนดก่อนว่าสิ่งที่จำเป็นต่อการทำงานมีอะไรบ้าง
- ทำการแบ่งเป็นกลุ่มหรือหมวดหมู่
- ทำการจัดเก็บให้เป็นระบบระเบียบ
- สิ่งใดใช้งานบ่อย ๆ ก็ย้ายให้อยู่ใกล้ ๆ มือ
ต่อมาคือ สะอาด
เป็นการทำความสะอาดเครื่องไม้เครื่องมือและพื้นที่การทำงาน รวมทั้งการดูแลบำรุงรักษาระบบด้วย โดยมีขั้นตอนดังนี้- ระบุพื้นที่
- หาและกำจัดต้นเหตุของความสกปรก
- ทำความสะอาด
หรือ code ที่เขียนขึ้นมานั้นมัน clean หรือยัง ถ้ายังไม่รู้ห็ให้ไปอ่านเรื่อง Clean code เพิ่มเติมนะหรือ code ที่เขียนขึ้นมานั้น ทำการนำไปรวมกับคนอื่น ๆ ในทีมหรือยัง ดังนั้นเรื่องของ Continuous Integration จึงต้องถูกนำมาใช้งาน หรือ environment ต่าง ๆ ในการพัฒนา ทั้งเครื่องของ developer และ server ยังคงทำงานได้ดี มี software ตรงกัน
ต่อมาคือเรื่อง สร้างมาตรฐาน
เป็นรักษามาตรฐานความเป็นระบบระเบียบให้คงอยู่ตลอดไป เช่น ไม่มีของที่ไม่จำเป็นอยู่อีกต่อไปแล้ว ไม่มีความรก ไม่มีความสกปรก หลังจากที่สะสาง และ ทำความสะอาดไปแล้วนะ ถ้ามองมาในการพัฒนา software มีอะไรบ้าง ?- การนำ framework/library มาใช้งาน
- การนำ design pattern มาใช้งาน
- การพูดคุยในภาษาที่ทุกคนเข้าในร่วมกัน
- เอกสารต่าง ๆ ควรอยู่ในที่ที่ทุกคนรู้ และ เข้าใจตรงกัน เช่น Code branching, Wiki, Task, Bug เป็นต้น
สุดท้ายคือ สร้างนิสัย
ทุกสิ่งทุกอย่างมันจะยั่งยืนได้นั้น ไม่ใช่มาจากการบังคับหรือการทำตามกฏ แต่มันต้องออกมาจากนิสัยของคนจริง ๆ นั่นคือต้องออกมาจากจิตสำนึกที่ดี นั่นคือต้องออกมาทัศนคติที่ดี ถ้ามองมาในการพัฒนา software มีอะไรบ้าง ?- ก่อนเขียน code ต้องเขียนชุดการทดสอบก่อนเสมอ (Unit test และ TDD)
- การทดสอบอย่างต่อเนื่องและรวดเร็ว เพื่อทำให้ได้ feedback กลับมาอย่างรวดเร็ว
- การทำ code review อย่างต่อเนื่อง
- การปรับปรุง code อย่างต่อเนื่อง
- การเขียน Unit test สามารถดูค่า code coverage เพิ่มเติมได้อีกด้วย
- มีการ training และแบ่งปันความรู้ภายในทีมและองค์กร
ยังไม่พอนะ ยังไม่สิ่งอื่น ๆ อีกเช่น Safety, Security และ Satisfaction อีก แต่พอเท่านี้ก่อนดีกว่า
มีคำถามว่าระหว่าง 5ส หรือ 7ส ดี ?
ตอบง่าย ๆ คือ ไม่ว่าจะอะไรก็ตาม เป้าหมายมันคือ พยายามลดขั้นตอนให้เหลือน้อยที่สุดนะครับ แต่ให้ได้ผลที่มากที่สุด นั่นคือการสร้างนิสัยและทัศนคติของคน เพื่อให้เกิดผลอย่างยั่งยืนต่อไปปล. 5ส ไม่น่าจะเป็นการจัดเก็บโต๊ะและเอกสารเข้าตู้เมื่อมีคนมาตรวจนะ หรือต้องมีคนคอยเฝ้าต้นทางว่าผู้ตรวจจะมาหรือยัง แบบนี้มันคือ การทำแบบผักชีโรยหน้า ซึ่งมันไม่ยั่งยืนเลยนะ !!