หลายคนที่ทำอาชีพรับจ้างพัฒนาเว็บไซต์จะรู้สึกลำบากใจเวลาที่ลูกค้าถามว่า “project นี้ราคาเท่าไหร่?” และจะยิ่งลำบากใจมากขึ้นถ้าคุณบอกตัวเลขไปว่า “หนึ่งแสนบาท” แล้วลูกค้าทำหน้าเรียบเฉย เดาไม่ออกว่าลูกค้ารู้สึกว่าถูกไปหรือแพงไป
ถึงแม้ว่าตัวเลขราคาจะสำคัญต่อการตัดสินใจของลูกค้า แต่สิ่งที่สำคัญไม่แพ้กันก็คือที่มาของตัวเลขนั้นๆ ลูกค้าบางคนที่ได้ยินราคาหนึ่งแสนบาทแล้วรู้สึกว่าแพง เพราะเขามักจะคิดว่า scope งานไม่น่าใหญ่ถึงขนาดที่ต้องจ่ายเพงแบบนี้ แต่ลูกค้าบางคนได้ยินหนึ่งแสนบาทแล้วอาจจะรู้สึกว่าถูกจนไม่น่าไว้วางใจว่าจะทำงานออกมาได้ตามที่คาดหวังไว้หรือเปล่า
สิ่งที่ผู้รับจ้างพัฒนาเว็บไซต์จะต้องทำก็คือการแจกแจงให้ลูกค้าเห็นรายละเอียดว่าราคาที่คุณตั้งขึ้นมานั้น มันมีที่มาที่ไปอย่างไร วิธีการที่นิยมใช้กันก็คือการแจกแจงรายละเอียดออกมาเป็นจำนวนชั่วโมงที่ใช้ในการทำงาน
วิธีการแจกแจงชั่วโมงการทำงานที่ดีควรจะแบ่งออกมาตามประเภทของงานว่าต้องใช้เวลาออกแบบเว็บกี่ชั่วโมง ใช้เวลาเขียนโปรแกรมกี่ชั่วโมง เป็นต้น ไม่ใช่สรุปออกมาเป็นตัวเลขเดียวว่า project นี้ใช้เวลาทั้งหมด 100 ชั่วโมง ซึ่งมันแทบไม่ต่างอะไรกับการบอกตัวเลขราคาเพียงอย่างเดียว
ผมมีตัวอย่างตัวเลขจากบริษัทรับพัฒนาเว็บแห่งหนึ่ง เป็นบริษัทอเมริกาที่มีออฟฟิศอยู่ในไทย (outsource งานมาที่ประเทศไทย) แต่รับงานจากลูกค้าในอเมริกา
Role | Hours | Rates | Subtotal |
---|---|---|---|
Business Strategy |
15 |
$171 |
$2,565 |
Project Management |
44 |
$69 |
$3,036 |
Information Architecture |
30 |
$42 |
$1,260 |
Interface Design |
42 |
$48 |
$2,016 |
Software Architecture |
36 |
$72 |
$2,592 |
Engineering |
524 |
$39 |
$20,436 |
Testing |
128 |
$30 |
$3,840 |
System Administration |
12 |
$36 |
$432 |
TOTAL |
831 |
$44 |
$36,177 |
จะเห็นได้ว่ามีการแตกรายละเอียดของงานออกมา ตั้งแต่การวางกลยุทธ์ทางธุรกิจเพื่อเชื่อมโยงเข้ากับความสามารถของเว็บไซต์ที่จะต้องพัฒนาขึ้น (Business Strategy) การบริหารจัดการโครงการซึ่งเป็นงานคุมคน คุมทรัพยากร และคุมเวลา (Project Management) การออกแบบร่างเว็บไซต์ลงบนกระดาษเพื่อให้ทุกคนในโครงการ (รวมถึงลูกค้า) เห็นภาพเหมือนกัน (Information Architecture) การออกแบบหน้าตาของเว็บไซต์ (Interface Design) การออกแบบซอฟท์แวร์โดยใช้ภาษา UML เพื่อให้โปรแกรมเมอร์เข้าใจตรงกัน (Software Architecture) การเขียนโปรแกรม (Engineering) การทดสอบการใช้งานเว็บไซต์ (Testing) และงานด้านการบริหารระบบ เช่น ติดตั้งซอฟท์แวร์ที่จำเป็นสำหรับเว็บไซต์ (System Administration)
พอลูกค้าได้เห็นตัวเลขแบบนี้ก็ช่วยให้เข้าใจงานพัฒนาเว็บไซต์มากขึ้นครับ ซึ่งถ้าคุยกับลูกค้ามากขึ้นเรื่อยๆ จนได้ requirement ออกมาแล้ว ก็สามารถนำ requirement มาแตกย่อยเป็น module ต่างๆ และใส่รายละเอียดลงไปว่าแต่ละ module ต้องทำงานอะไรบ้าง อย่างละกี่ชั่วโมง
แต่ตัวเลขชั่วโมงนี้ก็เป็นเพียงการประมาณการโดยอาศัยประสบการณ์ของบริษัท แน่นอนว่ามันจะต้องคลาดเคลื่อนเมื่อลงมือทำจริง อาจจะมากไปบ้าง น้อยไปบ้าง แต่ส่วนใหญ่ที่ประมาณไว้มักจะน้อยกว่าเวลาทำจริง ทั้งนี้เพื่อให้ลูกค้าเห็นแล้วรู้สึกว่าใช้เงินและเวลาไม่มากนัก
ทีนี้ในโครงการใหญ่ๆ ลูกค้ามักจะแปรปรวน ชอบเปลี่ยนหรือเพิ่ม requirement อยู่เรื่อย ซึ่งส่งผลกระทบต่อการทำงานและชั่วโมงทำงานอย่างแน่นอน ถ้าเจอเหตุการณ์แบบนี้ก็ต้องตกลงกับลูกค้าตั้งแต่แรก โดยให้ลูกค้าจ่ายตามชั่วโมงที่ทำงานจริง ไม่ใช่ชั่วโมงที่ได้จากการประเมิน ด้วยอัตราค่าชั่วโมงตามที่ตกลงกันไว้ ซึ่งผู้พัฒนาเว็บก็ต้องทำตารางเวลา (timesheet) ที่ใช้ในการทำงานแต่ละอย่างเพื่อส่งให้ลูกค้าดูด้วย รวมถึงการส่งงานให้ลูกค้าดูอยู่เรื่อยๆ เพื่อที่ลูกค้าจะได้เห็นพัฒนาการที่เกิดขึ้นว่าสอดคล้องกับเวลาทำงานที่ใช้ไปหรือเปล่า และถ้าให้ดี ลูกค้าก็ควรจะจ่ายเงินให้ทุกสิ้นเดือน ซึ่งก็เสมือนว่าผู้พัฒนาเว็บเป็นลูกจ้างชั่วคราวของลูกค้านั่นเอง