Đổi nhà cung cấp phần mềm giữa chừng làm được mà không mất việc nếu đi đúng thứ tự: đọc điều khoản chấm dứt, giành lại quyền với các tài khoản trước, nhận mã nguồn và dữ liệu, cho đơn vị mới đánh giá mã, rồi mới gửi thông báo chấm dứt. Làm ngược (chấm dứt trước, đòi mã sau) là cách nhanh nhất để mất đòn bẩy. Trong lúc chuyển, phần mềm đang chạy phải được giữ nguyên, không ai sửa gì ngoài lỗi nghiêm trọng.

Bước 1: đọc hợp đồng trước khi nói với ai
- Điều khoản chấm dứt: các trường hợp được chấm dứt, thời hạn báo trước, phần đã làm được xử lý thế nào.
- Sở hữu trí tuệ: mã nguồn thuộc ai, từ khi nào (thường là sau khi thanh toán đủ).
- Thanh toán: đã trả tới đợt nào, phần việc tương ứng là gì.
- Bảo mật: nghĩa vụ của hai bên sau khi chấm dứt.
Ví dụ về một điều khoản chấm dứt rõ: Điều khoản dịch vụ của ALODEV (mục 7) nêu ba trường hợp (hai bên thoả thuận, một bên vi phạm nghiêm trọng, bất khả kháng), và trong cả ba, ALODEV bàn giao toàn bộ phần đã hoàn thành (mã nguồn, tài liệu) tương ứng số tiền khách đã thanh toán. Hợp đồng hiện tại của bạn không có câu tương tự thì cần thương lượng phần này trước khi báo chấm dứt.

Bước 2: giành lại tài khoản
Việc đầu tiên, trước cả mã nguồn, là quyền với tài khoản: tên miền, máy chủ, kho mã, cửa hàng ứng dụng, các dịch vụ trả tiền. Tài khoản nào đứng tên doanh nghiệp thì chỉ cần đổi mật khẩu và rà người có quyền. Tài khoản nào đứng tên nhà cung cấp thì đề nghị chuyển quyền sở hữu, việc này có thể mất thời gian (ví dụ chuyển ứng dụng giữa hai tài khoản nhà phát triển phải theo quy trình của Apple, Google). Bắt đầu sớm.
Bước 3: nhận mã nguồn và dữ liệu
| Nhận gì | Kiểm thế nào |
|---|---|
| Mã nguồn | Kho có lịch sử; phiên bản trong kho khớp với phiên bản đang chạy |
| Cấu hình, biến môi trường | Danh sách đủ để dựng lại; mật khẩu thật giao riêng |
| Cơ sở dữ liệu | Bản sao lưu mới nhất, khôi phục thử được |
| Tài liệu | Kiến trúc, cơ sở dữ liệu, triển khai; ghi rõ phần nào chưa có |
| Danh sách lỗi và việc dở | Việc đang làm, lỗi đã biết chưa sửa |
Dòng đầu quan trọng: mã trong kho phải là mã đang chạy thật. Có trường hợp phiên bản chạy trên máy chủ đã được sửa trực tiếp mà không đẩy lên kho. Đơn vị mới so được hai bản trong vài giờ.
Bước 4: cho đơn vị mới đánh giá trước khi chấm dứt
Trước khi gửi thông báo chấm dứt, thuê đơn vị mới đánh giá mã nguồn và tài liệu đã nhận: dựng lại được không, chất lượng mã thế nào, cần bao lâu để nắm được. Kết quả đánh giá cho biết còn thiếu gì cần đòi thêm, lúc nhà cung cấp cũ còn trong hợp đồng và còn nghĩa vụ hợp tác.
Bước 5: chấm dứt và thanh lý
Chấm dứt bằng văn bản, dẫn đúng điều khoản. Lập biên bản thanh lý ghi khối lượng đã hoàn thành, số tiền đã trả, những gì đã bàn giao và nghĩa vụ còn lại (bảo mật, xoá dữ liệu thật khỏi môi trường của họ). Giữ giọng làm việc: đơn vị cũ còn là người hiểu hệ thống nhất, một vài câu hỏi của đơn vị mới trong tháng đầu sẽ cần họ trả lời.
Giữ phần mềm chạy trong lúc chuyển
- Đóng băng thay đổi: không thêm tính năng trong lúc chuyển, chỉ sửa lỗi nghiêm trọng.
- Sao lưu thủ công một bản ngay trước khi đổi quyền truy cập.
- Ghi lại người dùng đang gặp lỗi gì, để đơn vị mới biết ưu tiên.
- Báo trước cho người dùng nội bộ nếu có thời gian bảo trì.
Phòng từ đầu cho lần sau
Mọi khó khăn ở trên nhỏ đi rất nhiều nếu ngay từ hợp đồng đầu, tài khoản và kho mã đã đứng tên doanh nghiệp, mã được đẩy lên kho hằng ngày, và điều khoản chấm dứt ghi rõ phần đã làm được bàn giao thế nào. ALODEV công bố các điều đó ở trang Cam kết mã nguồn, kèm dòng: doanh nghiệp tự bảo trì hoặc thuê đơn vị khác không cần xin phép ALODEV.
Tháng đầu với đơn vị mới
Đơn vị mới cần thời gian đọc mã trước khi sửa được gì. Tháng đầu nên dành cho ba việc: dựng lại hệ thống trên môi trường thử của họ, viết lại phần tài liệu còn thiếu, và sửa vài lỗi nhỏ để làm quen. Giao ngay một tính năng lớn trong tháng đầu là cách nhanh nhất để có lỗi mới chồng lên lỗi cũ. Bài văn hoá review mã trên blog Trần Công Thắng mô tả cách một đội đọc và nhận xét mã của người khác, việc đơn vị mới sẽ làm nhiều nhất trong tháng này.

