Fixดูแลระบบ PHP / Laravel เดิม
แพ็กเกจนี้คืออะไร
แพ็กนี้คือการลงมือจริงกับสิ่งที่รายงานชี้ไว้ แก้บั๊กที่ค้างอยู่ตามรายการที่ตกลงกัน เพิ่มฟีเจอร์ตามขอบเขตที่ระบุไว้ก่อนเริ่ม และปรับส่วนที่ทำให้ระบบช้า โดยมีตัวเลขก่อนและหลังให้ดูทุกครั้ง ไม่ใช่บอกว่าเร็วขึ้นแล้วเฉยๆ
ของที่ติดมากับงานนี้เสมอคือชุดทดสอบที่คลุมส่วนที่ผมแก้ ข้อนี้สำคัญกว่าที่เห็น เพราะเหตุผลที่ระบบเดิมกลายเป็นของที่ไม่มีใครกล้าแตะ ไม่ใช่เพราะโค้ดแย่ แต่เพราะไม่มีอะไรบอกได้ว่าแก้แล้วพังตรงไหน พอมีชุดทดสอบ คนถัดไปที่มาแก้ รวมถึงทีมของคุณเอง จะรู้ทันทีภายในไม่กี่วินาที
แพ็กนี้รวมการตรวจสภาพโค้ดไว้แล้ว ไม่ต้องซื้อแยก และถ้าคุณซื้อแพ็ก Inspect ไปก่อนหน้านี้ ผมหักออกให้เต็มจำนวน
ลองดูของจริง
| ขอบเขต | แก้บั๊ก 6 เรื่อง · เพิ่มฟีเจอร์ 2 เรื่อง |
|---|---|
| ระยะเวลา | 14 วัน · ส่งเป็น 4 งวด |
| โค้ด | รวมเข้า repo ของคุณแล้ว 23 pull request |
| สถานะ | ส่งมอบครบตามขอบเขต |
01 สรุปงานที่ส่งมอบ
ทุกอย่างในรายการที่ตกลงกันถูกปิดครบ และทุกจุดที่แก้มีชุดทดสอบคลุมไว้แล้ว ส่วนที่วัดได้เป็นตัวเลขผมใส่ทั้งก่อนและหลังไว้ให้เทียบ ไม่ได้เขียนแค่ว่าเร็วขึ้น
- ปิดแล้วบั๊กทั้ง 6 เรื่องตามรายการ รวมถึงยอดรายงานขาดในเดือนที่มี 31 วัน ซึ่งเป็นเรื่องที่ค้างมาสองปี
- เพิ่มแล้วหน้าสรุปยอดรายคน และการส่งออกเป็น Excel ตามขอบเขตที่เขียนไว้ก่อนเริ่ม
- ทีมคุณทำต่อได้เอกสารส่งมอบ 11 หน้า และเทสต์ 34 ตัวที่รันเองได้ด้วยคำสั่งเดียว
02 ตัวเลขก่อนและหลัง
| หน้าจอ | ก่อน | หลัง |
|---|---|---|
| หน้ารายงานเดือน | 31.4 วิ | 1.8 วิ |
| ค้นหาลูกค้า | 4.2 วิ | 0.3 วิ |
| ออกใบเสร็จ | 2.1 วิ | 1.9 วิ |
03 ชุดทดสอบที่เพิ่มให้
| ออกใบเสร็จและคำนวณภาษี | 12 ตัว |
| ตัดสต็อกและคืนสต็อก | 9 ตัว |
| คำนวณส่วนลดและค่าคอม | 8 ตัว |
| สิทธิ์ผู้ใช้และการล็อกอิน | 5 ตัว |
เอกสารฉบับเต็มมีรายการ commit ทีละเรื่อง และวิธีรันเทสต์เองสำหรับทีมคุณ
นี่คือเอกสารตัวอย่างที่ย่อมาจากของจริง ตัวเลขและชื่อระบบเป็นของสมมติ แต่รูปแบบ หัวข้อ และวิธีเขียนเป็นแบบเดียวกับที่ส่งให้ลูกค้าจริงทุกประการ
สิ่งที่คุณจะได้ ทั้งหมด
รายการนี้คือขอบเขตงานทั้งหมดของแพ็กเกจนี้ ไม่มีข้อไหนซ่อนไว้ในสัญญา
- รวมแพ็กเกจ Inspect ไว้แล้ว ไม่ต้องซื้อแยก
- แก้บั๊กที่ค้างอยู่ตามรายการที่ตกลงกัน
- เพิ่มฟีเจอร์ใหม่ตามขอบเขตที่ระบุไว้ก่อนเริ่ม
- เขียนชุดทดสอบคลุมส่วนที่แก้ ให้แก้ครั้งหน้าไม่พังย้อน
- ปรับคิวรีและดัชนีที่ทำให้ระบบช้า พร้อมตัวเลขก่อนหลัง
- เอกสารส่งมอบให้ทีมคุณอ่านแล้วทำต่อเองได้
- การรื้อเขียนใหม่ทั้งระบบด้วยเทคโนโลยีอื่น ถ้าตรวจแล้วเห็นว่าควรรื้อจริง ผมจะบอกตรงๆ และเสนอเป็นงานสร้างใหม่แยกต่างหาก ไม่ยัดเข้ามาในงานดูแล
- งาน WordPress ปลั๊กอินและธีม เป็นคนละสายกับ Laravel ตอนนี้ผมยังไม่รับ
- การกู้ระบบที่ถูกแฮ็กไปแล้ว ต้องประเมินเป็นรายกรณีก่อน เพราะขอบเขตความเสียหายต่างกันมาก
- ค่าเซิร์ฟเวอร์และบริการภายนอกที่ระบบใช้ จ่ายตรงกับผู้ให้บริการ ผมแจ้งราคาให้ก่อนเสมอ
คำถามที่พบบ่อยของแพ็กเกจนี้
แก้แล้วระบบส่วนอื่นพังจะทำยังไง
นั่นคือเหตุผลที่ผมเขียนชุดทดสอบคลุมส่วนที่จะแก้ก่อนลงมือ และส่งงานเป็นงวดให้คุณเห็นก่อนไปต่อ ถ้าเกิดปัญหาจากงานที่ผมทำ ผมแก้ให้ฟรีในช่วงรับประกัน ส่วนของที่พังอยู่แล้วก่อนผมเข้ามาและไม่ได้อยู่ในขอบเขต อันนั้นคิดแยกและแจ้งราคาก่อนเสมอ
มีบั๊กแค่จุดเดียว ไม่อยากจ้างทั้งก้อน
รับครับ งานแก้จุดเดียวคิดแยกเริ่มต้น ฿2,900 ต่อเรื่อง รวมการอ่านโค้ดส่วนที่เกี่ยวข้องให้เข้าใจก่อนแก้ และเขียนชุดทดสอบคลุมจุดนั้นไว้ให้ ไม่ใช่แก้ให้หายอาการแล้วจบ ทักมาพร้อมบอกอาการได้เลย
ทำงานร่วมกับเดฟในทีมได้ไหม
ได้ครับ และผมชอบแบบนั้นมากกว่า ผมทำงานผ่าน pull request ให้ทีมคุณรีวิวได้ทุกครั้ง เขียนเอกสารและชุดทดสอบไว้ให้อ่านแล้วทำต่อเองได้ เป้าหมายคือทีมคุณไม่ต้องพึ่งผมตลอดไป ไม่ใช่การผูกคุณไว้กับผม
ทำไมไม่รื้อเขียนใหม่ให้เลย จะได้จบ
เพราะระบบที่ใช้มาหลายปีมีตรรกะทางธุรกิจที่ถูกต้องฝังอยู่ในนั้น ซึ่งส่วนใหญ่ไม่มีใครเขียนไว้เป็นเอกสาร การรื้อคือการทิ้งของที่พิสูจน์แล้วว่าใช้ได้ แล้วไปเริ่มนับหนึ่งใหม่กับบั๊กชุดใหม่ที่ยังไม่เจอ ผมเสนอให้รื้อเฉพาะตอนที่ตรวจแล้วเห็นว่าต่อยอดแพงกว่าจริง และเวลาเสนอผมแยกเป็นงานสร้างใหม่ต่างหาก ไม่ยัดเข้ามาในงานดูแล
จ่ายยังไง มีแบ่งงวดไหม
แบ่งเป็นงวดตามชิ้นงานที่คุณเห็นแล้วครับ ไม่ใช่ตามเวลาที่ผ่านไป โค้ดเข้า repo ของคุณตั้งแต่วันแรก คุณจึงเห็นความคืบหน้าจริงตลอดทาง ไม่ต้องรอถึงวันส่งมอบถึงจะรู้ว่าเกิดอะไรขึ้นบ้าง