บังคับคลีนโค้ดทำไมฟระ ?

โค้ดคือส่วนหนึ่งที่ทำให้ซอฟต์แวร์เกิดขึ้นมาได้ และ Developer หลายๆคนก็ไม่ได้สนใจคุณภาพของโค้ดที่ตัวเองเขียนสักเท่าไหร่ เพราะหลายคนคิดว่า "ถ้าส่งงานเก็บเงินได้ก็ถือว่าเป็นอันจบกัน" (น่าเสียดายงานส่วนใหญ่ในประเทศอุ๊งๆของเราเป็นแบบนี้) และจะคิดแบบนั้นก็ไม่ได้ผิดอะไรนะ แต่แมวน้ำอยากเตือนไว้ว่า

แนวคิดลักษณะนี้มันจะทำลายอาชีพ Programmer ของคุณในระยะยาว โดยตัวคุณจะทำงานแบบเด็กจบใหม่ทำกัน และมันจะบ่มนิสัยการเขียนโค้ดที่มืออาชีพเขาไม่ทำกันอีกด้วย !!

เพราะแนวคิดนี้มันจะทำให้เรามุ่งเน้นไปที่ "การสร้างซอฟต์แวร์เพื่อเอาไปขาย" และเมื่อขายได้ก็ไปสร้างตัวใหม่เพื่อขายต่อไปเรื่อยๆ ดังนั้นมันจะ "มุ่งไปที่ความเร็วในการผลิตซอฟต์แวร์" นั่นเอง

แต่เชื่อไหมว่า "ตัวชีวัดการอยู่รอดของบริษัทซอฟต์แวร์กลับไม่ใช่การสร้างซอฟต์แวร์" แต่มันเป็นเรื่องการ "ปรับปรุงรักษา" ต่างหาก ซึ่งเรื่องนี้แหละทำให้บริษัทที่ไม่ได้เข้าใจเรื่องนี้ส่วนใหญ่จะหายไปจากวงการ (ผลวิจัยคือ 80% ของบริษัทซอฟต์แวร์ที่ไม่เข้าใจเรื่องนี้จะปิดตัวลง)

💖 หัวใจหลักของซอฟต์แวร์คืองานเซอร์วิส

ถ้าเราแอบไปดูบริษัทใหญ่ๆที่ทำซอฟต์แวร์ที่เรารู้จักเราจะพบว่า รายได้หลักของบริษัทจะเกิดจากการเซอร์วิสซอฟต์แวร์ตัวเดิมๆ มากกว่าการสร้างซอฟต์แวร์ตัวใหม่ เพราะรายได้ในระยะยาวของซอฟต์แวร์คือการเซอร์วิสโดยเน้นที่กินยาวๆนั่นเอง (Microsoft, Google, Facebook แม้ว่าจะมี product ใหม่ๆออกมา แต่ตัวที่เป็นพระเอกทำเงินก็ตัวเดิมๆแหละ)

🤔 แล้วทำไมบริษัทส่วนใหญ่ถึงไม่รอด ?

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

🤔 ทำไงถึงจะแก้นิสัยพวกนี้ได้ ?

ลองหันมารักโค้ดของคุณดูดิ ! (ผมไม่ได้เมานะ) เพราะโค้ดมันเป็นกระจกสะท้อนตัวคุณตลอดเวลาแหละ โค้ดที่มีระเบียบ มี consistency ที่ดี มีการออกแบบ และ มีการใส่ใจที่ดี มันก็บ่งบอกได้ในระดับหนึ่งว่าคุณเป็นคนยังไง (บางที่แค่เห็นโค้ดก็รับเขาทำงานแล้ว เพราะ โค้ด = ตัวคุณ) หรือให้ลองคิดง่ายๆว่า การเขียนโค้ดมันก็เหมือนกับการเขียนนิยายดีๆซักเรื่องหนึ่ง ที่รอคนมาเปิดอ่าน แค่เราใส่ใจ ใส่ความรู้สึกว่าจะทำยังไงให้มันดีขึ้นให้ได้มากกว่านี้ เชื่อแมวน้ำตัวนี้เถอะเพียงแค่เรามี Mindset แบบนี้ โค้ดในปีนี้กับปีหน้ามันจะต่างกันจนคิดว่าเป็นคนละคนเขียนเลย เพราะ มีแต่ Professional เท่านั้นแหละที่ใส่ใจรักในลูกที่เขาสร้างขึ้นมา และสิ่งที่ได้มันจะเกิดขึ้นอัตโนมัติทุกอย่าง เหมือนกับการหายใจเลย

บทความสอนการจัดการโค้ด

แนะนำให้อ่าน Clean Coder Blog เป็น blog ของหนึ่งในมหาเทพของวงการซอฟต์แวร์ของโลก ที่สอนในเรื่องการออกแบบ และอื่นๆอีกมากมาย ซึ่งเรียกได้ว่าถ้าอยากเป็น Professional ในวงการก็ต้องเรียนรู้จากคนนี้แหละ

https://www.monkeyuser.com