Jun 18, 2008

General Web Development Process

ตอนหะแรกตั้งใจไว้ว่าจะคุยต่อเรื่อง primary dns server ของบริษัทที่เป็น CDN ว่าเค้าทำกันอย่างไร ก็มีอันต้องระเห็จ จำเป็นต้องเขียนบล็อกแบบ offline ซะ ไม่มีเน็ตใช้ก็เลยหาข้อมูลมาประกอบไม่ได้ ขอยกยอดไว้คราวหน้าก็แล้วกัน

วันนี้ขอคุยเบาๆ เรื่องของ process การทำเว็บทั่วไปดีกว่า ในฐานะที่เป็นคนที่อยู่ในวงการทำเว็บ ทำมาหลายอย่าง ก็พอจะมองเห็นจุดด้อย จุดบอดของคนที่ทำเว็บทั้งระบบว่า แต่ละจุดแต่ละคนเค้ามีมุมมองกันอย่างไร มีแอบบ่นบ้างเล็กน้อย อีกอย่างที่จะพูดถึงนี่มันแค่องค์กรเดียวที่ทำแบบนี้ ที่อื่นคงทำไม่เหมือนกัน ก็ถือซะว่าเป็นการบอกเล่าสิ่งที่ได้เจอมานะ

โดยทั่วไปเว็บหนึ่งเว็บจะเกิดขึ้นมาได้ จะประกอบไปด้วย หลายบุคคลหรือแผนก (ณ ที่นี้ขออ้างอิงจากจุดใกล้ๆ ตัวนะ แต่ละที่ก็คงไม่เหมือนกัน) เช่น

  • PD ก็คือ Product Development แผนกนี้มีหน้าที่คิด มีหน้าที่หาอะไรใหม่ จะไปลอกชาวบ้านมาก็แล้วแต่ จะคิดเองก็แล้วแต่ ขอให้เด็ด เจ๋งๆ ก็ใช้ได้
  • IT ก็มีหน้าที่รับ requirement ที่เป็นทาง PD เค้าคิดมา ทำหน้าที่ฤาษีแปลงสารจาก ความคิดในเอกสาร BRD ให้เป็นเว็บดีๆ ซักอัน โดยทั่วไปถ้า BRD ดี หรือนิ่งก็ดีไป แต่ส่วนใหญ่แล้ว มันไม่เคยนิ่ง ไม่เคยดีพอสำหรับ IT ครับพี่น้อง (ขอใช้เวทีนี้โวยแทน IT PM ก็แล้วกัน)
  • ก่อนที่ IT จะแปลงสารให้เป็น HTML document ดีๆ ประกอบรูปร่างสวยๆ แล้ว จะต้องมีแผนกที่สำคัญอีกส่วนหนึ่งคือ Graphic Designer บางที่แผนกนี้จะแยกตัวชัดเจน บางที่ก็แฝงอยู่กับ IT แต่ส่วนใหญ่มักจะเกาะติดกับ PD มากกว่า เพื่อให้สามารถสื่อสารกับคนที่เป็นเจ้าของ project ได้

จากนั้นก็จะเป็นกระบวนการออกแบบ พัฒนา ทดสอบ ติดตั้งระบบ เปิดการใช้งาน ... เปิดไปเปิดมา คนไม่มาใช้ ก็เห็นปิดกันไปนักต่อนัก .. ที่ยังอยู่ก็ต้องสู้ต่อไป ... จากกระบวน software development life cycle ข้างบน มันก็ออกมาเป็นเว็บหนึ่งอัน ดีไม่ดี คนใช้ชอบหรือไม่ชอบมันก็ขึ้นกับสามแผนกหลักๆ ด้านบนนั่นแหละครับ

