Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

Developer ใช้เวลาส่วนใหญ่ไปกับการพยายามทำความเข้าใจ code

$
0
0

slide3_bg1

slide3_bg1 ในการพัฒนา software ถ้าถาม developer ว่า ใช้เวลาส่วนใหญ่ทำอะไร ? ส่วนใหญ่น่าจะตอบว่า เขียน code ไงล่ะ !! แต่เมื่อลองไปนั่งสังเกตการทำงานของ developer จะพบว่าใช้เวลาส่วนมากไปกับ การพยายามทำความเข้าใจกับ code จากนั้นก็ทำการแก้ไข code เดิม ส่วนที่น้อยมาก ๆ คือ การเขียน code ใหม่เข้าไป !! แสดงดังรูป 6a0120a85dcdae970b0120a86d7477970b-pi จากหนังสือ Implement Pattern ทำการอธิบายเกี่ยวกับค่าใช้จ่ายในการพัฒนา software ไว้ดังนี้
Total cost = develop cost + maintain cost โดยที่ maintain cost นั้นมาจาก Maintain cost = understand cost + change cost + test cost + deploy cost
  • Understand cost ถ้า code ที่เขียนขึ้นมามันสามารถอธิบายได้ดี เข้าใจได้ง่าย ดังนั้นน่าจะใช้ง่าย แก้ไขง่าย และลดค่าใช้จ่ายในการดูแล
  • Change cost ถ้าเราลดความซับซ้อน และ ซ้ำซ้อนของ code ลงไป มันก็จะทำให้เข้าใจง่าย แน่นอนว่ามันทำให้เราแก้ไขได้รวดเร็วขึ้น นั่นคือลดค่าใช้จ่ายในการดูแล
  • Test cost ถ้า code มันสามารถทดสอบได้ง่าย ยิ่งทดสอบได้แบบอัตโนมัติ แล้วจะลดค่าใช้จ่ายในการดูแล
  • Deploy cost ถ้าเราสามารถ deploy ระบบงานแบบอัตโนมัติได้ เช่นการนำแนวปฏิบัติ Continuous Delivery มาใช้แล้วจะลดค่าใช้จ่ายในการดูแล
ดังนั้นเราควรสร้างสมดุลระหว่าง develop cost และ maintain cost หรือพยายามทำให้ maintain cost ให้น้อยที่สุดเท่าที่จะทำได้ ด้วยการพัฒนา code ของระบบให้มีคุณภาพที่ดี

แต่เรากลับพบว่า code ของระบบงานส่วนใหญ่ มักจะมี maintain cost ที่สูงมาก !!

ทั้งเข้าใจได้ยาก ทั้งแก้ไขได้ยาก ทั้งทดสอบได้ยาก ทั้ง deploy ได้ยาก มันยังไงกันนะ รู้สึกแปลก ๆ กันไหม ? แสดงดังรูป maintenance_costs
และนี่คงเป็นสาเหตุว่าทำไม developer ใช้เวลาส่วนใหญ่ไปกับ การทำความเข้าใจกับ code ที่ developer เขียนขึ้นมาเอง !! คำถาม แล้วเราจะช่วยกันแก้ไขปัญหาเหล่านี้อย่างไรกันดี ?
Reference Websites http://readwrite.com/2013/04/25/how-software-developers-really-spend-their-time http://blog.codinghorror.com/when-understanding-means-rewriting/ https://github.com/cezarcoca/sonar-toxicity-chart/blob/master/README.md

Viewing all articles
Browse latest Browse all 1997

Trending Articles