ช่วงเย็น ๆ เห็นบทสัมภาษณ์ของ Uncle Bob จากเว็บของ TypeMock
อ่านครบ 3 จบ จึงสรุปเรื่องที่น่าสนใจไว้นิดหน่อย
อ่านไปขำไป
อ่านไปยิ้มไป
ลองมาดูกันว่ามีคำถามคำตอบอะไรบ้าง

ภาษาโปรแกรมที่ยังใช้อยู่ มีอะไรบ้าง ?

  • Java
  • Clojure
  • Go
  • Python
  • Ruby
  • C, C++

ส่วนเหตุผลลองไปอ่านกันดู
แต่ที่น่าสนใจคือ การเขียนหลากหลายภาษานั่นเอง
วันนี้ developer เขียนกี่ภาษา และ ทำไมถึงเขียน ?
ลองตอบกันดูนะ

Passion ใน programming มีอะไรบ้าง ?

  • Keeping the code simple
  • Keeping the code clean
  • Keeping the code well structured
  • Keeping the code well tested

ไม่น่าจะต้องแปลอะไร
แล้ว developer แต่ละคนมีอะไรบ้าง ?

อะไรที่ไม่ควรมีใน 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 กันเถอะครับ