ข้ามไปที่เนื้อหา

3. การทำงานร่วมกัน#

หน้านี้คือ ภาพว่าทุกคนในบริษัททำงานร่วมกันอย่างไรเมื่อมีระบบใหม่ ทุกเส้นในแผนภาพคือข้อมูลที่ระบบต้องเก็บ และทุกกล่องคือหน้าจอหรือ tool ที่ต้องสร้าง

3.1 ภาพรวม — จากงานลูกค้าถึงตัวเลขต้นทุน#

flowchart LR
    subgraph IN["① งานเข้า"]
        C1["LSM99 / One Group<br/>เหมารายเดือน"]
        C2["คุณตั้ม<br/>งานเป็นชิ้น"]
        C3["เหตุขัดข้อง<br/>จากกะ 24/7"]
    end

    subgraph PLAN["② วางแผน — BA"]
        Q["คิวงานโครงการ<br/>จัดลำดับ · ประเมินเวลา"]
        A["มอบหมายงาน"]
    end

    subgraph DO["③ ลงมือทำ"]
        D1["โปรแกรมเมอร์<br/>ในกะ / OT"]
        D2["UX-UI Designer"]
    end

    subgraph LOG["④ บันทึกเวลา"]
        T["Time Entry<br/>ผ่าน Claude หรือเว็บ"]
    end

    subgraph OUT["⑤ ผลลัพธ์"]
        R1["ต้นทุนรายโครงการ"]
        R2["กำไรรายลูกค้า"]
        R3["คลังความรู้"]
    end

    C1 --> Q
    C2 --> Q
    C3 --> Q
    Q --> A --> D1
    A --> D2
    D1 --> T
    D2 --> T
    T --> R1 --> R2
    D1 --> R3
    D2 --> R3

    classDef inbox fill:#fef3c7,stroke:#d97706,color:#78350f
    classDef plan fill:#e0e7ff,stroke:#4f46e5,color:#1e1b4b
    classDef work fill:#dcfce7,stroke:#16a34a,color:#14532d
    classDef log fill:#fce7f3,stroke:#db2777,color:#831843
    classDef out fill:#dbeafe,stroke:#2563eb,color:#1e3a8a
    class C1,C2,C3 inbox
    class Q,A plan
    class D1,D2 work
    class T log
    class R1,R2,R3 out

อ่านแผนภาพนี้ยังไง

ขั้นที่ ④ คือ จุดคอขวดของทั้งระบบ — ถ้าไม่มีข้อมูลตรงนี้ ขั้นที่ ⑤ เกิดไม่ได้เลย ทุกอย่างที่ออกแบบใน Phase 1 คือการทำให้ขั้นที่ ④ ง่ายจนไม่มีข้ออ้างที่จะไม่ทำ

3.2 งานใหม่เข้าโครงการ#

sequenceDiagram
    autonumber
    actor CU as ลูกค้า
    participant BA as ทีม BA
    participant SYS as ระบบงาน
    participant LEAD as หัวหน้างาน
    actor DEV as ผู้รับผิดชอบ

    CU->>BA: ส่งความต้องการ (Chat / ประชุม)
    BA->>SYS: สร้างงานในโครงการ + ประเมินชั่วโมง
    BA->>SYS: จัดลำดับความสำคัญในคิว
    alt ต้องใช้คนนอกเวลากะ
        BA->>LEAD: ขอกำลังคนเพิ่ม
        LEAD->>SYS: เปิด OT ให้งานนี้
    end
    BA->>SYS: มอบหมายงานให้ผู้รับผิดชอบ
    SYS-->>DEV: แจ้งเตือนใน Google Chat
    DEV->>SYS: รับงาน → เปลี่ยนสถานะเป็น กำลังทำ
    DEV->>SYS: ลงเวลาที่ใช้ (ทุกวัน)
    DEV->>SYS: ปิดงาน + บันทึกความรู้ที่ได้
    SYS-->>BA: แจ้งงานเสร็จ
    BA-->>CU: ส่งมอบ / รายงาน

