สมมติว่าทีมรับงาน ERP ราคา 600,000 บาท ส่งงานทันและลูกค้ารับมอบตามแผน แต่ที่ปรึกษาต้องกลับไปทำข้อมูลย้ายระบบใหม่หลายรอบ และนักพัฒนาถูกดึงมาช่วยแก้ปัญหาช่วงเปิดใช้จริง พอจะเสนอราคางานถัดไป ทีมจำได้ว่างานหนักกว่าที่คิด แต่ไม่มีตัวเลขว่าหนักตรงไหนและเพิ่มไปเท่าไร
Timesheet คือบันทึกว่าใช้เวลากับงานอะไร เท่าไร ผมเห็นว่าคุ้มที่จะให้ทีมลงเมื่อบริษัทจะเอาข้อมูลไปใช้ตัดสินใจจริง เช่น คิดค่าบริการ เช็กต้นทุน หรือจัดคนให้พอกับงาน ถ้าทุกคนลงเวลาทุกสัปดาห์ แต่ไม่มีใครนำข้อมูลไปปรับอะไรเลย บริษัทกำลังจ่ายค่าเก็บข้อมูลเพิ่มอีกทาง
ชั่วโมงในบทความนี้หมายถึงเวลาที่ใช้กับงาน บริษัทอาจมีระบบบันทึกเวลาเข้าออกและอนุมัติโอทีแยกต่างหาก แต่ละชุดข้อมูลตอบคำถามคนละอย่าง
งานราคาเหมากับงานคิดตามเวลาใช้ข้อมูลคนละแบบ
งานราคาเหมา (fixed price) ใช้ชั่วโมงจริงดูต้นทุนภายใน เทียบกับประมาณการ และหาว่างานช่วงไหนกินแรงเกินแผน เช่น เก็บความต้องการ ย้ายข้อมูล ทดสอบรับมอบ อบรมผู้ใช้ หรือดูแลช่วงเปิดใช้จริง ถ้าลูกค้าขอเพิ่มงาน ให้แยกเวลาไว้เพื่อเห็นผลต่อแผน และใช้ขั้นตอนอนุมัติงานเพิ่มตามสัญญา ราคาตามสัญญาไม่ได้เปลี่ยนตามจำนวนชั่วโมงที่ลง
งานคิดตามเวลาและวัสดุ (time and materials หรือ T&M) ใช้รายการเวลาประกอบการคิดค่าบริการตามเงื่อนไขที่ตกลงกัน เช่น อัตราตามบทบาท งานที่คิดเงินได้ และเพดานชั่วโมง เวลาในโครงการอาจมีทั้งส่วนที่เรียกเก็บได้และส่วนที่บริษัทรับต้นทุนเอง ใน Odoo 19 นโยบายคิดเงินตาม Timesheet เป็นหนึ่งในตัวเลือก นอกเหนือจากราคาเหมาหรือคิดตามงวดส่งมอบ และหน้ากำไรโครงการแยกรายได้กับต้นทุนเวลาของพนักงานตามการตั้งค่า คู่มือ Odoo เรื่อง T&M · คู่มือกำไรโครงการ
ส่งทัน แต่งานกินส่วนต่างไปเท่าไร
ในตัวอย่างสมมติข้างต้น บริษัทตั้งราคาที่ 600,000 บาท วางแผนไว้ 500 ชั่วโมง และใช้อัตราต้นทุนแรงงานรวมเฉลี่ย 800 บาทต่อชั่วโมงเพื่อให้เห็นวิธีคิด เมื่อจบงาน ทีมลงจริง 620 ชั่วโมง
| รายการ | ตามแผน | เมื่อจบงาน |
|---|---|---|
| ราคางาน | 600,000 บาท | 600,000 บาท |
| ชั่วโมงทำงาน | 500 | 620 |
| ต้นทุนแรงงาน | 400,000 บาท | 496,000 บาท |
| ส่วนต่างหลังหักเฉพาะต้นทุนแรงงาน | 200,000 บาท | 104,000 บาท |
งานเกินแผน 120 ชั่วโมง คิดเป็นต้นทุนเพิ่ม 96,000 บาท ตัวเลขส่วนต่างนี้ยังไม่หักค่าใช้จ่ายอื่น เช่น ผู้รับเหมาช่วง ค่าเดินทาง หรือค่าโครงสร้างพื้นฐาน หากใช้กับงานจริง ควรใช้อัตราต้นทุนภายในของแต่ละบทบาทหรือแต่ละคนตามที่บริษัทกำหนด และแยกจากอัตราขาย
ถ้าเวลาเกินเพราะต้องแปลงไฟล์ข้อมูลลูกค้าซ้ำ ข้อมูลนี้ช่วยให้ทีมตัดสินใจได้ว่าจะเผื่องบย้ายข้อมูลรอบหน้า กำหนดรูปแบบไฟล์ก่อนเริ่ม หรือทำเครื่องมือตรวจไฟล์ให้เจอปัญหาตั้งแต่ต้น ถ้าเวลาเกินเพราะขอบเขตเพิ่ม วิธีจัดการก็เปลี่ยนไป
ชั่วโมงที่เรียกเก็บไม่ได้ก็ช่วยให้บริษัทส่งงานได้
งานรีวิวโค้ด สอนเพื่อนร่วมทีม ปรับเครื่องมือย้ายข้อมูล หรือช่วยประเมินงานก่อนขาย ใช้เวลาจริงและอาจมีประโยชน์ต่อธุรกิจ ส่วนจะคิดค่าบริการลูกค้าได้หรือไม่ขึ้นกับสัญญา ผมจะแยกให้เห็นว่างานนั้นเป็นเวลาของโครงการไหน หรือเป็นงานภายในประเภทใด เพื่อให้การจัดทีมรอบถัดไปเผื่อกำลังไว้
การวางแผนกำลังคนยังต้องดูวันลา ทักษะที่ต้องใช้ และเวลาที่ติดภาระอื่นด้วย ถ้าใช้สัดส่วนชั่วโมงที่เรียกเก็บเงินได้ ให้ระบุให้ชัดว่าหารด้วยชั่วโมงที่ลงหรือชั่วโมงทำงานที่พร้อมจัดสรร และใช้เกณฑ์เดียวกันเวลาจะเทียบหลายช่วง บทบาทและช่วงของโครงการต่างกันได้มาก จึงควรใช้ตัวเลขนี้คุยเรื่องการจัดงานโดยดูบริบทของทีม
การลงเวลามีต้นทุน และตัวเลขเปลี่ยนพฤติกรรมได้
พอให้คนเลือกหมวดเยอะหรือขอให้จำย้อนหลังปลายเดือน ข้อมูลก็คลาดเคลื่อนง่าย ถ้าหัวหน้าเอาชั่วโมงมาจัดอันดับ พนักงานอาจย้ายเวลาจากงานภายในไปไว้ในงานลูกค้า หรือเลี่ยงช่วยเพื่อนเพราะชั่วโมงนั้นไม่เข้าเป้า บริษัทอาจได้รายงานที่ดูดีขึ้นพร้อมกับข้อมูลที่ใช้วางแผนได้น้อยลง
งานวิจัย SPACE ของ Nicole Forsgren และคณะมองผลิตภาพของนักพัฒนาหลายด้าน รวมถึงคุณภาพของผลงาน การสื่อสารและการร่วมมือ ตลอดจนความลื่นไหลของการทำงาน ผมจะใช้ Timesheet ควบคู่กับสิ่งที่ทีมส่งมอบ คุณภาพงาน และงานที่ต้องกลับมาแก้ เวลาคุยเรื่องกำลังคนให้เริ่มจากภาพรวมทีม ส่วนข้อมูลรายคนใช้เท่าที่จำเป็นต่อการตรวจต้นทุนหรือใบแจ้งหนี้ และบอกทีมให้ชัดว่าใครดูข้อมูลได้และนำไปใช้อะไร งานวิจัย The SPACE of Developer Productivity
วิธีเริ่มที่ใช้เวลาน้อยและตรวจข้อมูลได้ทุกสัปดาห์
- ตั้งหมวดจากสิ่งที่จะใช้ตัดสินใจ ให้พนักงานลงวันที่ โครงการ งานหรือหมวด จำนวนชั่วโมง และหมายเหตุเมื่อจำเป็น เริ่มจากหมวดที่ทีมแยกได้จริง เช่น งานส่งมอบ งานซัพพอร์ต งานก่อนขาย และงานภายใน ถ้าต้องแยกช่วงงาน ERP เพื่อปรับราคา ให้เพิ่มเฉพาะช่วงที่มีคนใช้ข้อมูล
- ลงใกล้เวลาที่ทำงาน แล้วปิดรอบสัปดาห์ เปิดให้ลงจากงานในระบบได้ ใช้ระดับความละเอียดที่เหมาะกับการบริหารและเงื่อนไขการคิดเงิน มีทางลงงานแทรกจริงและแก้รายการผิดได้ ไม่เติมเวลาให้ครบตามตัวเลขที่ตั้งไว้
- ให้ผู้จัดการโครงการตรวจรายการที่มีผลต่อการตัดสินใจ ดูงานลงผิดโครงการ เวลาที่เกินแผน และรายการที่เตรียมส่งคิดเงินตามสัญญา หากรายการที่อนุมัติแล้วต้องแก้ ให้เก็บร่องรอยการแก้ไขไว้สำหรับตรวจยอดและอธิบายกับลูกค้า คู่มือ Odoo Timesheets
- เอาข้อมูลกลับมาคุยกับทีม ถ้างานย้ายข้อมูลเริ่มเกินแผน ให้เช็กว่างานที่เหลือต้องใช้แรงเท่าไร แล้วตัดสินใจว่าจะเพิ่มคน เปลี่ยนกำหนดส่ง หรือคุยเรื่องขอบเขต หลังปิดงานจึงเอาเวลาไปปรับประมาณการรอบหน้า
ถ้าจะเริ่มกับโครงการเดียว ผมจะเลือกงานที่บริษัทมีคำถามชัดอยู่แล้ว เช่น เราตั้งราคางานย้ายข้อมูลต่ำไปหรือเปล่า จากนั้นลองเก็บเวลาสองสามรอบสัปดาห์และดูว่าข้อมูลช่วยตอบคำถามนั้นได้แค่ไหน หมวดใดที่ทีมเสียเวลากรอกแต่ไม่มีคนใช้ ก็เอาออกได้