ReduceReuseRecycle

คำว่า Reduce หมายถึงอะไร ?

Reduce คือ วิถีทางสำหรับการกำจัดของที่มันแย่ๆ หรือ ขยะ ออกไป
เพื่อทำให้สิ่งแวดล้อมที่คุณอยู่นั้นมันดีขึ้น

สิ่งที่น่าสนใจในโลกของการพัฒนา software ล่ะ มีอะไรบ้าง ?

  • ของที่มันแย่ๆ หรือ ขยะ คืออะไร ?
  • มันส่งผลกระทบอะไร อย่างไรบ้าง ?
  • แล้วจะจัดการมันอย่างไร ?
  • และจะควบคุมมันอย่างไร ?

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

แล้วใน code ของเราล่ะ มีขยะอะไรบ้าง ?

  • Code ที่ไม่ถูกใช้งาน
  • Log ต่างๆ ที่เก็บไว้ แต่ไม่สามารถนำมาใช้งานได้เลย
  • Comment ต่างๆ ใน code
  • การทดสอบ หรือ unit test ที่คุณไม่เข้าใจมันเลย
  • มีระบบ Continuous Integration ที่แดงอยู่ตลอดเวลา และ ใครๆ ก็ไม่สนใจ
  • คุณไม่มั่นใจในการ estimate ส่วนต่างๆ

แล้วเราจะจัดการอย่างไรล่ะ ?

วิธีการหนึ่งที่ขอแนะนำก็คือ การเรียนรู้และฝึกฝน
คำว่า 3R => Reduce, Reuse และ Recycle
มีคำอธิบายดังนี้

Reduce

ลดการทำงานลง ให้เหลือน้อยๆ ทำเท่าที่จำเป็นเท่านั้น
ทำในสิ่งที่มีคุณค่าต่อทีม และ ลูกค้า เท่านั้น

Reuse

ลดการทำงานเดิมๆ ซ้ำๆ ลงไป (Don’t Repeat Yourself)
ค่อยๆ ลดลงไปเรื่อยๆ เริ่มจากจุดที่มีปัญหา หรือ ทำซ้ำอยู่บ่อยๆ
แล้วคุณจะพบว่า มันจะช่วยคุณได้อย่างมาก
และคุณจะไม่กลับไปทำงานที่ซ้ำๆ อีกเลย

Recycle

ก่อนที่จะสร้างอะไรขึ้นมา คุณมักจะถามตัวเองว่า
เราเคยสร้างอะไรที่คล้ายๆ หรือ เหมือนกันหรือเปล่านะ ?
เราสามารถนำมันมาใช้ได้ไหมนะ ?
สิ่งนั้นมันมี dependency เยอะไหม ?
สิ่งนั้นมันดีไหม หรือมีปัญหาอะไร ?

ดังนั้น
ถ้าสิ่งที่คุณจะนำมา Recycle ใช้นั้นยังมีปัญหาอยู่
แนะนำว่า จงทำให้มันดีขึ้น เช่น

  • แยกให้ทำงานแบบ modular
  • ให้งานสิ่งเดียวกันอยู่ด้วยกัน

ซึ่งนั่นถึงจะเรียกว่าเป็นการ Recycle ที่แท้จริง
ดังนั้นคุณจำเป็นต้องฝึก และ ฝึก และ ฝึก
เพื่อทำให้มันดีขึ้น และ ง่ายขึ้น อยู่อย่างเสมอ และ ต่อเนื่อง

ดังนั้น ลองมาฝึกใช้ 3R=> Reduce, Reuse และ Recycle กันดูครับ

Tags:,