ข้อมูลที่เกิดขึ้นจาก flow นี้: projectwork_itemtime_entrykb_doc

3.3 ลงเวลาประจำวัน — flow ที่สำคัญที่สุด#

flowchart TD
    START(["จบวัน / จบกะ"]) --> CH{"ลงเวลาผ่านอะไร"}

    CH -->|"คุยกับ Claude"| CL["พิมพ์: วันนี้ทำ LSM99 ระบบสมาชิก 5 ชม.<br/>แก้บั๊กหน้า login 2 ชม."]
    CH -->|"หน้าเว็บ"| WEB["work.keycake.com<br/>เลือกโครงการ + ใส่ชั่วโมง"]

    CL --> PARSE["Claude แปลงเป็นรายการ<br/>แล้วสรุปกลับให้ดู"]
    PARSE --> CONF{"ยืนยันถูกต้องไหม"}
    CONF -->|ไม่ใช่| CL
    CONF -->|ใช่| VALID

    WEB --> VALID["ระบบตรวจสอบ<br/>· โครงการมีจริงไหม<br/>· ชั่วโมงเกินกะ + OT ที่อนุมัติไหม<br/>· ย้อนหลังเกิน 7 วันไหม<br/>· งวดถูกปิดไปแล้วไหม"]

    VALID -->|ไม่ผ่าน| ERR["แจ้งเหตุผล + ให้แก้"]
    ERR --> CH
    VALID -->|ผ่าน| SAVE[("บันทึก time_entry<br/>พร้อม source และข้อความดิบ")]
    SAVE --> DONE(["เสร็จ"])

    classDef good fill:#dcfce7,stroke:#16a34a,color:#14532d
    classDef bad fill:#fee2e2,stroke:#dc2626,color:#7f1d1d
    class SAVE,DONE good
    class ERR bad

ตัวอย่างการลงเวลาผ่าน Claude

พนักงาน: ลงเวลาวันนี้ ทำระบบสมาชิก LSM99 ไป 5 ชม. แล้วแก้บั๊กหน้า login อีก 2 ชม.

Claude: ขอสรุปก่อนบันทึกนะครับ — วันที่ 12 ส.ค. 2569 ① LSM99 · ระบบสมาชิก · 5.0 ชม. · ประเภท: งานในกะ ② LSM99 · ระบบสมาชิก · แก้บั๊กหน้า login · 2.0 ชม. · ประเภท: งานในกะ รวม 7.0 ชม. — ยืนยันบันทึกไหมครับ?

พนักงาน: ยืนยัน → บันทึกเสร็จใน 20 วินาที

กติกาการลงเวลา#

กติกา ค่า เหตุผล
หน่วยที่เล็กที่สุด 0.5 ชั่วโมง เก็บละเอียดกว่านี้ทีมจะเลิกทำ และไม่ช่วยให้ตัดสินใจดีขึ้น
ลงย้อนหลังได้ 7 วัน หลังจากนั้นต้องให้หัวหน้าอนุมัติ
หลังปิดงวด แก้ไม่ได้ ยกเว้น admin แก้พร้อมเหตุผล และถูกบันทึกใน audit log
ต้องระบุโครงการเสมอ ถ้าเป็นงานภายในให้ลงโครงการพิเศษ INTERNAL
ชั่วโมงรวมต่อวัน เตือนเมื่อเกิน 12 ชม. · ปฏิเสธเมื่อเกิน 16 ชม. กันการกรอกผิด

3.4 กะ 24/7 และเหตุขัดข้อง#

