ว่าด้วยโครงการ Big Data โดยพื้นฐานแล้ว จะแบ่งออกเป็น 2 เรื่องใหญ่ ได้แก่
เรื่องการเชื่อมโยง และบริหารการจัดเก็บข้อมูล
การออกแบบแนวทางในการวิเคราะห์ และใช้ประโยชน์จากข้อมูล
ทั้ง 2 เรื่อง จะมีขั้นตอนการปฏิบัติงานคล้ายกัน (ในเชิงการบริหารโครงการ) ดังนี้
1. การออกแบบโครงการ
ตั้งแต่การระบุปัญหา การตั้งเป้าหมาย หามองหาแนวทางแก้ปัญหา ที่อาจจะเป็นการเลือก Vendor หรือ การทำ POC.
2. การศึกษาข้อมูล และจัดการข้อมูล
ตั้งแต่การนำข้อมูลมาจัดโครงสร้างใหม่ ทำความสะอาด รวมไปถึง การนำเทคโนโลยีที่เกี่ยวข้องมาใช้เพื่อทำให้ข้อมูลได้รับการจัดการที่ดีขึ้น
3. การวิเคราะห์
การวิเคราะห์อาจจะเป็นการสร้าง Model เพื่อจัดการข้อมูล หรือการสร้าง Model เพื่อวิเคราะห์ข้อมูล ซึ่งในแต่ละกรณี จะใช้ผู้เชี่ยวชาญที่ต่างกัน วิเคราะห์ในที่นี้ ถือเป็นการวางแผน และเลือกแนวทางเพื่อพัฒนาต่อไปนี้
4. การพัฒนาโปรแกรม
เมื่อได้ชื่อว่าเป็นโครงการ Big Data โดยส่วนใหญ่แล้ว จะเป็นโครงการที่ต้องพัฒนาขึ้นมาใหม่ เพื่อให้ตอบโจทย์กับปัญหานั้นๆ ให้ได้มากที่สุด จึงจำเป็นต้องมีส่วนของการพัฒนา ไม่ว่าจะเป็นการเขียน Code เพื่อดึงข้อมูล การเขียน API เพื่อให้โปรแกรมคุยกันได้อัตโนมัติ รวมไปถึงการสร้างโปรแกรมเพื่อวิเคราะห์ และแสดงผล อีกทั้งยังต้องนำแต่ละส่วนมาประกอบรวมเข้าด้วยกันอีกด้วย
5. การทดสอบ
การทดสอบ จะแบ่งออกเป็น 2 ขั้นตอนย่อยๆ ได้แก่ ทดสอบก่อนส่งมอบ และการทดสอบหน้างาน ซึ่งจะต้องใช้เวลาระดับหนึ่งในการทดสอบ เพื่อเก็บ Feedback ก่อนที่จะนำไปพัฒนาต่อ หรือส่งมอบงาน
6. การส่งมอบงาน
หากเป็นโครงการที่เน้นความยั่งยืน การส่งมอบงานนี้ จะรวมไปถึงการถ่ายทอดความรู้ เพื่อสร้างความเข้าใจให้ทีมงานที่จะต้องดำเนินโครงการต่อไป
ทั้ง 6 ขั้นตอน ต้องใช้เวลาทั้งสิ้น หากถามว่า เวลาส่วนใหญ่ (ตามทฤษฎี) ขั้นตอนใดใช้เวลานานที่สุด คำตอบคือ ช่วงที่ 4 การพัฒนาโปรแกรม เพราะเป็นขั้นตอนที่ต้อง “สร้าง” และ “ทดสอบ” อยู่ตลอดเวลา โดยที่สิ่งที่กำลัง “พัฒนา” อยู่นี้ อาจจะเป็นสิ่งใหม่ หรือสิ่งที่เฉพาะตัว ทำให้อาจจะไม่มีต้นแบบมาก่อนเลยก็ได้
อย่างไรก็ตาม พบว่า ในหลายๆ โครงการ จะเสียเวลาเป็นเวลานานอยู่ที่ขั้นที่ 1 การออกแบบโครงการ และขั้นที่ 2 การศึกษาข้อมูล และการจัดการข้อมูล เป็นเพราะอาจจะยังไม่เข้าใจแนวทางในการดำเนินโครงการอย่างแท้จริง
ประเด็นหลัก ไม่ใช่เรื่องของการใช้เวลาในขั้นที่ 1 และ 2 เป็นเวลานาน แต่มันเกิดปัญหา ตรงที่มีเวลาให้ขั้นที่ 4 น้อยลง ทั้งๆ ที่เป็นขั้นตอนที่ควรได้รับเวลามากที่สุด
เมื่อมีเวลาพัฒนาน้อยลง สิ่งที่เป็นผลตามมา คือ โปรแกรมอาจจะไม่ได้รับการพัฒนาที่ครอบคลุมมากพอ และอาจจะไม่ตอบโจทย์เลยก็เป็นได้
ในการพัฒนาระบบ จะแบ่งลักษณะการทำงานออกเป็น 2 แบบ ได้แก่ Waterfall และ Agile
ในแบบ Waterfall การทำงานจะเป็นขั้นตอนไล่ลำดับลงมาเรื่อยไม่ ตามขั้นที่กำหนด เช่น 1 ไป 2 ไป 3 ไป 4 ไป 5 ไป 6 โดยในแต่ละช่วง จะใช้เวลาค่อนข้างนาน เพื่อให้สามารถจบงานในแต่ละขั้นได้ และไม่มีการย้อนกลับมา
แต่การทำงานแบบ Agile จะเน้นการทำงานที่มีการ Sprint หรือ การเสนอผลลัพธ์บางอย่างในช่วงเวลาสั้นๆ เพื่อทดสอบ และเก็บ Feedback และสามารถเปลี่ยนโจทย์ได้ เมื่อพบว่า โจทย์นั้นไม่เหมาะสม ดังนั้นการทำงานแบบ Agile อาจจะเป็น 1 ไป 2 ไป 3 ไป 4 ไป 5 ไป 3 ไป 4 ไป 5 ไป 4 ไป 5 ไป 6 วนกลับไปกลับมาเพื่อตรวจสอบความต้องการ โดยในแต่ละช่วงเวลา จะใช้เวลานั้นๆ เช่น 2 อาทิตย์ เป็นต้น
ทั้งนี้ เหตุผลที่หลายองค์กร ไม่เห็นความสำคัญของขั้นตอนการพัฒนา อาจเกิดมาจากความเคยชินในการ “ลงโปรแกรมสำเร็จรูป” ก็เป็นได้ เพราะโปรแกรมสำเร็จรูป เป็นโปรแกรมที่ออกแบบ และพัฒนาเรียบร้อยแล้ว เพียงแต่จะตอบโจทย์ได้มากน้อยแค่ไหน ขึ้นอยู่กับความเหมาะสมของโจทย์ และข้อมูลนั้นๆ
แม้ว่า เราควรให้เวลากับ “การพัฒนา” มากหน่อย แต่ไม่ได้หมายความว่า เป็นการปล่อยปะละเลยการทำงาน ความเหมาะสมของการ “ให้เวลา” ในที่นี้ คือ การให้ความสำคัญกับการพัฒนา รวมไปถึงการ “ให้ความร่วมมือกัน” เพราะหากทีมงานได้รับความร่วมมือ ไม่ว่าจะเป็น การให้ความต้องการที่ชัดเจน และได้รับ Feedback ที่เป็นประโยชน์ ทีมงานนักพัฒนาก็จะสามารถสร้างสรรค์ผลงานได้เร็วขึ้น และอาจจะทำให้โครงการนั้นใช้เวลาน้อยลง