Bỏ qua menu, vào nội dung chính
Hướng dẫn

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

Thời gian:  2-4 tuần negotiate + 12 tháng commit
Mức độ:  Trung bình
Dành cho:  COO / 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ể.

Hợp đồng

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.

Làm từng bước.

  1. 01

    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. 02

    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. 03

    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. 04

    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. 05

    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

Checklist tổng hợp.

  1. 01

    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. 02

    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. 03

    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. 04

    Operational

    • Communication channel (Slack, email)
    • Ticketing system (Jira, Linear)
    • Monthly reporting template
    • On-call contact info
    • Escalation path khi P1
    • Quarterly review meeting scheduled
Dấu hiệu nguy hiểm
  • 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.
Kinh nghiệm Alodev
  • 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.

Trường hợp cụ thể
có gì khác?

Mô tả bài toán, ALODEV tư vấn đúng nghiệp vụ, miễn phí.