flowchart TD
    subgraph MONTH["ก่อนขึ้นเดือนใหม่"]
        L1["หัวหน้างานจัดตารางกะ<br/>ในระบบ"] --> L2["ระบบตรวจ:<br/>ทุกช่วงเวลามีคนคุมไหม<br/>ชนวันลาที่อนุมัติแล้วไหม"]
        L2 --> L3["ประกาศตารางกะ<br/>แจ้งเข้า Google Chat"]
    end

    subgraph DAILY["ระหว่างกะ"]
        S1["เข้ากะ"] --> S2{"มีเหตุขัดข้องไหม"}
        S2 -->|ไม่มี| S3["ทำงานตามคิวที่ BA จ่าย"]
        S2 -->|มี| S4["บันทึกเหตุขัดข้อง<br/>ผูกกับโครงการที่เกี่ยวข้อง"]
        S4 --> S5{"แก้ได้ในกะไหม"}
        S5 -->|ได้| S6["แก้ + ปิดเรื่อง"]
        S5 -->|ไม่ได้| S7["ส่งต่อ + ขอ OT<br/>หรือเรียกคนเพิ่ม"]
        S3 --> S8["จบกะ: ส่งต่องาน (handover)<br/>+ ลงเวลา"]
        S6 --> S8
        S7 --> S8
    end

    L3 --> S1

    classDef plan fill:#e0e7ff,stroke:#4f46e5,color:#1e1b4b
    classDef alert fill:#fee2e2,stroke:#dc2626,color:#7f1d1d
    class L1,L2,L3 plan
    class S4,S7 alert

ทำไมต้องบันทึกเหตุขัดข้องผูกกับโครงการ

เพราะงาน support กินเวลาแบบมองไม่เห็น เมื่อผูกทุกเหตุขัดข้องกับโครงการ จะตอบได้ว่า "ระบบไหนของ LSM99 กินเวลา support มากที่สุด" ซึ่งเป็นข้อมูลตรง ๆ ที่เอาไปเจรจาขอบเขตงานหรือปรับราคาปีถัดไปได้

3.5 การขอ OT#

sequenceDiagram
    autonumber
    actor DEV as พนักงาน
    participant SYS as ระบบ
    actor LEAD as หัวหน้างาน

    Note over DEV,LEAD: OT ต้องได้รับอนุมัติ "ก่อน" ทำงานเสมอ
    DEV->>SYS: ขอ OT — วันที่ / ชั่วโมง / โครงการ / เหตุผล
    SYS->>SYS: ตรวจ — ชนกะเดิมไหม / เกินเพดานเดือนนี้ไหม
    SYS-->>LEAD: แจ้งเตือนขออนุมัติ
    alt อนุมัติ
        LEAD->>SYS: อนุมัติ
        SYS-->>DEV: แจ้งผล — ทำงานได้
        DEV->>SYS: หลังทำเสร็จ ลงเวลาแบบ kind = ot
        SYS->>SYS: คิดต้นทุนด้วยตัวคูณ OT เข้าโครงการนั้น
    else ไม่อนุมัติ
        LEAD->>SYS: ไม่อนุมัติ + เหตุผล
        SYS-->>DEV: แจ้งผล
    end

กติกา

  • OT ต้องอนุมัติก่อนทำ — ลงเวลา kind = ot โดยไม่มีใบอนุมัติ ระบบจะปฏิเสธ
  • OT ย้อนหลัง (เหตุฉุกเฉินกลางดึก) ทำได้ แต่ต้องขออนุมัติภายใน 24 ชั่วโมง และถูกทำเครื่องหมายว่า ย้อนหลัง
  • ระบบเตือนหัวหน้างานเมื่อ OT ของคนใดคนหนึ่งเกินเพดานที่ตั้งไว้ต่อเดือน
  • OT ทุกชั่วโมงต้อง ระบุโครงการ เพราะเข้าต้นทุนโครงการนั้นโดยตรง

3.6 การลา#

flowchart LR
    A["พนักงานขอลา<br/>ผ่าน Claude หรือเว็บ"] --> B["ระบบตรวจ<br/>· สิทธิ์ลาคงเหลือ<br/>· ชนกะที่รับผิดชอบไหม"]
    B -->|ชนกะ| C["เตือน: ต้องหาคนสลับกะก่อน"]
    C --> A
    B -->|ผ่าน| D["ส่งหัวหน้างานอนุมัติ"]
    D -->|อนุมัติ| E["อัปเดตปฏิทินทีม<br/>+ ตัดชั่วโมงว่างออกจากการวางแผน"]
    D -->|ไม่อนุมัติ| F["แจ้งกลับพร้อมเหตุผล"]

    classDef ok fill:#dcfce7,stroke:#16a34a,color:#14532d
    class E ok

