ไม่ค่อยได้เขียนเรื่อง Software Development สักเท่าไหร่ (ทั้งที่จริงๆ เป็นเรื่องที่เดินสายพูด เดินสายบรรยาย สอน และถนัดที่สุดแล้วในบรรดาเรื่องทั้งหมด) แต่เมื่อคืนน้องในทีมพัฒนา Sticgo (http://www.sticgo.com) Startup ที่ผมเป็น Mentor อยู่ในโครงการ True Incube (http://incube.truecorp.co.th) ดันเอา Chart อะไรบางอย่างขึ้นใน Facebook แล้วพี่ Roofimon (www.roofimon.com) เข้ามาบอกเลย “บาป” แล้วก็งงว่ามันคือ Chart อะไร ผมก็เลยสัญญากับพี่รูฟไปว่าจะเขียนเรื่อง Chart ตัวนี้ใน Blog ด้วยความเป็นลูกผู้ชาย ก็เลยต้องรักษาสัญญาซะหน่อย
เป็นที่รู้และเข้าใจกันดี ว่าการพัฒนาซอฟต์แวร์ตัวหนึ่งมันไม่ใช่เรื่องเล็กๆ มันมีเครื่องไม้เครื่องมือมีกระบวนการมี Mindset อะไรหลายต่อหลายอย่างเอาไว้ให้เราใช้ในการช่วยพัฒนาซอฟต์แวร์
Mindset โบราณที่ลอก Metaphor มาจากการก่อสร้าง หรือที่เรียกว่ากระบวนการแบบ Waterfall ก็มีเครื่องมือหลากหลาย และตัวหนึ่งที่เราต้องเจอกันมาตลอดก็คือ “Gantt Chart” ซึ่งไอ้เจ้า Gantt Chart ตัวนี้เป็นเครื่องมือนำ “แผนการทำงาน” มาวางต่อเนื่องบน Timeline เพื่อดูว่าเราวางแผนการทำงานอย่างไร อะไรต้องทำก่อนทำหลังอะไร แล้วเวลาที่จะใช้คือประมาณเท่าไหร่ ฯลฯ
สิ่งที่ Gantt Chart ตอบได้อย่างชัดเจนก็คือ การให้เห็นแผนการทำงาน ระยะเวลาของงาน และปริมาณงานที่เสร็จไปแล้ว ซึ่งนี่คือสิ่งที่จำเป็นมากในการทำงานอะไรก็ตามในโลกความเป็นจริงที่เราต้องอยู่กับชาวบ้าน ทำงานกับคนอื่น (ลูกค้า เจ้านาย ฯลฯ) เพราะว่ามันจะมีความถามเราตลอดเวลากับคำถามต่อไปนี้ “แล้วจากนี้จะทำอะไร ต่อจากนั้นทำอะไร ใช้เวลาประมาณเท่าไหร่ เหลืองานอีกเยอะมั้ย เสร็จไปแล้วเท่าไหร่” ฯลฯ (ซึ่งพวกนี้จะเกี่ยวข้องกับค่าจ้างเราด้วยนะ)
แน่นอนว่า ในโลกบางใบ คนหลายคนต้องการที่จะเห็นรายละเอียดทั้งหมดเหล่านี้ Up-Front ซึ่งหมายความว่าเห็นรายละเอียดของแผนการดำเนินการ ระยะเวลา และงบประมาณทั้งหมดก่อนที่จะเริ่มดำเนินการ ซึ่งในขณะที่แนวคิดแบบนี้ใช้ได้กับงานบางประเภท มันกลับไม่เหมาะเอาซะเลยกับการพัฒนาซอฟต์แวร์ โดยเฉพาะอย่างยิ่งการพัฒนาซอฟต์แวร์ที่ “เป็นของใหม่ ไม่มีใครทำมาก่อน” ซึ่งมันมี Unknown เยอะ (ถ้าเป็นโปรแกรมประเภท Data Entry ธรรมดาๆ นี่อีกเรื่อง อันนี้พอจะประมาณได้จากประสบการณ์ แต่ต้องมีประสบการณ์เยอะพอที่จะทำได้นะ — บอกตรงๆ ว่าโดยทั่วไป ต่อให้เป็นผมหรือเก่งกว่าผมก็มองเห็นทุกอย่าง Up-Front ขนาดนั้นไม่ได้หรอก)

Continue reading