Bỏ qua menu, vào nội dung chính

Cách thương lượng hợp đồng bảo trì phần mềm

2-4 tuần negotiate + 12 tháng commitTrung bìnhCOO / Operations / IT Manager

Negotiate retainer maintenance qua 5 nguyên tắc: (1) Tier structure theo hours/month, (2) SLA rõ ràng (P1<4h, P2<24h, P3<1week), (3) Scope inclusion/exclusion explicit, (4) Exit clause + handover, (5) Quarterly review + adjustment. Phí tham khảo: 5-30 triệu/tháng cho web app medium. Đừng commit lâu hơn 12 tháng trừ khi có discount đáng kể.

Sau bảo hành 12 tháng từ vendor build, doanh nghiệp phải decide: thuê retainer maintenance hay tự maintain. Retainer thường rẻ hơn hire 1 dev (5-30tr/tháng vs 30-60tr/tháng). Nhưng phải negotiate đúng để không bị trả phí ảo.

Các bước

  1. Audit nhu cầu thực - bao nhiêu hours/tháng cần

    1 tuần

    Track 3-6 tháng cuối: bao nhiêu issue, bao nhiêu thay đổi, bao nhiêu giờ vendor đã spend. Đây là baseline negotiate.

    • Track ticket trong 3 tháng cuối: P1 (critical), P2 (high), P3 (low)
    • Track CR (Change Request) - feature mới sau go-live
    • Calculate hours/month thực tế vendor đã spend (kèm bảo hành)
    • Predict next 12 tháng: stable hay grow? Cần thêm features?
    • Identify peak season - thời điểm cần response nhanh nhất

    Kết quả: Nhu cầu document - hours/month + complexity + peak periods

  2. Compare 2-3 vendor options

    1-2 tuần

    Vendor build hiện tại không phải lựa chọn duy nhất. Compare với 1-2 vendor khác - leverage để negotiate hoặc switch nếu giá tốt hơn.

    • Get quote từ vendor build hiện tại + 2 vendor khác
    • Compare tier structure: hours/month, hourly rate, response SLA
    • Verify capacity vendor mới handle codebase hiện tại (familiarity)
    • Switch cost: 2-4 tuần handover + risk regression
    • Calculate 12-month total cost cho mỗi option

    Kết quả: Comparison table - 3 options với pros/cons

  3. Negotiate tier + SLA rõ ràng

    1-2 tuần

    Retainer 'bao gồm hết' = mơ hồ. Phải có tier rõ + SLA cụ thể. Document trong hợp đồng.

    • Tier proposed: 10h/month base, 20h/month standard, 40h/month premium
    • Hourly rate over-quota: thường 600k-900k/giờ (rẻ hơn ad-hoc)
    • SLA P1 (system down): response <4h, fix <24h
    • SLA P2 (function broken): response <24h, fix <1 week
    • SLA P3 (minor UX): response <48h, fix <2 weeks
    • Negotiate: weekend coverage, holiday coverage

    Kết quả: Term sheet với tier + SLA + rate clear

  4. Scope inclusion/exclusion explicit

    1 tuần

    'Maintenance' nghĩa gì? Bug fix? Hay cả new feature? Document rõ trong hợp đồng để tránh dispute.

    • Include: bug fix code đã bàn giao, security patches, performance issues
    • Include: minor UX tweaks (color, copy), small CR <4h
    • Exclude (tính phí riêng): new features, major UX redesign, integration với system mới
    • Exclude: hardware/infra cost (hosting, CDN, domain)
    • Exclude: 3rd party license fees (Cloudflare, Sentry, etc.)
    • Decide: vendor có quyền access production data không? (NDA cover)

    Kết quả: Scope document - clear inclusion/exclusion

  5. Exit clause + handover plan

    1 tuần

    Always plan for exit. Bad vendor lock-in xảy ra khi không có exit clause. Document handover process từ ngày 1.

    • Notice period: 30-60 ngày trước expiry - đủ để switch
    • Handover requirements: documentation up-to-date, knowledge transfer 2 buổi
    • Code access: KH luôn có repository access (verify từ ngày 1)
    • Credentials transfer: list tất cả accounts/keys cần transfer
    • Penalty cho vendor nếu underperform: refund X% retainer + termination right
    • Quarterly review meeting - quyết định extend hay switch

    Kết quả: Exit plan + signed retainer contract

