เป็นไปได้ไหม ที่จะเขียน Quality Code ภายใต้เวลาอันจำกัด

04-พ.ค.-18

คัมภีร์เทพ IT

เมื่อไม่นานมานี้ Joost Visser ผู้เขียนบทความนี้ ได้มีโอกาสเข้าร่วมงาน Blockchain Hackathon ที่จัดอย่างยิ่งใหญ่ระดับโลก และเขาก็ได้เรียนรู้เกี่ยวกับ ความเป็นไปได้ที่ Programmer จะเขียน Quality Code ภายใต้ความกดดันโดยเฉพาะ “ในเวลาที่จำกัดมากๆ” เราจะได้ประโยชน์อะไรบ้างจากเรื่องนี้ ลองอ่านบทความนี้ดูครับ

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

การลดความสำคัญในเรื่องคุณภาพ

การลดความสำคัญในเรื่องคุณภาพ เป็นสิ่งที่ Coder มักตัดสินใจทำทั้งๆ ที่ตนเองก็รู้ตัว เรามักเรียกสิ่งนี้ว่า “Technical Debt” นั่นหมายถึง การทำแค่ให้มันผ่านไปก่อน แต่สุดท้ายอาจต้องกลับมา Refactor อีก และไม่ว่าคุณจะทำไปโดยรู้ตัวหรือไม่ แต่เมื่อไรที่ลดความสำคัญในเรื่องคุณภาพ เราก็มักจะไม่ค่อยกลับมาแก้ไขมัน ในอีกทางหนึ่งมันทำให้คุณต้องพยายามมากขึ้น เพราะต้องกลับมาทำความเข้าใจ Code เก่าที่เขียนไว้ หรือเราเขียน Code เพิ่มเข้าไปแต่กลับยุ่งเหยิงกว่าเดิม เมื่อคุณภาพ Code ลดลงมากจนจุดหนึ่ง ก็จะไม่สามารถแก้ไขได้ อาจเพราะ ไม่มีเวลา ไม่มีงบประมาณ ไม่มีการ Support ใน Feature ที่หยุดชะงักมานาน จนสุดท้าย การรีบ Coding ให้เสร็จเร็วมาก(เกินไป) ก็อาจกลับมาทำร้ายตัวเอง

เราสามารถรักษาความเร็วไปพร้อมกับสร้างคุณภาพได้หรือไม่

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

1. มี Guideline ที่ชัดเจน ซึ่งทีมงานจะมีส่วนร่วมในการตัดสินใจเมื่อ Code มีคุณภาพสูงพอที่จะ Merge และดำเนินการขั้นต่อไป (คุณสามารถอ่านเพิ่มเติมจากหนังสือ Building Maintainable Software ของ O'Reilly ได้)

2. มี Feedback Mechanism ที่ตัดสินใจได้ว่า Code นั้นเป็นไปตาม Guideline หรือไม่ และให้ข้อมูลมากเพียงพอเพื่อให้เราสามารถปฏิบัติตามได้อย่างรวดเร็ว

ด้วยองค์ประกอบเหล่านี้ ปัญหาเรื่องคุณภาพก็จะลดลงและถือเป็นการตัดไฟตั้งแต่ต้นลมด้วย การให้คสามสำคัญในเรื่องคุณภาพ Code ตั้งแต่ต้น มันจะส่งผลดีกลับคืนให้คุณเป็นร้อยๆ เท่าในภายหลัง

ผลการแข่งขันจากงานนี้

  • มี 19 จาก 63 ทีม ที่ทำคะแนนได้ 10 คะแนนเต็ม ซึ่งทีมเหล่านี้ได้พิสูจน์ให้เห็นแล้วว่า การเขียน Code ที่มีคุณภาพสูงภายใต้ความกดดันด้านเวลา “เป็นสิ่งที่เกิดขึ้นได้”
  • ในระหว่างแข่งขัน มีหลายทีมที่นำเอา Feedback ที่ได้รับจาก Better Code Hub (ที่สร้างขึ้นเพื่องานนี้โดยเฉพาะ) มาใช้ด้วย ไม่เพียงช่วยรักษาระดับคุณภาพของตนเอง แต่ยังมีการปรับปรุงคุณภาพให้ดีขึ้นอีกด้วย
  • ลองดูสิ่งที่พวกเขาทำสิ

สิ่งที่ได้เรียนรู้จากงานนี้

มาดูสิ่งที่ Joost ได้รู้ จากการเป็นผู้ Support ส่วนหนึ่งให้แก่เหล่า Blockchaingers Hackathon ในครั้งนี้กัน

  • การควบคุมคุณภาพของ Code ไม่จำเป็นต้องทำให้ยุ่งยาก : Feedback ที่ Developer ได้รับจาก Better Code Hub มีความกระชับและตรงประเด็น อย่างในงานนี้ ขึ้นสัญลักษณสีเขียว ก็ผ่าน คุณสามารถทำขั้นต่อไป แต่ถ้าเป็นสีแดงคุณต้องหาทางแก้ไขปัญหาหรือปรับปรุงให้ดีจนผ่าน (สีเขียว) ก่อนที่จะดำเนินการต่อ
  • การควบคุมคุณภาพของ Code ไม่ได้ทำให้คุณทำงานช้าลง แต่กลับทำให้เร็วขึ้น : การที่ผู้แข่งขันมีการ Action ทันทีที่ได้รับ Feedback จาก Better Code Hub แทนที่จะรอให้เกิดปัญหาใหญ่ก่อนแล้วค่อยมาแก้ไขภายหลังนั้น ที่จริงมันช่วยให้การทำงานของคุณผ่านไปได้อย่างรวดเร็ว
  • การตั้งเป้าหมายที่ชัดเจนและบรรลุเป้าหมายในเรื่องคุณภาพถือเป็นรางวัลและเป็นตัวกระตุ้นที่ดี : เมื่อสามารถบรรลุเป้าหมายที่ตั้งไว้ได้ รวมทั้งทุกคนก็สามารถสังเกตความคืบหน้าได้ ทีมก็จะได้รับพลังงานด้านบวกในการควบคุมคุณภาพมากยิ่งขึ้น
  • Code ที่มีคุณภาพสูง จะช่วยให้คุณมีพื้นฐานการเขียน Code ที่เร็วขึ้น (หากเข้าร่วม Hackathon ในครั้งถัดไป) : ในขณะที่มีบางทีม ล้มเลิกที่จะพัฒนางานและตนเอง แต่ยังมีหลายทีมที่ใช้งาน Hackathon เป็นจุดเริ่มต้นในการเริ่มทำอะไรใหม่ๆ ใน Product ใหม่ๆ เพราะ Code ที่มีคุณภาพสูงจะช่วยให้เรามุ่งหน้าไปในทิศทางที่ถูกต้อง

ที่มา:  https://hackernoon.com/

 

 

รับตำแหน่งงานไอทีใหม่ๆ ด้วยบริการ IT Job Alert

 

อัพเดทบทความจากคนวงในสายไอทีทาง LINE ก่อนใคร
อย่าลืมแอดไลน์ @techstarth เป็นเพื่อนนะคะ

เพิ่มเพื่อน

 

บทความที่เกี่ยวข้อง