ซอฟต์แวร์กับแท็กซี่

Chris
Chris’ Dialogue
Published in
1 min readFeb 1, 2020

ผมพบว่าการดูแลบริหารงานซอฟต์แวร์และโปรแกรมเมอร์มันมีส่วนที่คล้ายกับการนั่งแท็กซี่อยู่

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

เราไม่นิยมที่จะบอกแท็กซี่แบบนี้

ผู้โดยสาร: พี่โชเฟอร์่เลี้ยวขวาที่แยกหน้า ตรงไปข้างหน้า พี่จะเจอแยกทั้งหมด 7 แยก อันนั้นให้ตรงหมดเลย พอแยกที่ 8 พี่ก็เลี้ยวซ้าย ถัดมาตรงไปอีก 3 แยก เจอสามแยก ตรงนั้นเลี้ยวขวา ไปอีก 200 เมตร จอดรถ

คนขับ: ตกลงพี่จะไปที่ไหนนะ

ผู้โดยสาร: ก็ขับตามที่บอกนี่แหละครับ ถึงตรงไหนก็ตรงนั้น

คนขับ: …….

เพราะเราเข้าใจว่าโชเฟอร์นั้นเขารู้ทางที่ขับดีแล้ว อาจจะดีกว่าเราเสียอีก ดังนั้นเราบอกแค่เป้าหมายพอ

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

ถ้าเราสั่งโปรแกรมเมอร์ทำซอฟต์แวร์แบบสั่งแท็กซี่ที่ละแยก

คนบริหาร: วันนี้ทำโมดูลนี้ พรุ่งนี้ทำโมดูลนั้น สัปดาห์หน้าโมดูลโน้น

โปรแกรมเมอร์: ตกลงเราจะสร้างอะไรกันแน่นะ

คนบริหาร: ก็ทำตามที่บอกและ เดี๋ยวเสร็จออกมาก็รู้เอง

โปรแกรมเมอร์เองก็จะเหวอพอๆ กับคนขับแท็กซี่แหละครับ

การเข้าใจเป้าหมายใหญ่ สมมติฐานที่ตั้งไว้ หรือปลายทางรวมของงาน เป็นสิ่งสำคัญมากสำหรับโปรแกรมเมอร์และช่วยให้ทำงานง่ายขึ้นมาก

การที่ไม่รู้ปลายทาง ไม่เข้าใจสมมติฐานที่ตั้งไว้ ทำให้ทำงานยากมาก

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

แต่ในทางกลับกัน บางครั้งโปรแกรมเมอร์ก็พาโปรเจ๊กต์หลงทางได้ พาไปทางที่รถติดมาก ทางที่ซ่อมอยู่ ทางที่อ้อมได้ ไม่ต่างอะไรกับแท็กซี่

แต่ทางแก้ปัญหามันไม่ใช่การที่ลงมาสั่งทีละ 200–300 เมตร สั่งทีละแยกแล้วบอกว่า พี่ไม่ต้องสนใจหรอกว่าผมจะไปลงไหน พี่ขับตามผมบอกพอละ เดี๋ยวหลง

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

ในจุดนี้ ผมคิดว่ามันเหมือนการพัฒนาซอฟต์แวร์มาก

สุดท้าย การมีสมมติฐาน เข้าใจว่าสร้างซอฟต์แวร์ไปทำไม ปลายทางอยู่ที่ไหน เป็นสิ่งสำคัญมาก

เพราะงานพัฒนาซอฟต์แวร์ เจออุบัติเหตุในเส้นทางหลังแล้วต้องพิจารณาเส้นทางสำรอง บ่อยมากกว่าแท็กซี่เยอะครับ เจอแทบระดับวันต่อวัน

แล้วมีเพียงสมมติฐานปลางทางเท่านั้น ทำให้สามารถเข้าใจว่าเส้นทางรองไหนใช้ได้บ้าง เพื่อสำเร็จเป้าหมายปลายทางของงานพัฒนาซอฟต์แวร์

เราไม่สั่งงานพัฒนาซอฟต์แวร์ทีละ 100 เมตร โดยไม่อธิบายเป้าหมายปลายทางกันนะครับ อย่าเลย ไม่เวิร์คหรอก จริงๆ นะ

--

--

Chris
Chris’ Dialogue

I am a product builder who specializes in programming. Strongly believe in humanist.