shutterstock_196419674
นักพัฒนาทุกๆ คน กลัวเรื่อง การทำผิดพลาด
ดังนั้น นักพัฒนาทุกๆ คน จึงต้องทำบางสิ่งบางอย่าง
เพื่อป้องกัน หรือ หลีกเลี่ยงข้อผิดพลาดต่างๆ เหล่านั้น
แต่ถ้าเกิดเรายังทำผิดพลาดอีก
เราจะไม่อยาก หรือ ไม่พูดถึงความผิดพลาดนั้นอีกเลย

คำถามที่ต้องการให้ตอบดังๆ ในใจ
การทำผิดพลาด มันแย่มากนักหรือไง ?

ถ้าคุณทำบางสิ่งบางอย่างผิดพลาดขึ้นมา
ก็ให้ดูสิว่า มันเกิดขึ้นจากอะไรบ้าง
แล้วทำการแก้ไ ข และ เรียนรู้จากมันสิ !!
ไม่จำเป็นต้องไปหาคนผิดนะ

แต่แนวคิดแบบนี้
มันคือ วัฒนธรรมขององค์กร ทีม ที่จะต้องสร้างขึ้นมาล้วนๆ
ซึ่งจะต้องอนุญาตให้ทำผิดพลาดได้
แต่จะต้องเรียนรู้จากความผิดพลาดเหล่านั้น
และหาทางปรับปรุงเพื่อลดความผิดพลาดเหล่านั้นลงไปด้วยเสมอ

คุณกลัวอะไรจากการทำผิดพลาดบ้าง ?

สิ่งที่น่าสนใจ คือ ผลกระทบที่เกิดขึ้นจากความผิดพลาดมากกว่า
แต่ละสถานการณ์ ล้วนแตกต่างกัน

โดยทั่วไป เมื่อเกิดขึ้นผิดพลาดขึ้นมาแล้ว
ผลที่ตามมามันไม่ได้แย่มาก ตามที่เราคิดไว้ก่อนหน้านี้
เพียงทำการแก้ไขอย่างรวดเร็วเท่านั้นเอง !!

ส่วนตัวเราเองที่ทำผิดนั้น
มักจะได้รับความเจ็บปวดจากความกลัวที่เราคิดไปเองทั้งนั้น
ซึ่งคุณจำเป็นต้องเปลี่ยนแนวคิด หรือ โยนแนวคิดที่มีอยู่ทิ้งไปซะ

สิ่งที่แย่ไปกว่านั้น
ก็คือ เรามักจะไปโทษหรือต่อว่าคนอื่น (Blame)
หรือ มันคือการโยนความผิดไปให้ผู้อื่นนั่นเอง
ซึ่งขอให้หยุด และ เลิก ไปเลย
แต่เปลี่ยนให้กลับมาทำงานด้วยกัน ช่วยเหลือกัน จะดีกว่าเดิมเยอะ

เรามักจะได้ยินคำว่า Fail Fast !!

สิ่งสำคัญมากๆ คือ
ถ้าคุณทำผิดพลาด คุณจำเป็นต้องรู้ว่าคุณทำผิดพลาดสิ่งนั้นได้รวดเร็ว

ลองมองกลับไปสิว่า
ในปัจจุบัน คุณต้องใช้เวลานานเท่าไร กว่าจะรู้ว่าทำผิดพลาด ?

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

ลองมามองดูในโลกของการพัฒนา Software สิ

คำถาม
คุณจะรู้ว่า code ที่คุณเขียนมันไปทำให้ระบบที่เกี่ยวข้องพังเมื่อไร ?
ใช้เวลานานเท่าไร ถึงจะรู้ ?

คำตอบ
……. มอบพื้นที่ว่างให้คุณตอบ ……

หรือว่า product ที่เราพัฒนานั้น มันโดนใจลูกค้า หรือ ผู้ใช้งานไหม
คุณใช้เวลานานเท่าไร จึงจะรู้ว่าผู้ใช้ชอบ หรือ ไม่ชอบ ?

สิ่งที่คุณต้องมองในการออกแบบระบบคือ Design for Safe-to-fail
เพื่อทำให้คุณสามารถทดลองในสิ่งใหม่ๆ ได้ง่าย
และลดผลกระทบให้น้อยที่สุดเท่าที่จะทำได้

ดังนั้น คุณต้องเริ่มทำในสิ่งใหม่ๆ แล้ว
อย่ามัวแต่พูดคุยมากไป
เริ่มทำอยู่ในกรอบเวลาสั้นๆ และกลับมาวัดผลอย่างต่อเนื่อง
เพื่อหาทางแก้ไข และ ปรับปรุงต่อไป

บางคนแนะนำให้คุณลอง เฝ้าดู และ ฟัง จากปัญหา !! (Watch and Listen)

บ่อยครั้งในการเริ่มพัฒนา software นั้น
เราอาจจะเห็นว่า มีบางสิ่งบางอย่างที่ทำลงไปแล้ว มันจะเกิดข้อผิดพลาดแน่ๆ
ทั้งด้วยเทคโนโลยี และ วิธีการต่างๆ

แต่การจะไปห้ามไม่ให้ทำก็ใช่ที่
เพราะว่า มันจะไม่ช่วยอะไรทีม และ ตัวเราเองเลย !!

ดังนั้น ให้ลองปล่อยให้ลงมือทำไปก่อน
เพื่อให้เห็นความผิดพลาดจากการกระทำอย่างรวดเร็ว
แล้วทีมก็จะได้เรียนรู้ว่าสิ่งใดที่ดี และ ไม่ดี
ซึ่งทีมและตัวเราเอง จะเรียนรู้ แก้ไขและพัฒนาอย่างต่อเนื่อง
รวมทั้ง จะยอมรับฟังความคิดเห็นจากคนอื่นๆ ไปด้วย

สิ่งที่ชอบพูดกันมาก มันฟังดูเท่ คือ เรียนรู้จะความผิดพลาด (Learn from failure)

แน่นอนว่าเมื่อเกิดข้อผิดพลาด มันย่อมเป็นสิ่งที่สอนเรา
ซึ่งแสดงว่า ความผิดพลาดเป็นสิ่งที่ดี
แต่ก็อย่าให้มันเกิดซ้ำแล้วซ้ำเล่าในเรื่องเดิม หรือ บ่อยจนเกินไป

ผิดหนึ่งครั้งยังพอทน
ผิดสองครั้งยังพอให้อภัย
แต่ผิดสามครั้ง นี่มันน่า ….. หรือเปล่านะ

สุดท้ายแล้ว เรายังต้องเรียนรู้เพื่อลดความผิดพลาดลงไป

ความผิดพลาด มันเป็นส่วนสำคัญมากๆ ต่อการเรียนรู้
คุณสามารถทดลองสิ่งต่างๆ เพื่อทำให้ส่งมอบ software ได้รวดเร็วขึ้น
แน่นอนว่า ต้องมีความผิดพลาดเกิดขึ้น
แต่ต้องทำให้แน่ใจว่าสิ่งที่เราสร้างมัน safe-to-fail ด้วย

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

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

สุดท้าย คุณคือ มนุษย์ซึ่งพร้อมจะทำผิดพลาดอยู่อย่างเสมอ
แต่ความแตกต่างมันอยู่ที่ คุณจะเรียนรู็อะไรจากมันบ้าง ?

Screen Shot 2558-04-18 at 5.55.53 PM