Những gì không nên làm
- Gửi thông báo chấm dứt trước khi có quyền với tên miền và máy chủ.
- Để đơn vị mới sửa trực tiếp trên hệ thống thật khi chưa dựng được môi trường thử.
- Xoá quyền của đơn vị cũ trước khi nhận đủ mã nguồn và bản sao lưu.
- Tranh luận ai đúng ai sai qua nhóm chat thay vì văn bản dẫn điều khoản.
- Hứa với người dùng nội bộ ngày có tính năng mới khi chưa xong việc chuyển giao.
Mỗi việc trong danh sách đều từng làm một cuộc chuyển nhà cung cấp kéo dài thêm nhiều tuần.
Sau tháng đầu, yêu cầu đơn vị mới viết một báo cáo ngắn về tình trạng mã nguồn: phần nào ổn, phần nào rủi ro, phần nào cần viết lại. Báo cáo này là cơ sở để lập kế hoạch và ngân sách cho các tháng tiếp theo, thay vì mỗi lần sửa lại phát hiện thêm việc.
Câu hỏi thường gặp
Đổi nhà cung cấp phần mềm giữa chừng có được không?
Được, theo điều khoản chấm dứt của hợp đồng. Nên giành lại tài khoản và nhận mã nguồn trước khi gửi thông báo chấm dứt.
Nhà cung cấp cũ không giao mã nguồn thì sao?
Đối chiếu điều khoản sở hữu và thanh toán trong hợp đồng; nếu đã thanh toán phần việc tương ứng mà không được giao, cần hỏi luật sư về bước tiếp theo.
Đơn vị mới có tiếp quản được mã của người khác không?
Thường được nếu mã dùng công nghệ phổ biến và có tài liệu. Thời gian nắm hệ thống phụ thuộc chất lượng mã; nên cho đơn vị mới đánh giá trước.
Có mất dữ liệu khi đổi nhà cung cấp không?
Không, nếu cơ sở dữ liệu đứng tên doanh nghiệp và có bản sao lưu đã thử khôi phục. Rủi ro lớn khi dữ liệu nằm trên máy chủ của nhà cung cấp cũ.
Bao lâu để chuyển xong?
Tuỳ quy mô hệ thống và mức hợp tác của đơn vị cũ; phần tốn thời gian nhất thường là chuyển tài khoản đứng tên nhà cung cấp.





