ช่วงเย็น ๆ เห็นบทสัมภาษณ์ของ Uncle Bob จากเว็บของ TypeMock
อ่านครบ 3 จบ จึงสรุปเรื่องที่น่าสนใจไว้นิดหน่อย
อ่านไปขำไป
อ่านไปยิ้มไป
ลองมาดูกันว่ามีคำถามคำตอบอะไรบ้าง
ภาษาโปรแกรมที่ยังใช้อยู่ มีอะไรบ้าง ?
- Java
- Clojure
- Go
- Python
- Ruby
- C, C++
Passion ใน programming มีอะไรบ้าง ?
- Keeping the code simple
- Keeping the code clean
- Keeping the code well structured
- Keeping the code well tested
อะไรที่ไม่ควรมีใน programming เลย ?
ตอบสั้น ๆ ว่า SQL ถ้าจะให้หนักกว่าก็ต้อง Store procedure นะสิ่งสำคัญที่ developer ต้องมีคืออะไร ?
ตอบสั้น ๆ อีกว่า Care คือความใส่ใจใน code ที่เขียนขึ้นมา ไม่ใช่รีบเร่งเขียนให้มันเสร็จ ๆ ไป ซึ่งแทนที่จะเร็วกลับทำให้ช้ากว่าเดิมอย่างมาก จากนั้นต้องอดทน และ ความเป็นมืออาชีพในสิ่งที่ทำ เพราะว่ามันคืออาชีพของเรา สิ่งที่ต้องตระหนักคือ เราเขียน code เพื่อให้คนอ่านเข้าใจได้ง่าย และง่ายต่อการเปลี่ยนแปลง โดยคนที่มีความสามารถเหล่านี้กลับมีน้อยมาก ๆ เป็นเรื่องที่แปลกแต่จริงนะจะโน้มน้าวให้ Manager เข้าใจหรือยอมรับกับ TDD ?
ตอบแบบตรง ๆ คือ ไม่ต้องทำ เพราะว่ามันไม่ใช่หน้าที่อะไรของ Manager เลย ต้องมาเข้าใจ หรือ รู้ว่าคุณทำอะไร แต่มีคุณเท่านั้นที่รู้และเข้าใจว่า ถ้าต้องการให้งานหรือ code ออกมาดี จะต้องทำอะไรบ้างคำถามจริง ๆ ที่ต้องถามคือ จะโน้วน้าวคนในทีมหรือเพื่อร่วมงานของคุณมาเขียน unit test หรือปฏิบัติตามแนวคิด TDD อย่างไรมากกว่า ?ถ้าคุณเชื่อและลงมือทำแล้ว แต่ไม่มีใครเชื่อหรือทำตามคุณเลย หลาย ๆ คนก็จะเลิกทำ !! แต่สิ่งที่คุณต้องทำคือ อย่าละทิ้งแต่ให้ทำต่อไปเรื่อย ๆ ถ้าคุณอยู่ในทีมที่ไม่เขียนและไม่เห็นคุณค่าของมัน สิ่งที่ควรทำคือ เปลี่ยนทีมดีกว่า แต่ถ้าคนส่วนใหญ่ในทีมเห็นคุณค่าและปฏิบัติแล้ว คนบางส่วนไม่สนใจ สิ่งที่ควรทำคือ เอาคนที่ไม่สนใจออกไปจากทีม
สำหรับการฝึกฝน TDD ชอบโจทย์หรือ Kata อะไรบ้าง ?
- Video Store
- Bowling game
- Prime factor
- Word wrap
- Stack
สิ่งที่ขาดไม่ได้สำหรับการทำงานในแต่ละวัน ?
Unit testing framework ดี ๆ กับ IDE แจ่ม ๆ เช่น Jetbrainsมีคำแนะนำแจ่ม ๆ อะไรบ้างที่เคยได้รับ ?
เข้าใจ business ของสิ่งที่กำลังทำก่อน จะทำให้เขียน code และแก้ไขปัญหาได้ดีและตรงมากยิ่งขึ้น ไม่ใช่แค่เลือกภาษาแจ่ม ๆ และเทคโนโลยีแจ่ม ๆ เพื่อสนองความต้องการของตนเองสุดท้ายแล้ว เหตุใดคุณภาพในอุตสาหกรรมการพัฒนา software มันจึงแย่เอามาก ๆ ?
เลือกวิธีการผิด คิดว่าสิ่งที่เลือกจะทำให้ไปได้เร็วหรือพัฒนาได้เร็ว แต่คิดผิด เราไม่สามารถไปได้เร็ว ถ้าทำแบบรีบเร่ง แต่เราสามารถไปได้เร็ว ถ้าคุณสนใจและใส่ใจในสิ่งที่ทำ ทำให้มันออกมาให้ดีตามแนวคิดของ TDD คือ ทำดีดี !! อ่านจบแล้วก็เขียน code กันเถอะครับ