ในการพัฒนา Software ขึ้นมาใช้งาน จุดเริ่มต้นที่สำคัญที่สุดคือจุดประสงค์ของ Software นั้น ...ตามปกติ Software จะถูกพัฒนาขึ้นก็ต่อเมื่อคนเรามีปัญหา ถ้าไม่มีปัญหาก็ไม่ต้องมีการพัฒนา Software บ้างคนอาจจะเถียงว่าบ้างทีไม่มีปัญหาก็สร้าง Software ได้เช่น...อืม...อา...ผมคิดตัวอย่างไม่ออก เพราะไม่เคยเจอการสร้าง Software ที่ไม่ได้เกิดจากการแก้ปัญหา ถึงแม้ว่าเราจะบอกว่าเราสร้าง Software เพื่อทำส่งอาจารย์ มันก็เกิดจากปัญหาที่ อ. สร้างโจทย์ขึ้น และก็เป็นปัญหาของเราอีกแหละว่าต้องทำส่งเพื่อเอาคะแนน หรือว่าจะเป็น product ต่างๆของ Microsoft เองเช่น word, excel ก็เกิดจากปัญหาที่ว่า คนเราต้องการ Tool ที่ใช้สร้างสื่อสิ่งพิมพ์ที่ใช้ได้สะดวก และรวดเร็ว ดังนั้นไม่ว่าอย่างไรก็จำเป็นต้องมีปัญหาก่อนการสร้าง Software
ที่นี่พอเรามีปัญหา สิ่งที่เราต้องคิดก่อนอื่นคือ เราจะใช้วิธีอะไรแก้ปัญหา... ใช่แล้วครับคิดก่อนว่าจะใช้วิธีอะไรแก้ ไม่ใช่จะสร้าง Software อย่างไร บ้างปัญหาการพัฒนา Software ก็ไม่ใช่คำตอบสุดท้ายเสมอไป ยกตัวอย่างนะครับ สมมุติว่าเราเองมี Web Site อยู่ ซึ่งตอนนี้ User เวลา Update ข้อมูลทำได้ไม่สะดวกเลย เพราะ User ใช้ HTML ไม่เป็น ต้องการจะ Update ข้อมูลบน Web Site ให้สะดวกขึ้นจะทำอย่างไร...
ถึงตรงนี้บางคนอาจจะคิดว่า งั้นก็ทำ Web Application ที่ติดต่อกับ Database สิ เวลาแก้ไขข้อมูลก็แก้ที่ Database เอาง่ายดี อีกคนก็คิดว่าผมทำให้สะดวกกว่านั้นอีก ทำ Web Application ครอบ Database อีกที User ก็แค่ใช้ Browser เข้ามาที่ Web App แล้วพิมพ์ๆแก้ๆ ง่ายจะตาย...ความคิดทั้งสองที่กล่าวข้างต้น เป็นความคิดพื้นฐานมากๆสำหรับโปรแกรมเมอร์ทั่วๆไป...แต่ลองคิดดูอีกแบบนะครับ ก่อนอื่นเราควรตั้งคำถามก่อนว่า ที่บอกว่า update ยากทำได้ไม่สะดวกนะ ทำบ่อยแค่ไหน...คำตอบที่ได้จาก User คือเดือนละ 2 ครั้ง...มาถึงตรงนี้ถ้าเป็นผม ผมจะแนะนำให้ User ลองหัดใช้ Software ช่วยสร้าง Web Page เช่น Front Page หรือ Dreamweaver แทนการสร้าง Web Application ที่ติดต่อกับ Database
ถามว่าทำไม 1. แก้ไขเดือนละ 2 ครั้งนั้นผมคิดว่าไม่คุ้มต่อการพัฒนา Web Application 2. ความต้องการของ User คือต้องการให้ Update ข้อมูลได้ง่าย ซึ่งเขาไม่เป็น HTML แสดงว่าแค่ Tool ที่ใช้ช่วยสร้าง Web Page ก็เพียงพอแล้ว จะเห็นได้ว่านี่เป็นจุดเริ่มต้นที่สำคัญมาก เพราะถ้าหากเราตัดสินใจกันง่ายๆคือทำ Web Application เราก็ต้องลงแรงและเสียเวลาในการพัฒนา ทั้งที่ความต้องการของ User และปัญหาที่ต้องการแก้ไข ไม่จำเป็นต้องลงทุนขนาดนั้นเลย
เพราะฉะนั้นก่อนที่จะพัฒนา Software อะไรลองก้าวถอยหลังมาสักหนึ่งก้าวแล้วมามองปัญหาดีๆว่าต้องการอะไรกันแน่ และจะมีหนทางการแก้ปัญหาอย่างไรบ้าง ไม่ใช่พอรู้ปัญหาก็จัดการคิดวิธีการพัฒนา Software ที่จะมาแก้ไขปัญหาเลย
มาถึงตรงนี้เราจะเห็นจุดเริ่มต้นของการพัฒนา Software แล้ว และก็จะเห็นอีกสิ่งหนึ่งในข้อความข้างต้นคือ ความต้องการ (Requirement) ซึ่งสำคัญไม่แพ้จุดประสงค์(Objective) และความคุ้มค่าของวิธีการแก้ปัญหา(Feasibility) คร่าวหน้ามาต่อกันนะครับ