WordPress Bangkok Meetup เดือนพฤษภาคม 2024 ครั้งนี้ สปอนเซอร์สถานจัดที่ Cleverse โดยปกติ Meetup จะจัดเดือนละครั้ง ก่อนการจัดงาน Meetup จะมีการแนะนำตัวเพื่อให้สมาชิกได้ทำความรู้จักกันก่อน และจะมีช่วง Jobboard เพื่อให้คนที่ต้องการ หางาน และ หาคนทำงาน ด้วย
Meetup ครั้งนี้จะเป็นการพูดคุยแลกเปลี่ยนเกี่ยวกับ กระบวนการทำงานของโปรเจคต์ ตั้งแต่ต้นจนกระทั่งจบงาน โดยหัวข้อจะแบ่งออกเป็นทั้งหมด 13 หัวข้อ
สารบัญ
Meetup นี้จะเป็นการพูดคุยแลกเปลี่ยนแบ่งปันประสบการณ์ซึ่งกันและกัน โดยจะมีผู้เข้าร่วมหลายคนที่ให้ความคิดเห็นที่หลากหลายและแตกต่างกันออกไป ดังนั้นจึงใช้การแบ่งเป็นหัวข้อย่อยต่างๆ เพื่อสรุปความคิดเห็นของแต่ละท่าน
สอบถาม Requirement และงบประมาณ
- สอบถามวัตถุประสงค์ในการสร้างเว็บไซต์ว่าต้องการให้มีฟังก์ชันการทำงานอย่างไร โดยใช้ชุดคำถามหรือแบบสอบถาม (Checklist) เช่น เป็นเว็บไซต์บริษัท เว็บไซต์อีคอมเมิร์ซ มีระบบรองรับการชำระเงิน (Payment Gateway) หรือไม่ รวมถึงกำหนดวันที่ต้องส่งมอบงาน ซึ่งจะส่งผลต่อการกำหนดราคาด้วย
- ข้อกำหนดความต้องการ (Requirement) สามารถแบ่งออกเป็น 3 กลุ่มใหญ่ๆ ได้แก่
- Functional Requirement คือข้อกำหนดเกี่ยวกับฟังก์ชันการทำงานที่ต้องการให้มี
- Non-Functional Requirement เช่น มีข้อกำหนดด้านประสิทธิภาพ (Performance) หรือไม่
- Technical Requirement เช่น ต้องการให้มีมาตรฐานด้านความปลอดภัย (Security Standard) หรือไม่
- ในบางครั้งลูกค้าอาจไม่มีความรู้ในส่วนนี้ เราต้องเป็นผู้รวบรวมข้อมูลเพิ่มเติม ยกตัวอย่างข้อกำหนดที่พบบ่อย เช่น Accessibility สำหรับผู้พิการ ข้อกำหนดเหล่านี้จะถูกแปลงเป็นฟีเจอร์เพื่อประเมินราคา
- ลูกค้าบางรายจะสอบถามราคาเบื้องต้นจากหลายแหล่งก่อน เมื่อทราบราคาโดยประมาณแล้วจึงมาว่าจ้าง แต่ก็ยังมีลูกค้าบางรายที่ไม่มีความรู้เรื่องราคาเลย ในกรณีนี้เราอาจนำเสนอให้ลูกค้ามองว่าการสร้างเว็บไซต์เปรียบเสมือนการจ้างพนักงานคนหนึ่ง ที่ต้องจ่ายค่าจ้าง/เงินเดือน เพื่อให้ลูกค้าเข้าใจภาพรวมของราคาค่าจ้างโดยประมาณ
เก็บ Requirement เพื่อแปลงเป็น UI/UX
- ใช้วิธีง่ายๆ โดยการวาดแผนผังเว็บไซต์ (Sitemap) เบื้องต้น เพื่อแสดงรายการส่วนประกอบต่างๆ ที่ต้องการให้มีในเว็บไซต์ ช่วยให้เห็นภาพรวมได้ชัดเจนขึ้น พร้อมระบุสีหลักที่ต้องการใช้ และให้ลูกค้าเลือกตัวอย่างรูปภาพจาก Freepik เพื่อหาโทนสีและรูปแบบที่ชอบ
- ใช้การพูดคุยหารือปัญหาต่างๆ ที่ลูกค้าประสบ แล้วนำมาแปลงเป็นประสบการณ์ผู้ใช้งาน (UX) อาจใช้การอ้างอิงจากเว็บไซต์อื่นที่ลูกค้าชื่นชอบ เพื่อให้เห็นภาพแนวทางที่ต้องการได้ชัดเจนขึ้น
- ร้องขอให้ลูกค้าเตรียมตัวอย่างเว็บไซต์ที่มีอยู่ในตลาดและชื่นชอบมา แล้วอธิบายให้ฟังว่าแต่ละฟีเจอร์มีระดับความยากง่ายและการดูแลรักษาอย่างไร บางครั้งอาจเกิด Technical Debt ได้ ช่วยให้ลูกค้าเข้าใจและตัดสินใจได้ว่าต้องการอะไรจริงๆ
- “ให้ทำยังไงก็ได้ ที่คนโง่ที่สุดใช้ได้” เป็นคำพูดของผู้พัฒนาปลั๊กอินท่านหนึ่ง ซึ่งทำงานเกี่ยวกับส่วนควบคุมหลังบ้าน ควรทำให้ใช้งานง่ายที่สุด หรือแอดมินสามารถใช้งานได้โดยไม่ต้องอ่านคู่มือเลย
- มีการแสดงตัวอย่างเว็บไซต์คู่แข่งของลูกค้า พร้อมระบุฟีเจอร์ที่น่าสนใจ หากลูกค้าชื่นชอบ เราสามารถนำมาปรับให้เข้ากับแบรนด์ของลูกค้าได้ หากลูกค้าต้องการตัดฟีเจอร์บางอย่างออก จะมีการถามเหตุผลก่อนว่าเพื่อประหยัดในปัจจุบันหรือเพื่อไม่ต้องเสียมากขึ้นในอนาคต
- ลูกค้าต้องรู้เป้าหมายของกลุ่มอายุของลูกค้า เพื่อ UI/UX จะได้ดีไซน์เข้ากับกลุ่มคนอายุนั้นๆ
การทำสัญญา
การทำสัญญาจะแบ่งออกเป็น 2 ประเภทหลัก ได้แก่ ฟรีแลนซ์และองค์กร
- สำหรับฟรีแลนซ์ จะใช้ใบเสนอราคาเป็นสัญญา โดยระบุรายละเอียดฟีเจอร์ การดูแลรักษา และอื่นๆ ลงไปในนั้นทั้งหมด เนื่องจากมีอำนาจในการต่อรองค่อนข้างน้อย
- ส่วนองค์กรนั้น จะต้องเขียนรายละเอียดอย่างละเอียดมาก เช่น ขอบเขตงาน (Scope of Work) แล้วนำมาจัดทำเป็น TOR ในสัญญาอาจต้องระบุแหล่งที่มาของรูปภาพเพื่อไม่ให้เกิดปัญหาเรื่องลิขสิทธิ์ รวมถึงข้อใหม่ๆ อย่างการขอความยินยอมจากลูกค้าในการนำโลโก้และรูปภาพไปใช้ในพอร์ตผลงานเพื่อประชาสัมพันธ์ทางการตลาด
นอกจากนี้ต้องระบุระยะเวลาในการดูแลรักษาเว็บไซต์ จำนวนครั้งที่สามารถแก้ไขได้ และลูกค้าต้องให้ข้อมูลป้อนกลับภายในระยะเวลาที่กำหนด เนื่องจาก PM จะต้องล็อคระยะเวลาให้แน่นอน เมื่อลูกค้าลงนามในสัญญาแล้ว ถือว่ารับทราบข้อตกลงทั้งหมดหากมีเงื่อนไขใดที่เป็นผลประโยชน์ต่อตนเอง ก็ควรระบุลงในสัญญาด้วย นอกจากนี้ยังมีเอกสารอื่นๆ ที่เกี่ยวข้อง เช่น PO, Invoice, Quotation สำหรับผู้ที่ไม่มีความรู้ในส่วนนี้ สามารถใช้ Flowaccount ช่วยในการจัดการได้
กำหนดบางส่วนในสัญญา เช่น ระยะเวลาในการตอบสนองและแก้ไขปัญหา หากเกิดปัญหาขึ้น จะต้องตอบสนองภายในกี่นาที และหากสามารถแก้ไขได้จะต้องแก้ไขให้เสร็จภายในกี่นาที สำหรับผู้พูดที่ทำงานกับลูกค้าต่างชาติ จะมีลักษณะการทำงานแบบ Agile Contract โดยคิดค่าจ้างเป็นจำนวน Man-day ซึ่งจะประเมินจากขนาดและรายการฟีเจอร์ เพื่อรองรับความต้องการที่มีความยืดหยุ่นได้
Workflow ในการทำงานของ Dev
- โดยปกติจะใช้ Git Actions เมื่อมีการ commit ก็จะทำการอัพโหลดไฟล์ผ่าน FTP ขึ้นเซิร์ฟเวอร์โดยอัตโนมัติ แต่หากทำงานบนเครื่องส่วนตัว จะใช้ LocalWP เป็นเซิร์ฟเวอร์ local
- WordPress เพิ่งเปิดตัว Local Server ใหม่ชื่อ Studio สามารถอัพโหลด Demo Site ขึ้น wordpress.com ได้เลย และมีโดเมนให้ใช้งานโดยสูงสุด 5 Sites โดยผมมีการโพสต์ที่พูดถึงอยู่ที่ ลิงก์
- ใช้ runcloud.io แล้วผูกกับ GitHub ถ้ามีนักพัฒนาหลายคน ให้สร้าง Branch แยกกัน และตั้งค่า Staging สำหรับแต่ละคน เพื่อทดสอบบนเซิร์ฟเวอร์แยกกัน พร้อมใช้ .gitignore เพื่อไม่ให้ไฟล์ทับซ้อนกัน ส่วนฐานข้อมูลยังต้องจัดการแบบ Manual
- หากใช้ Gutenberg จะเป็นการสร้าง Component แยกกันก่อน แล้วจึงนำมาประกอบรวมกันในภายหลัง
ทิศทาง การเลือกใช้ Tools, Plugins, Themes ในการทำงาน
- เวลาจะเลือกใช้ Plugins หรือ Themes จะพิจารณาจาก Budget ของลูกค้าเป็นสำคัญ สำหรับลูกค้าที่มีงบประมาณไม่มาก ระดับ 30,000 – 50,000 บาท ทางเลือกที่เหมาะสมคือการเสนอให้ใช้ธีมสำเร็จรูปจาก Themeforest แล้วนำมาปรับแต่งให้เข้ากับมูดและโทนของบริษัท อย่างไรก็ตาม หากลูกค้ามีงบประมาณเพิ่มขึ้นมาอยู่ที่ระดับเกือบหนึ่งแสนบาท หรือต้นแสนบาท การเขียนธีมขึ้นมาเองจะเป็นทางเลือกที่ดีกว่า สำหรับเว็บไซต์ประเภท E-Commerce หรือ Application ที่มีความซับซ้อน ราคาจะปรับเพิ่มขึ้นตามความเหมาะสม นอกจากนี้ ระยะเวลาในการส่งงานและเทคโนโลยีที่ใช้ยังเป็นปัจจัยสำคัญที่มีผลต่อราคาด้วย
- การทดสอบและหาปลั๊กอินหรือธีมที่ตอบโจทย์ความต้องการของลูกค้าและเป็นที่นิยมในตลาด รวมถึงการทดสอบข้อจำกัดต่างๆ ของปลั๊กอินและธีมเป็นสิ่งสำคัญ อย่าลืมสร้าง Child Themes เสมอ เพื่อป้องกันการสูญหายของการปรับแต่งหากมีการอัปเดตธีมหลัก
- การเลือกใช้ธีมยอดนิยมในตลาด หรือการพัฒนาธีมเอง เพื่อช่วยลดการโหลดที่ไม่จำเป็นสำหรับเว็บไซต์ได้
การใช้ AI ในการช่วยทำงาน
- การใช้ AI ในการแก้ไขปัญหาข้อผิดพลาด (Error) โดยการสร้าง Prompt ก่อนใช้งาน ปรากฏว่าสามารถช่วยแก้ไขปัญหาบางอย่างได้
- การนำ AI มาใช้ในการนำเสนองานแก่ลูกค้า (Pitch) โดยใช้ Copilot Image Creator ในการสร้างภาพเพื่อให้ลูกค้าเห็นภาพเบื้องต้นของงาน
- ก่อนหน้านี้ใช้ ChatGPT แต่ปัจจุบันใช้ Co-pilot ของ GitHub ซึ่งสามารถคาดเดาได้ว่าโค้ดถัดไปที่กำลังจะพิมพ์คืออะไร หรือสามารถเขียนคำอธิบายฟังก์ชันการทำงาน แล้ว AI จะสร้างโค้ดภายในฟังก์ชันนั้นขึ้นมาได้ นอกจากนี้ยังมี Co-pilot Workspace ที่สามารถอ่าน Pull Request และสร้างโค้ดได้เช่นกัน
- Content Aware Image Resize เป็นอัลกอริธึมที่สามารถปรับขนาดรูปภาพได้แบบ Real-time ตามขนาดของหน้าจอ
- หากลูกค้ายังไม่มีไอเดีย สามารถบอกหรือเล่าสิ่งที่ต้องการให้ AI ช่วยเป็นผู้ช่วยในการค้นหาว่าความต้องการของลูกค้าจริงๆ คืออะไร
- Black Box เป็นปลั๊กอินของ Visual Studio Code ที่จะสร้างโครงร่างโค้ดให้โดยอัตโนมัติ หลังจากนั้นจึงค่อยออกแบบรายละเอียดภายในต่อไป
- สำหรับ UI/UX สามารถนำข้อกำหนดความต้องการทั้งหมดมาป้อนให้ AI ประมวลผล และให้มันแปลงเป็น Site Map บางครั้งผลลัพธ์ที่ออกมาทำให้ประหลาดใจ หรือก็ออกมาในมุมที่เราคาดคิดไม่ถึง
“ทำเกิน” เพื่อเพิ่มมูลค่าให้ตัวเอง
- สำหรับฟรีแลนซ์ผู้เขียนคอนเทนต์ การวางแผนกลยุทธ์และช่วยทำการประชาสัมพันธ์ผ่านสื่อสังคมออนไลน์ จะช่วยสร้างมูลค่าเพิ่มให้กับตนเองได้
- ควรทำความเข้าใจถึงจุดประสงค์และระดับความรู้ของลูกค้าเสียก่อน เพื่อที่จะได้ส่งรายงานต่างๆ ที่เกิดขึ้นบนเว็บไซต์ให้ลูกค้า ทำให้ทราบถึงจุดแข็งและจุดอ่อนของเว็บไซต์ ซึ่งจะช่วยรักษาความสัมพันธ์ที่ดีกับลูกค้าในระยะยาว
- แนะนำเรื่องการทำ SEO พื้นฐานสำหรับเว็บไซต์ว่าควรดำเนินการอย่างไรบ้าง
- สอบถามเกี่ยวกับปริมาณการเข้าใช้งานของเว็บไซต์ และทำการทดสอบเพื่อดูว่าเซิร์ฟเวอร์สามารถรองรับได้หรือไม่ เพื่อแจ้งให้ลูกค้าทราบว่าโฮสติ้งในปัจจุบันอาจไม่เพียงพอ
วันเริ่มงาน การส่งมอบ assets ของลูกค้า
- กำหนดวันและเวลาสำหรับการชำระเงินงวดแรก และขอความร่วมมือจากลูกค้า หากลูกค้าให้ feedback อย่างรวดเร็ว ก็จะส่งผลให้งานแล้วเสร็จตรงตามกำหนดเวลา แต่หากไม่สามารถทำตามที่กำหนดได้ ต้องชี้แจงให้ลูกค้าทราบถึงสาเหตุ
- อีกวิธีหนึ่งคือไม่ต้องรอรับเงินงวดแรก เมื่อลูกค้าเซ็นสัญญาแล้วสามารถเริ่มงานได้ทันที สำหรับกรณีที่ลูกค้าไม่เข้าใจกระบวนการทำงาน จำเป็นต้องอธิบายให้ฟังว่า หากพลาดการประชุมแม้แค่หนึ่งวัน จะส่งผลกระทบต่องานทั้งหมด เนื่องจากบริษัทจะจองคิวทั้งดีไซน์เนอร์และนักพัฒนาเว็บเอาไว้แล้ว อย่างไรก็ดี หากโลโก้หรือกราฟิกอื่นๆ ยังไม่พร้อม ก็สามารถเริ่มงานด้วยการวางมูดและโทนของงานก่อนได้ ปัญหาที่พบบ่อยที่สุดคือเนื้อหา (คอนเทนต์) โดยเฉพาะสำหรับธุรกิจขนาดเล็ก วิธีแก้ปัญหาคือการใช้ Google Sheets ในการวางรูปแบบ (Pattern) ให้ลูกค้าพอได้ไอเดีย
บริการหลังการขาย และการันตีคุณภาพ
- ตัว WordPress เองมีการเปลี่ยนแปลงบ่อยครั้ง ถ้าหากมีการเปลี่ยนแปลงครั้งใหญ่ (Breaking Change) แล้วเกิดข้อผิดพลาด ทำให้เกิดค่าใช้จ่ายเพิ่มได้
- ระยะเวลาการรับประกัน (Warranty) ขึ้นอยู่กับมูลค่าของโปรเจกต์ หากมูลค่าไม่สูงมากนักก็จะไม่เกิน 3 เดือน แต่หากมูลค่าสูงอาจรับประกันถึง 6 เดือนถึง 1 ปี การบริการรวมถึงการสำรองข้อมูล (Backup) ซึ่งความถี่ในการสำรองข้อมูลขึ้นอยู่กับความถี่ในการอัปเดตข้อมูลของลูกค้า หากมีการเปลี่ยนแปลงข้อมูลทุกวัน ก็ต้องสำรองข้อมูลระดับวัน โดยแยกสำรองไฟล์และฐานข้อมูล เมื่อสำรองเสร็จแล้วจะอัปโหลดไปที่ Google Drive เพื่อสำรอง ในกรณีที่โดนแฮ็ก หรือโดนไวรัส และใช้ Clarity ในการติดตามพฤติกรรมการใช้งานของลูกค้า ซึ่งสามารถใช้ร่วมกับ Google Analytics เพื่อดึง Dashboard มาแสดงผลลัพธ์
- ให้บริการข้อมูลเกี่ยวกับประสิทธิภาพการทำ SEO ให้กับลูกค้า
การสื่อสารกันระหว่างในทีม ( PO, UI/UX, Dev, Customer )
- ขั้นตอนการทำงานขึ้นอยู่กับรูปแบบการจัดการโปรเจ็กต์ สำหรับแบบ Waterfall จะเริ่มจากการประชุมกับดีไซเนอร์ก่อน แล้วจึงประชุมกับนักพัฒนาเป็นรายสัปดาห์ แต่ถ้าเป็นแบบ Agile ทีมต้องประชุมประสานงานกันอย่างใกล้ชิด แทบจะเป็นรายวันเพื่อให้ทันต่อสถานการณ์
- แนะนำให้แยกบัญชีการใช้งานระหว่างส่วนตัวและงาน โดยเฉพาะบนอุปกรณ์มือถือ เช่น สำหรับผู้ใช้ Android สามารถแยกบัญชี Line ไว้สำหรับคุยงานแยกต่างหากจากบัญชีส่วนตัว จะดีกว่า
- สิ่งสำคัญที่ไม่ควรมองข้าม คือการบันทึกรายงานการประชุมทุกครั้ง (Log) เพื่อใช้เป็นหลักฐานและเพิ่มประสิทธิภาพในการทำงาน
ขั้นตอนทำเอกสาร
- ในการจบโปรเจคต์แต่ละครั้ง จะต้องมีการทำเอกสารในทุกครั้ง ลูกค้าบางคนมีความคุ้นเคยอยู่แล้วก็จะลัดขั้นตอนการใช้งาน WordPress ไปเลย ก็จะไปโฟกัสในส่วนของที่เรา Custom เท่านั้น
- สำหรับคนที่ไม่ชอบทำเอกสาร ก็สามารถทำเทรนนิ่งออนไลน์ได้ โดย record วีดีโอนั้นแล้วส่งให้ลูกค้าแทน โดยก่อนที่จะเทรนนิ่ง ก็จำเป็นจะต้องทำ Powerpoint ในแต่ละหัวข้อที่จะสอนด้วย
- สามารถใช้ Flow account ในด้านเอกสารทางด้านการเงิน แล้วก็ใช้ Clickup ในการจัดการโปรเจคต์ทุกอย่างได้
- ใช้ Action item สำหรับการ Assign งานด้วยการเขียนชื่อคน เพื่อสร้างความรับผิดชอบต่องานนั้นๆ โดยใช้ Tools เช่น Google Doc, Google Slide เป็นต้น แล้วค่อย Translate ไปยัง Jira, Clickup ได้
ความถี่ ในการรายงานความคืบหน้าของโปรเจคต์
การรายงานความคืบหน้าจะทำเป็นประจำทุกสัปดาห์ผ่านทาง Line โดยจะรายงานให้ลูกค้าทราบแม้ว่าลูกค้าจะไม่ว่าง ทั้งนี้จะยึดตามระยะเวลา (Timeline) ที่ตกลงกันไว้เป็นหลัก เมื่อขั้นตอนใดแล้วเสร็จ เช่น งานดีไซน์หรือเริ่มพัฒนาระบบ ก็จะรายงานและนัดประชุมกับลูกค้าทันที
ในช่วงเริ่มโปรเจ็กต์ต้องประเมินด้วยว่าช่วงเวลารอรับฟีดแบ็กจากลูกค้านั้นเหมาะสมหรือไม่ เพราะหากลูกค้าตอบกลับช้าจะส่งผลให้ความคืบหน้างานล่าช้าตามไปด้วย ทุกครั้งที่มีการประชุมจะต้องมีการบันทึกรายงานการประชุม (Meeting Note) ไว้เสมอ
สำหรับการแจ้งเตือน จะทำผ่านอีเมลทั้งแก่ลูกค้าและทีมงานภายใน ส่วนการจัดการคำถามทางเทคนิคนั้น จะใช้ Line Official Account ในการรวมบุคลากรทุกตำแหน่งไว้ในกลุ่มเดียวกัน เพื่อให้สามารถช่วยกันตอบได้หากมีข้อสงสัย
ส่งมอบงาน, เทรนนิ่ง, ทำคู่มือ, ให้ลูกค้าทดสอบระบบ, เก็บเงินงวดสุดท้าย
- การทดสอบด้วยตัวเองก่อน (White Box) จากนั้นจึงส่งต่อให้ผู้บริหารและผู้ใช้งานจริงทดลองใช้งาน (Black Box) หลังจากนั้นจะเข้าสู่ขั้นตอน QA (Quality Assurance) บางครั้งอาจนำบุคคลภายนอกเข้ามาร่วมทดสอบด้วย เพื่อลดอคติในการทดสอบ
- ก่อนส่งมอบระบบให้ลูกค้า ต้องประเมินก่อนว่าลูกค้ามีทีมงาน IT หรือไม่ หากลูกค้าไม่สามารถทดสอบระบบได้เอง จะมีการจัดทำการฝึกอบรมให้ก่อน จากนั้นจึงจัดทำคู่มือการใช้งาน และให้ลูกค้าทดสอบตามขั้นตอนที่ระบุในคู่มือนั้น โดยจะพยายามจัดสรรเวลาให้ลูกค้าทดสอบระบบอย่างน้อย 1-2 สัปดาห์ก่อนส่งมอบงาน
หากใครสนใจอยากเข้าร่วม Meetupในอนาคตท่านสามารถติดตามข้อมูลข่าวสารได้ที่ Meetup.com หรืออยากเข้าร่วม Community ได้ที่กลุ่ม Facebook Group ครับ
สุดท้ายหากอยากปรึกษา หรือจ้างงานที่เกี่ยวกับ WordPress สามารถทักเข้ามาที่ฟอร์ม หรือเพจ do action เพื่อติดต่อ และอัพเดทข้อมูลข่าวสารเกี่ยวกับ WordPress ได้เลยครับ 🙂