ก่อนอื่นขอบคุณพื้นที่ของ Thaiseoboard นะครับ ที่ทำให้ ณ วันนี้ผมได้มีโอกาสสมัครสมาชิกได้ หลังจากที่แอบอิจฉาตาร้อนเพื่อนๆ ในนี้มานานโข ช่วงเวลาที่ผ่านมาได้เก็บเกี่ยวความรู้จากที่นี่ต่อยอดเป็นประสบการณืในการทำงาน ได้หลากหลายกลยุทธิ์และแนวทางการพัฒนา บางครั้งก็ดิ้นรนเอง ที่ต้องหาหัวข้อที่ตรงกับสิ่งที่ตัวเองต้องการมากที่สุด สุดท้ายสิ่งที่ได้กลับมาก็คือ "ที่นี่กลายเป็นบ่อทองบ่อเงินของนักพัฒนาอย่างแท้จริง"เลยถือโอกาสนี้แชร์ประสบการณ์จากการที่ได้เรียนรู้จากที่นี่ และจากประสบการณ์ที่ผ่านมาให้เพื่อน ๆ (สำหรับมือใหม่ ๆ ที่จะยึดอาชีพ Programmer)
ให้ได้เรียนรู้ไปด้วย ซึ่งผมเองก็อาจยังไม่เทียบเท่ากับเพื่อนๆ ในนี้อีกหลายท่านที่มากด้วยประสบการณ์1. วางแผนและโครงสร้างของที่อยู่อาศัย แน่นอนว่าหลายท่านที่ต้องการจจะสร้างบ้าน จำเป็นต้องมีภาพจินตนาการของบ้านที่ต้องการไว้ในใจ ฉันใดฉันนั้น ที่ระบบที่คุณต้องการพัฒนาอยากให้
หน้าตาออกมาเป็นอย่างไร ความต้องการของระบบ และผลลัพท์ที่จะได้เป็นอย่างไร สำหรับผม FlowChart ไม่ต้อง ขอขอบเขตงานการทำงานที่ชัดเจน
วาดโครงร่างหน้าตาของระบบออกมา เขียนหมายเลขกำกับขั้นตอนเชื่อมโยงไปยังหน้าต่อไป ทำอย่างนี้เป็นชุด ๆ โดยให้แต่ละชุดมีหน้าที่ที่โยงใยหากัน
ผมว่าข้อดีตรงจุดนี้ก็คือ เวลาระบบมีปัญหา ได้ดึงโครงสร้างนี้ออกมาใช้งานได้ทุกเมื่อ
2. ทำหน้าที่เปรียบเสมือนผู้ใช้งานจริง ในระยะหลัง ๆ ผมพยายามปรับเปลี่ยนพฤฒิกรรมความคิดใหม่ จากที่ตัวเองเป็นผู้พัฒนาระบบเป็นผู้งานระบบ ที่ผมคิดอย่างนี้เพราะว่า
ถ้าตัวเราเองยึดติดในการพัฒนาระบบ เราจะไม่รู้ความต้องการของผู้ใช้งานเลย (จริง ๆ ก็เข้าใจความต้องการแตกแรกแหละ) แต่เมื่อเราปรับตัวมาเป็น
ผู้ใช้ระบบแล้ว เราจะรู้ว่า สิ่งที่ต้องการ ผลดี ผลเสีย ข้อผิดพลาด และปัญหาที่จะตามมามีอะไรบ้าง
3. พัฒนาระบบแบบธรรมชาติ ที่ต้องบอกอย่างนี้ (ความคิดผมเองนะ) ก็เพราะว่า ผู้พัฒนาส่วนใหญ่จะพยายามหาหลักการ แนวทาง และกลยุทธิ์ที่ให้ระบบทำงานได้อย่างคล่องตัว
โดยลืมไปว่า บางครั้งมันฝืนกับวิถีของระบบที่แท้จริง และจนลืมไปว่า ผู้ที่ใช้งานระบบใช้อย่างลำบาก ระบบทำงานแตกต่างไปจากสิ่งที่ควรเป็น ทำให้
การทำงานระหว่างผู้ใช้ระบบกับหน้าที่ของระบบข้ามขั้นตอนอย่างไม่เรียงลำดับ
4. วิเคราะห์ปัญหา (เฉพาะปัญหานะครับ) เชื่อว่าหลายท่านที่พัฒนาระบบเรียบร้อยแล้ว ตางก็มุ่งหวังให้ผลงานออกมาดีที่สุด แต่เจ้ากรรม..บางครั้งก็ต้องเหตุสะดุดที่ทำให้ระบบเกิดข้อผิดพลาดขึ้น
แน่นอนครับ นี่คือด้านแรกที่คุณต้องแก้ไขอย่างแน่้นอน ส่วนที่ตามมาก็คือ การที่คุณต้องทำตัวเป็นนักวิจัยเอาเอง ตั้งสมมุติฐานขึ้นมา (จดเป็นข้อ ๆ ก็ได้)
ว่า ถ้า..เกิดบั๊กส่วนไหน หรือ/และ อยู่ดีดีก็เกิดข้อผิดพลาดแบบไม่ได้ตั้งใจ (อันนี้น่าจะเจอกันเยอะ) เราจะได้พร้อมรบกับมันทัน
5. ต่อยอดและพัฒนา คุณมีความต้องการมากแค่ไหนที่เราจะมีระบบดีดีสักอันที่เหมือนกับระบบใหญ่ที่เค้าวางจำหน่าย และมีป้ายกำกับด้านหลังว่า Ver.1.0 -> Ver.2.0
ผมก็เช่นเดียวกันที่ต้องการให้เป็นอย่างนั้น แต่ถึงกระนั้น คุณก็ต้องมั่นใจแล้วว่า รูปแบบระบบใหม่ จะมีหน้าตาที่หล่อหรือสวย ว่าระบบเดิม และก็มั่นใจว่า
ระบบใหม่ที่คุณพัฒนาจากเดิม จะสร้างมูลค่ากับตัวคุณมากกว่าระบบเดิมเช่นกัน และแน่นอนครับที่ผมเชื่อว่า นักพัฒนาระบบหลายท่านต้องการที่จะพัฒนา
รูปแบบใหม่เสมอ แต่อย่าลืมไปว่ายังไงก็ให้รักษาขอบเขตของระบบและความต้องการให้อยู่ในข้อที่ 1-4 ข้างต้นด้วยนะครับ
และสุดท้าย
6. ราคา สั้น ๆ ครับ ราคาที่เหมาะสมที่ให้ผู้ใช้งานที่ต้องการซื้อบริการของท่าน ได้จับจ่ายซื้อขายคล่อง ราคาสำหรับนักพัฒนาระบบผมเชื่อว่ามีมูลค่าระดับปัญญา
ที่บางครั้งดูเหมือนว่าถ้าต้องมานั่งทำระบบที่ยุ่งยาก ซับซ้อน ความเหนื่อยๆ อาจจะพอ ๆ กับการแบกหินแบกทรายด้วยซ้ำ เคยเป็นมั้ยครับที่รู้สึกว่าเพลี่ย เมื่อ
เหนื่อย จากการพัฒนาระบบ ฉะนั้น ราคาของระบบก็คงต้องคุ้มค่า และคำนึงถึงผู้ซื้อด้วย ยิ่งกว่าอื่นใด ในสายอาชีพอย่างพักพัฒนาที่เรา ๆ เรียกกันว่า
Programmer ก็ควรเป็นราคาที่ไม่ห่างกันมาก และควรที่จะไม่ตัดราคากัน เพราะนั่นเจะหมายถึงมาตรฐานของ Programmer ไทยตกต่ำลง
ขอบคุณพื้นที่ Thaiseoboard ครับ ที่ให้ผมได้มีโอกาสเล่าและแชร์แประสบการณ์ของผมให้ทุกท่านได้อ่านกัน
อาจจะมีประโยชน์ไม่มากก็น้อย แต่เป็นกำลังใจให้ทุกท่านต่อไปครับ