Danh mục kiểm

  1. Pre-negotiation

    • Audit 3-6 tháng usage thực tế
    • Track P1/P2/P3 ticket types
    • Track CR hours
    • Predict next 12 tháng workload
    • Compare 2-3 vendor quotes
  2. Contract terms

    • Tier hours/month clear
    • Hourly rate over-quota
    • SLA P1/P2/P3 specific
    • Weekend/holiday coverage
    • Inclusion/exclusion explicit
    • Quarterly review schedule
  3. Protection clauses

    • Notice period 30-60 ngày
    • Handover requirements detailed
    • Code repository access KH có
    • Credentials transfer plan
    • Refund clause nếu vendor underperform
    • Termination right protection
  4. Operational

    • Communication channel (Slack, email)
    • Ticketing system (Jira, Linear)
    • Monthly reporting template
    • On-call contact info
    • Escalation path khi P1
    • Quarterly review meeting scheduled

Rủi ro và lưu ý

Dấu hiệu rủi ro

  • Retainer 'unlimited bug fix'. Vendor không bao giờ offer unlimited honest. Họ sẽ define 'bug' narrow và charge mọi thứ khác. Demand specific scope.
  • Lock-in 24+ tháng để discount. Tránh commit >12 tháng. Tech + nhu cầu đổi nhanh. Lock-in dài = mất flexibility, không leverage negotiate.
  • Không có exit clause. Vendor giữ knowledge + access - không thể switch. Demand handover plan + repo access từ ngày 1.
  • SLA generic - 'best effort'. 'Best effort' không enforceable. Specific SLA với time + penalty: 'P1 fix <24h, không fix = refund 20% monthly'.
  • Trả retainer mà không dùng. Pay 10tr/tháng nhưng chỉ dùng 2h = waste. Quarterly review usage. Downgrade tier nếu over-paying.

Lưu ý khi làm

  • Negotiate annual nhưng cancel quarterly. Annual contract = discount tốt hơn. Add clause cancel quarterly với 30-day notice = flexibility + discount.
  • Banking hours model. Thay vì 'hours/month fixed', dùng 'banking' model - unused hours roll over 3 months max. Khuyến khích plan work, không waste retainer.
  • Track satisfaction per quarter. Mỗi quarter review: KH satisfaction 1-10? Vendor performance? Decide extend/switch. Don't auto-renew.
  • Multi-vendor strategy cho critical app. Critical production app: có 2 vendor trong network có thể work on code. Tránh single point of failure. Cost cao hơn nhưng peace of mind.

Công cụ gợi ý

Câu hỏi thường gặp

Retainer cho web app medium giá thế nào?

Web app medium (5-15k user/ngày, 1 codebase): 5-15tr/tháng cho tier basic (10h/month), 15-30tr/tháng tier premium (30h/month + on-call). Web app large (50k+ user) + multiple integrations: 30-80tr/tháng. So với hire 1 dev full-time (30-60tr/tháng), retainer flex hơn cho early stage.

Khi nào nên tự maintain in-house thay retainer?

Tự maintain khi: (1) Có 1 dev full-time worth justify (>2 dự án parallel), (2) Update tính năng >1 lần/tháng, (3) Product là core business cần kiểm soát chặt. Retainer khi: smaller scope, sporadic work, không want HR overhead, sản phẩm stable.

Vendor build refuse retainer fair price - switch vendor mới?

Risky nhưng có thể. Switch cost: 2-4 tuần handover, risk regression bug, dev mới learn codebase. Tier 1 vendor thường charge 20-50% premium cho 'inherit codebase'. Calculate: cost switch vs over-pay original vendor cho 12 tháng. Có khi pay premium ngắn hạn rẻ hơn switch.

On-call 24/7 - có nên trả thêm?

Cho 99% web app SME: không cần. P1 incident sau giờ làm hiếm, fix sáng hôm sau OK. Cho banking, e-commerce live 24/7, healthcare: cần 24/7 on-call. Phí thường +50% retainer base. Verify response time guarantee thực thi được.

Vendor không respond đúng SLA - handle thế nào?

Document mọi incident với time stamp (ticket system Jira/Linear). Sau 2-3 lần miss SLA: (1) Escalate management vendor, (2) Demand refund per contract clause, (3) Switch vendor nếu không cải thiện trong 60 ngày. Đừng tolerate - vendor sẽ test bao xa bạn chịu.

Trao đổi về dự án

Cần tư vấn?