การลาไม่เข้าต้นทุนโครงการ แต่ ลดชั่วโมงที่ใช้ได้ (available hours) ของเดือนนั้น ซึ่งมีผลต่อการคำนวณ utilization และการวางแผนกำลังคนของ BA

3.7 ปิดเดือนและออกรายงานต้นทุน#

flowchart TD
    D1["วันที่ 1–3<br/>ทุกคนเคลียร์ timesheet เดือนก่อน"] --> D2{"ระบบตรวจความครบถ้วน"}
    D2 -->|"มีคนลงไม่ครบ"| D3["ส่งรายชื่อให้หัวหน้างานตาม"]
    D3 --> D1
    D2 -->|ครบ| D4["ผู้บริหาร/admin กดปิดงวด<br/>timesheet ล็อก แก้ไม่ได้"]
    D4 --> D5["ระบบคำนวณ<br/>ชั่วโมง × cost_rate ของเดือนนั้น<br/>+ OT × ตัวคูณ + overhead"]
    D5 --> D6["ออกรายงาน"]

    D6 --> R1["ต้นทุนรายโครงการ"]
    D6 --> R2["กำไรรายลูกค้า<br/>LSM99: retainer − ต้นทุนรวม"]
    D6 --> R3["สัดส่วนชั่วโมง<br/>แต่ละโครงการกิน % ของ retainer"]
    D6 --> R4["Utilization รายคน<br/>(ไม่เปิดเผยรายบุคคลต่อสาธารณะ)"]

    D6 --> M["ประชุมทบทวนวันที่ 5"]

    classDef lock fill:#fef3c7,stroke:#d97706,color:#78350f
    classDef rep fill:#dbeafe,stroke:#2563eb,color:#1e3a8a
    class D4 lock
    class R1,R2,R3,R4 rep

3.8 การสะสมความรู้ (Phase 3)#

flowchart LR
    E1["ปิดงานสำคัญ"] --> W["บันทึกความรู้ผ่าน Claude<br/>อะไรพัง แก้ยังไง ทำไม"]
    E2["แก้เหตุขัดข้องในกะ"] --> W
    E3["ตัดสินใจเชิงเทคนิค"] --> W
    W --> KB[("kb.keycake.com<br/>ค้นหาเชิงความหมาย")]
    KB --> U1["คนเข้ากะค้นหาตอนเจอปัญหาซ้ำ"]
    KB --> U2["คนใหม่อ่านตอน onboard"]
    KB --> U3["Claude ใช้ตอบคำถามทีม"]

    classDef kb fill:#f3e8ff,stroke:#9333ea,color:#4c1d95
    class KB kb

กติกา: ระบบจะ เสนอ ให้บันทึกความรู้อัตโนมัติเมื่อปิดงานที่ใช้เวลาเกิน 8 ชั่วโมง หรือเมื่อปิดเหตุขัดข้อง — เสนอ ไม่ใช่บังคับ เพราะการบังคับจะได้บันทึกขยะ

3.9 สรุป: อะไรเปลี่ยนจากวันนี้#

เรื่อง วันนี้ หลังมีระบบ
งานอยู่ที่ไหน ClickUp + Excel work.keycake.com ที่เดียว
คุยงาน Google Chat Google Chat เหมือนเดิม — ระบบส่งแจ้งเตือนเข้าไป ไม่แทนที่
ลงเวลา ไม่มี ทุกคน ทุกวัน < 30 วินาที
ตารางกะ ตกลงกันในแชท ระบบจัด + ตรวจว่าครอบคลุม 24/7 จริง
ขอ OT บอกหัวหน้าในแชท ใบขอในระบบ อนุมัติก่อนทำ ผูกโครงการ
ต้นทุนโครงการ ไม่รู้ รู้ภายใน 5 วันทำการหลังปิดเดือน
ความรู้โครงการ อยู่ในหัวคน kb.keycake.com ค้นหาได้