3ความต้องการที่ทำคนโบราณไม่ได้ใช้ “AGILE”

นับตั้งแต่วันที่โทรทัศน์เครื่องแรกถือกำเนิดขึ้น
มันต้องใช้เวลากว่า40ปี จึงทำให้คนสามารถเป็นเจ้าของได้ครบ1พันล้านคน (1927-1968)
– Search Engine ชื่อดังก้องโลกที่รู้จักกันในนาม Google
กลับใช้เวลาเพียง 12 ปี จึงมีผู้คนใช้ถึง 1 พันล้าน (1998-2010)
– Social Media ชื่อดังที่ไม่ใช่เจ้าแรกอย่าง Facebook
ก็ใช้เวลาเพียง 8 ปีจึงมีผู้ใช้ครบ 1 พันล้านคน (2004-2012)
– และ Andriod ซอฟแวร์ที่มีคนรู้จักเกินค่อนโลก
ก็ใช้เวลาเพียง 5 ปีในการที่มีผู้ใช้ครบ 1พันล้านคน (2008-2013)
โดยพวกที่ครบ1พันล้านคนในช่วงหลัง Y2K
ล้วนมี Software เป็น Core หลักของผลิตภัณฑ์
ซึ่งแนวคิดที่นิยมนำมาใช้พัฒนาซอฟแวร์ในยุคปัจจุบันคือ
“AGILE”
หากจะพูดให้เข้าใจกันง่ายๆไม่ต้องเข้าเรื่องเทคนิคมากนัก
Agile เริ่มมีให้รู้จักและเห็นผ่านหูผ่านตาคนไทย(ที่ไม่ใช่สายซอฟแวร์)มากขึ้นก็เมื่อวันที่
Startup เริ่มเข้ามามีบทบาทมากๆ (เนื่องจากStartupย่อมต้องยุ่งเกี่ยวกับซอฟแวร์)
แนวคิดก่อนหน้านี้ในการพัฒนาซอฟแวร์หรือโปรเจคต่างๆ
มักใช้แนวคิดที่เรียกว่า Waterfall คือค้นหาความต้องการ วางแผน ลงมือทำ ทดสอบ
โดยจะทำเป็นขั้นตอนไป คือทำแล้วย้อนกลับมายังกระบวนการก่อนหน้าได้ยาก
เหมือนกับน้ำตกที่ตกแล้วตกเลย
แต่ในทางปฏิบัติการค้นหาความต้องการของลูกค้าแล้วนำมาพัฒนาซอฟแวร์ให้โดนใจ
ท่ามกลางสมรภูมิรบที่มียอดฝีมือมากมายที่สามารถสร้างซอฟแวร์ได้ก็ไม่ใช่เรื่องง่าย
เพราะความต้องการของลูกค้าก็มีเปลี่ยนแปลงไปๆมาๆ
บรีฟกันระดับไม้ขีดแต่อยากได้ผลงานระดับภูเขาไฟก็มีมาแล้ว
หรือบางอย่างที่เหมือนจะโดนใจแต่ท้ายที่สุดกลับไม่ต้องการ
AGILE เข้ามาแก้ปัญหานี้ โดยค้นหาหรือกำหนดความต้องการ
นำมาวางแผนแล้วพัฒนา ติดตามผลกับลูกค้า
วางแผนให้สามารถปรับเปลี่่ยนได้ง่าย
หากมีข้อผิดพลาดก็สามารถปรับแก้ได้ง่าย
ลดขั้นตอนการทำงาน อะไรที่พิธีรีตองมากๆก็เอาออกให้หมด
ได้ผลไม่ต้อง100%ก็สามารถเอามาคุยกับลูกค้าได้ก่อน
ทั้งหมดนี้ทำให้การพัฒนาซอฟแวร์เดินหน้าไปถึงเป้าหมายได้ดีกว่า
เพราะว่า “ลูกค้า” มีความต้องการที่แปรเปลี่ยนไปหรือบางที
ตัวลูกค้าเองก็ยังไม่รู้ด้วยซ้ำว่าเขาต้องการอะไร
ผมจึงขอแบ่งความต้องการของลูกค้าออกง่ายๆเป็น 3 ระดับ
ที่นักพัฒนาซอฟแวร์จะต้องเจอ คือ
1. ความต้องการทางตรง
เป็นความต้องการที่เห็นชัดที่สุดจากลูกค้า
ลูกค้ารู้ว่าต้องการอะไรและไม่ต้องการอะไร
2. ความต้องการที่ไม่สามารถตอบสนองได้
เป็นความต้องการที่ทั้งลูกค้าและผู้พัฒนาซอฟแวร์รู้ว่า
ถ้าทำแบบนี้ได้ก็คงดี แต่ต่างก็รู้ว่ายังทำไม่ได้
(เช่น สร้างเกมที่เล่นยังไงก็ไม่เบื่อให้หน่อยสิ)
3. ความต้องการที่แม้แต่ลูกค้าเองก็ไม่รู้ว่าต้องการ
เป็นความต้องการที่ขับเคลื่อนโลกของเรา
ให้ก้าวไปข้างหน้าอย่างไม่หยุดยั้ง และเป็นความต้องการ
ที่ถ้าตอบสนองได้จะได้รับผลตอบรับอย่างดีและรวดเร็ว
(เช่น ไม่มีใครมานั่งบอกนาย มาร์ก ซักเคอร์เบิร์ก หรอกว่า
นายช่วยสร้าง Social Media ที่ฉันเล่นแล้วชอบ เล่นแล้วติดให้หน่อยสิ)
เมื่อดูจากความต้องการเหล่านี้แล้ว
เห็นได้ชัดว่าการพัฒนาซอฟแวร์ที่มีกระบวนการ
ปรับเปลี่ยนได้อย่างยืดหยุ่นแบบ AGILE
สามารถให้ผลลัพธ์ได้ดีกว่า ดังนั้นหากเราเข้าใจพฤติกรรมความต้องการของลูกค้า
ก็พร้อมที่จะนำ AGILE ไปพัฒนาซอฟแวร์กันได้แล้วครับ