การที่ user คนนึงจะเข้าเว็บครั้งแรก ชอบและกลับเข้ามาใหม่ ในมุมมองของผม (ขอย้ำนะ มุมมองของผม ใครไม่เห็นด้วยก็แชร์เลยครับ ยินดี) มันก็มีประเด็นดังนี้ที่เกี่ยวข้อง

  • functionality ของเว็บนั้นๆ ว่าโดนหรือไม่ บางทีเว็บไม่สวยเห่ยๆ แต่ฟังก์ชันเจ๋งคนก็เข้ามาเยอะมาก ถ้าเป็นเว็บพวกข่าว ก็ต้องมีข่าวที่อัพเดตเร็ว เชื่อถือได้
  • เว็บเขียนดี ไม่มีบั้ก จะใช้อะไรก็ใช้ได้เต็มที่ ไม่ล่ม โหลดเร็ว
  • รูปแบบ หน้าตาของเว็บดูดี ตรงใจกับกลุ่มเป้าหมาย
  • สุดท้ายอาจจะเป็นประเด็นเรื่องการมีส่วนร่วมในเว็บนั้นๆ เพราะคนในโลกอินเทอร์เน็ตบางคนชอบที่จะอยู่ในโลกเสมือนแห่งนี้ เพราะบางที่เค้ามีสิทธิ์พิเศษ แตกต่างกับชีวิตจริงที่เค้าอาจจะไม่มีอะไร ไม่มีใครเลยก็เป็นได้

คราวนี้มาดูกันว่า software development life cycle ข้างบน มันตอบโจทย์กลุ่มเป้าหมายหรือเปล่า

  • จุดสำคัญอยู่ที่ PD ถ้า PD สามารถสรุป functionality ของเว็บ หาจุดแข็งแล้วนำออกมาโปรโมตได้แล้ว ซึ่งการทำ function ที่ PD ต้องการให้ใช้งานได้ ก็เป็นหน้าที่ของ IT แหละครับ งานนี้งานหนัก ยิ่งเวลาบีบๆ programmer ก็เขียนกันหน้าเขียวเลยทีเดียว แมลงบินกันว่อนเลย
  • ถ้า function ที่ PD ออกแบบมาดี IT มีเวลาออกแบบระบบหลังบ้านให้รองรับโหลดเยอะๆ ทำไว้ดีหน่อย มันก็จะไม่มีปัญหาอะไร แต่ที่เจอประจำคือ function เยอะ เวลาไม่มี ต้องเอาขึ้นแล้ว แบบนี้ก็มักจะเจอปัญหาทีหลังกันประจำ เช่น เว็บช้า ล่มบ่อย database มีปัญหามั่งละ ความซวยมาเยือนใคร ก็คงไม่พ้นทีม operation และก็ทีม system support (sysadmin) นะแหละ ทำก็ไม่ได้ทำกับเค้า ดันต้องมาเหนื่อยยาวกับ product ที่ทำไว้รีบๆ
  • อีกจุดที่มองเห็นจุดบอดคือ graphic designer บางคน (ขอย้ำว่าบางคน) อาจจะไม่เข้าใจหลักการทำงานของ browser ดีเพียงพอ ท่านก็จะ design graphic ชิ้นใหญ่ๆ เน้นสวยอย่างเดียว คราวนี้แหละครับ ไปกันใหญ่เลย

กระบวนการทั้งหมดนี้ สามารถตรวจจับดักได้ครับ ถ้ามี testing process ที่ชัดเจน มี rule ที่ทุกคนต้องปฏิบัติตาม รวมทั้งการ simulate performance test ที่สามารถทดสอบ capability ของระบบได้เต็มๆ ก่อนที่จะขึ้น production แต่ทุกท่านก็คงทราบ ชีวิตจริงกับ ideal life มันแตกต่างกันเยอะครับ จะมี project ใหนที่ทำเต็ม process กันได้ บางอันท่านก็เล่น cowboy coding กันเลย ออกแบบเอง PD เอง เขียนโปรแกรมเอง เจอแบบนี้ทีมไอทีหลังบ้านก็ต้องเข็มแข้ง ทำหน้าที่ของเราแล้วก็ให้เต็มที่ หมั่นสื่อสารกันกับทุกๆ ทีม knowledge sharing ช่วยเราได้ครับ

No comments: