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

สิ่งที่นักพัฒนามือใหม่ชอบทำผิดพลาด

$
0
0

การเริ่มต้นในสิ่งใหม่ ๆ มันคือความท้าทาย และยากเสมอ การเริ่มต้นสำหรับนักพัฒนาก็เช่นกัน ทั้งการเรียนรู้งาน ทั้งการเรียนรู้คน ทั้งการเรียนรู้ process ทั้งการเรียนรู้เครื่องมือ แต่ส่วนใหญ่มักทำสิ่งผิดพลาดต่าง ๆ ดังต่อไปนี้ เลยทำการสรุปไว้เพื่อเตือนตัวเอง ปล. แม้แต่นักพัฒนามือเก๋าและเก่าก็ยังพลาดเช่นกัน

ไม่ถามและชอบคิดไปเอง

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

แก้ไขปัญหาใหญ่ ๆ ในครั้งเดียว

เมื่อได้งานไปทำ ไม่ว่าจะมีขนาดเล็กหรือใหญ่ ก็มักจะลงมือทำไปเรื่อย ๆ แก้ไขไปเรื่อย ๆ เขียน code ไปเรื่อย ๆ ก็ให้เกิด spaghetti code หรือ arrow function (ไม่ใช่ JavaScript นะ) บางครั้งก็แก้ไขปัญหาวนไปวนมา แก้ตรงนั้นพังตรงนี้ ดังนั้นก่อนจะลงมือทำอะไร ขอให้ทำการวางแผนก่อน แบ่งปัญหาใหญ่ ๆ ออกเป็นปัญหาเล็ก ๆ แบ่ง component ใหม่ ๆ ออกเป็น component เล็ก ๆ จากนั้นจึงลงมือแก้ไขปัญหา เขียน code ในแต่ละส่วน จะทำให้ผลที่ได้ดีกว่าเดิมอย่างมาก แต่ปัญหาที่เจอคือ ไม่ชอบถาม ไม่สามารถแบ่งปัญหาออกมาได้ (Work break down) ดังนั้นจำเป็นต้องฝึกครับ

ประเมินเวลาได้แย่มาก ๆ

ในข้อนี้คิดว่าเป็นทุกคน เนื่องจากการประเมินที่แย่มี 2 แบบหลัก ๆ คือ ประเมินมากเกินไป (Over estomation) ประเมินน้อยเกินไป (Under estimation)
ปัญหาของการประเมินเวลาในโลกของการพัฒนา software นั้น มีสิ่งที่เราไม่รู้เพียบ ทั้งเรื่องคน process เครื่องมือ และสิ่งแวดล้อมรอบข้าง
ยิ่งเป็นนักพัฒนามือใหม่ การประเมินเวลามันยิ่งยาก ถ้าไม่ถาม ถ้าไม่เข้าใจ ยิ่งโดนกดดันไปอีก ยิ่งทรมานมาก ๆ บ่อยครั้งมักจะมีหัวหน้าที่ไม่ค่อยเข้าใจ เมื่อนักพัฒนาประเมินเวลาไปมากกว่าที่หัวหน้าคิด ก็จะโดนต่อรองจากคนที่ไม่ได้ทำ คำถามในใจคือ จะให้ตรูประเมินทำโล่ห์อะไร ? ดังนั้นสิ่งแวดล้อมรอบข้างมันสำคัญมากเช่นกัน
ปล. เราทำการประเมินงานระยะยาวเป็นปี ๆ กันได้อย่างไร ? สิ่งเหล่านั้นมันคือการโกหกใช่ไหม ?

ไม่เขียนชุดการทดสอบเลย

การเขียนชุดการทดสอบนั้น นักพัฒนาส่วนใหญ่ที่รู้มักบอกว่า มันดีนะแต่ ... ต้องใช้เวลาเยอะขึ้น ต้องใช้เวลาในการดูแลรักษา ยิ่งไปคุยกับหัวหน้าหรือฝ่าย management ที่ไม่เข้าใจ หรือสนใจแต่ส่งให้ทันตามแผน เรื่องของการเขียนชุดการทดสอบก็ตกไปโดยอัตโนมัติ และก็ไปเผางานในช่วงท้าย ๆ หรือบน production กันบ่อย ๆ แต่ก็ไม่จำหรือเรียนรู้ ดังนั้นสำหรับนักพัฒนามือใหม่ เมื่อไปเจอสิ่งแวดล้อมเช่นนี้ ก็ไม่ทำแน่นอน !! แต่ขอแนะนำว่า ให้ลองเขียนชุดการทดสอบเข้าไปในระบบงานที่ได้รับมอบหมาย ถ้า code เก่ามันทำได้ยาก ก็ให้ทำกับส่วนใหม่ ๆ ไม่เช่นนั้นก็ทำการปรับปรุง code ให้ทดสอบได้ง่าย อย่าเอาแต่พูดแต่บ่นว่าไม่ดีอย่างนั้นอย่างนี้ ลงมือทำให้มันดีขึ้นซะ แล้วคุณจะพบว่า มันช่วยเหลือเราอย่างมากมายตนคาดไม่ถึง
แต่ก่อนอื่นลงมือเขียน ทำก่อนนะ

ยังมีเรื่องอื่น ๆ อีกนะ ยกตัวอย่างเช่น

  • Over Engineer
  • ไม่ใช้ Version Control ที่ดี
  • ใช้ 3-party library/framework มากจนเกินไป
ขอให้สนุกกับการ coding นะครับ

Viewing all articles
Browse latest Browse all 1997

Trending Articles