Mua dịch vụ hiện đại hóa COBOL không giống bất kỳ hạng mục phần mềm nào khác. Hệ thống cần xử lý đã chạy ba bốn mươi năm, không một ai còn làm việc ở đó hiểu trọn vẹn nó, và cái giá của việc làm hỏng được đo bằng những lần báo cáo tuân thủ thất bại chứ không phải bằng vài sprint bị lỡ. Trong khi đó, các hồ sơ thầu nằm trên bàn bạn đều hứa hẹn cùng một kết quả với những mức giá cách nhau rất xa.
Bài viết này trình bày một hợp đồng nghiêm túc thực sự chứa những gì, các kiểu nhà cung cấp khác nhau ở đâu, và câu hỏi nào tách được một hồ sơ dựng trên bằng chứng khỏi một hồ sơ dựng trên sự lạc quan. Nó mặc định rằng bạn chính là người sẽ phải bảo vệ quyết định đó về sau.
Cần nhìn vào đâu: một đề xuất hiện đại hóa COBOL đáng tin gồm khảo sát hiện trạng, thiết kế kiến trúc đích, chuyển dữ liệu, chuyển đổi mã hoặc đưa sang nền chạy mới, một chương trình kiểm thử dựa trên đối chiếu, giai đoạn chạy song song, kế hoạch cắt chuyển và chuyển giao tri thức. Một hồ sơ chỉ định giá phần chuyển đổi mã không phải là kế hoạch cho cả chương trình. Nó là một phần tư rẻ nhất của kế hoạch đó.
Dịch vụ hiện đại hóa COBOL thực sự gồm những gì
Hỏi ba nhà cung cấp thì bạn sẽ nhận về ba định nghĩa khác nhau về phạm vi. Thống nhất danh mục hạng mục trước khi so giá là việc hữu ích nhất bạn có thể làm ở giai đoạn này, bởi một hồ sơ bỏ mất nửa khối lượng công việc bao giờ cũng đẹp hơn trên trang tóm tắt.
Khảo sát và phân tích hiện trạng đi trước. Nhà cung cấp phân tích toàn bộ hệ thống, dựng bản đồ phụ thuộc và dòng đời dữ liệu, chỉ ra phần mã đã chết, rồi đưa ra bản kiểm kê các chương trình, copybook, luồng công việc theo lô và đối tượng cơ sở dữ liệu. Giai đoạn này cũng phải nêu ra những thứ đẩy chi phí lên: các mô đun hợp ngữ, những cách xử lý giao dịch khác thường, các bố cục bản ghi biến thể, và tất cả những gì trình biên dịch đã lặng lẽ chấp nhận suốt mấy chục năm.
Kiến trúc đích đến sau đó. Ai đó phải quyết định hệ thống sẽ trở thành cái gì: một khối lượng công việc COBOL được đưa sang nền chạy mới, một mã nguồn đã chuyển đổi sang ngôn ngữ hiện đại, một tập hợp các dịch vụ, hoặc một cách kết hợp được chia thành nhiều giai đoạn. Quyết định này phải nằm trước khi bắt đầu chuyển đổi, và phải được ghi lại kèm lý do nhìn thấy được chứ không chỉ là một lời khẳng định.
Chuyển dữ liệu bao gồm thiết kế lược đồ, trích xuất, chuyển đổi và đối chiếu. Các định dạng dữ liệu trên mainframe mang theo những ý nghĩa mà một lược đồ quan hệ không diễn đạt trực tiếp được, nên phần việc này mang tính phân tích hơn là máy móc.
Chuyển đổi mã hoặc đưa sang nền chạy mới là phần ai cũng chú ý, và thường chỉ chiếm phần thiểu số trong tổng công sức. Hướng dẫn của chúng tôi về công cụ di trú mainframe nói rõ tự động hóa làm được gì và không làm được gì ở đây.
Những giai đoạn người mua hay cắt nhất
Kiểm thử và đối chiếu là nơi tiền thực sự chảy tới. Một chương trình làm đến nơi sẽ dựng một bộ khung chạy hệ thống cũ và hệ thống mới trên cùng dữ liệu đầu vào rồi so từng trường một ở đầu ra, sau đó xử lý từng khác biệt cho tới khi mỗi cái hoặc được sửa hoặc được chấp nhận chính thức. Đây tự thân đã là một dự án phần mềm và phải được định giá như vậy.
Chạy song song và cắt chuyển nghĩa là vận hành cả hai hệ thống trong một khoảng thời gian đã định với đúng khối lượng của môi trường thật, rồi mới chuyển sang, với một phương án quay lui đã được thử. Chính những chương trình bỏ qua bước này để tiết kiệm thời gian là những chương trình về sau xuất hiện trong các bài học kinh nghiệm vì lý do không hay.
Chuyển giao tri thức và hỗ trợ khép lại hợp đồng. Đội của bạn phải vận hành và thay đổi được kết quả khi nhà cung cấp không còn ở đó. Nếu đó không phải một hạng mục bàn giao rõ ràng kèm tiêu chí nghiệm thu, thì thứ bạn mua không phải là một cuộc hiện đại hóa. Bạn đã mua một sự lệ thuộc.
Ba kiểu nhà cung cấp và thế mạnh của từng kiểu
Thị trường chia thành ba nhóm với thế mạnh thực sự khác nhau, và lựa chọn đúng phụ thuộc vào hệ thống của bạn nhiều hơn là vào bất kỳ bảng xếp hạng nào.
Các hãng công cụ và đối tác triển khai của họ dẫn dắt bằng chuyển đổi tự động hoặc một nền tảng chạy lại. Công nghệ của họ thường đã chín, và năng suất chuyển đổi thì thực sự đáng nể. Điều cần cân nhắc là hướng của lợi ích: lợi ích thương mại của họ nằm ở chỗ tối đa hóa phần việc do sản phẩm của họ đảm nhận, mà điều đó không phải lúc nào cũng trùng với việc tạo ra một mã nguồn bạn thấy dễ chịu khi bảo trì. Họ cũng buộc hệ thống chạy thật của bạn vào môi trường thực thi của họ, và đó là một sự lệ thuộc đáng được gắn giá.
Các nhà tích hợp hệ thống toàn cầu mang tới quy mô, năng lực quản trị chương trình và khả năng bố trí nhân sự cho một nỗ lực kéo dài nhiều năm. Nếu hệ thống của bạn lên tới hàng triệu dòng trải trên nhiều đơn vị kinh doanh, năng lực cung ứng ấy có ý nghĩa thật, và không nhiều nơi làm được. Cái phải đánh đổi là cơ cấu chi phí và khoảng cách giữa những người viết đề xuất với những người sẽ thực sự làm. Hãy hỏi thẳng ai nằm trong đội, họ ngồi ở đâu và họ có kinh nghiệm gì.
Các công ty kỹ thuật chuyên sâu thì nhỏ hơn, dùng người có nghề từ đầu đến cuối, và thường trung lập về công cụ vì họ không có sản phẩm nào để bán. Họ hợp với các hệ thống cỡ hàng trăm nghìn dòng, với chương trình chia theo giai đoạn, và với những tình huống mà chỗ khó nằm ở nghiệp vụ chứ không ở khối lượng. Họ không thể bố trí một chương trình hai trăm người, và họ nên nói thẳng điều đó.
Không có câu trả lời đúng cho mọi trường hợp. Chỉ có câu trả lời đúng cho một hệ thống cụ thể, và nhà cung cấp nào khẳng định mô hình của họ hợp với mọi tình huống thì đang nói cho bạn biết một điều hữu ích về cách họ bán hàng.
Những câu hỏi làm lộ một hồ sơ thầu yếu
Bộ câu hỏi mua sắm hiếm khi làm bật ra thứ thực sự quan trọng. Những câu dưới đây thì có.
“Hãy chuyển đổi mô đun tệ nhất của chúng tôi và cho xem kết quả.” Hãy chọn đúng chương trình mà ai cũng né, tốt nhất là một chương trình có gọi hợp ngữ và dùng bản ghi biến thể nhiều tầng. Hãy đòi xem chính mã được sinh ra, chứ không phải một bản tóm tắt. Nhà cung cấp tự tin vào cách làm của mình sẽ nhận việc này trong một khoản phí khảo sát cố định và vừa phải. Sự ngần ngại tự nó cũng là một câu trả lời.
“Các anh xử lý số học thập phân và thứ tự sắp xếp thế nào?” Trường số thập phân nén và bảng thứ tự đối chiếu của mainframe đều tạo ra những khác biệt chỉ lộ ra ở kết quả tài chính và ở thứ tự các dòng trong báo cáo. Câu trả lời phải cụ thể và mang tính kỹ thuật. Sự mơ hồ ở đây báo trước một giai đoạn nghiệm thu nhọc nhằn.
“Phạm vi kiểm thử gồm chính xác những gì, và ai viết bộ khung đối chiếu?” Thứ bạn tìm là một hạng mục bàn giao có tên, một ước lượng công sức, và sự rõ ràng về việc ai cung cấp dữ liệu giống môi trường thật. Nếu kiểm thử được mô tả như một tỷ lệ phần trăm của phần xây dựng, nhà cung cấp đang đoán.
“Chuyện gì xảy ra với những khác biệt các anh không giải thích được?” Chương trình nào cũng gặp những đầu ra lệch nhau mà không ai lý giải nổi. Nhà cung cấp tốt sẽ mô tả một quy trình phân loại có sự phê duyệt của phía nghiệp vụ. Ai bảo chuyện đó không xảy ra thì hoặc chưa từng đi hết một chương trình, hoặc đang không thành thật.
“Mã nguồn tạo ra thuộc về ai, và chúng tôi có thể rời đi không?” Câu trả lời phải là bạn sở hữu trọn vẹn mọi thứ, không cần giấy phép môi trường thực thi nào để tiếp tục vận hành. Nếu có bất kỳ phần nào dính tới việc trả phí bản quyền liên tục cho một lớp độc quyền, hãy hiểu thật rõ chuyện gì xảy ra với hệ thống chạy thật của bạn khi bạn ngừng trả tiền.
“Kể cho chúng tôi một chương trình đã đi sai và các anh đã thay đổi điều gì sau đó.” Tổ chức nào làm quá vài dự án kiểu này đều có một câu chuyện như vậy. Câu trả lời cho bạn biết bạn đang ngồi với các kỹ sư hay với một bộ máy bán hàng.
Dịch vụ hiện đại hóa COBOL được định giá thế nào
Các mô hình giá khác nhau, và mỗi mô hình phân bổ rủi ro theo một kiểu. Hiểu cách phân bổ đó quan trọng hơn con số hiện trên trang bìa.
Tính theo thời gian và vật tư là mô hình trung thực nhất cho phần việc còn nhiều ẩn số thật, và cũng là mô hình khiến hội đồng quản trị khó chịu nhất. Nó hợp với khảo sát hiện trạng, thứ gần như luôn nên được mua tách riêng và mua trước, đúng để phần còn lại có thể được định giá dựa trên bằng chứng thay vì giả định.
Giá cố định theo mô đun hoặc theo mỗi nghìn dòng là cách phổ biến cho phần chuyển đổi, và hợp lý một khi khảo sát đã cho biết trong các mô đun đó có gì. Hãy đọc kỹ các điều khoản loại trừ. Mức giá kiểu này thường giả định mã nằm trong một dải độ phức tạp đã định, còn thứ gì nằm ngoài dải đó sẽ được báo giá lại riêng, và đó chính là chỗ độ dao động trú ngụ.
Định giá theo kết quả, tức là gắn khoản thanh toán với sự tương đương chức năng đã được nghiệm thu, giúp cân bằng động cơ rất tốt nhưng đòi hỏi tiêu chí nghiệm thu đủ chính xác để phân xử. Bỏ công định nghĩa những tiêu chí đó cho tử tế là việc đáng làm.
Hãy hoài nghi một mức giá trọn gói chắc chắn cho toàn bộ chương trình khi khảo sát còn chưa chạy. Đó không phải biểu hiện của sự tự tin. Hoặc nó đã được cộng đủ dự phòng để chịu được kịch bản tệ nhất, và khi ấy bạn đang trả tiền cho một rủi ro có thể không bao giờ xảy ra, hoặc nó được tính một cách lạc quan và sẽ quay lại dưới dạng các yêu cầu thay đổi khi những mô đun khó lộ diện. Không phương án nào là món hời.
Về chuyện giảm giá, thị trường này không vận hành theo cách đó. Mức giảm có ý nghĩa đến từ việc thu hẹp phạm vi, chia chương trình thành các giai đoạn để giai đoạn sau hưởng lợi từ những gì giai đoạn đầu học được, hoặc loại bỏ phần mã mà khảo sát cho thấy đã không còn ai dùng. Nhà cung cấp cắt giá thật sâu mà không đổi phạm vi vừa nói cho bạn biết con số đầu tiên là tùy tiện. Hướng dẫn của chúng tôi về chi phí và tiến độ di trú COBOL bóc tách xem ngân sách thực sự đi về đâu.
Những điều khoản hợp đồng đáng kiên quyết giữ
Vài điều khoản bảo vệ kết quả tốt hơn bất kỳ bộ máy quản trị đồ sộ nào.
Hãy đòi quyền sở hữu không ràng buộc với toàn bộ mã nguồn, lược đồ, kịch bản và tài sản kiểm thử được bàn giao, kể cả bộ khung đối chiếu. Bộ khung đó là một tài sản bạn sẽ còn dùng lại trong nhiều năm.
Hãy định nghĩa nghiệm thu là sự tương đương chức năng được chứng minh trên các tập dữ liệu đã thống nhất, chứ không phải là việc bàn giao mã. Khoảng cách giữa câu chuyển đổi đã xong và câu đầu ra đã khớp chính là toàn bộ dự án.
Hãy yêu cầu một cấu trúc chia giai đoạn với những điểm dừng thật sự. Một chương trình tách thành khảo sát, thí điểm, chuyển đổi theo đợt và cắt chuyển cho phép bạn dừng lại sau bất kỳ giai đoạn nào mà vẫn cầm trong tay một thứ có giá trị. Một hợp đồng liền khối thì không.
Hãy ghi tên những người chủ chốt vào hợp đồng và thêm một điều khoản về việc thay người. Khoảng cách giữa đội đi chào và đội thực sự đến là lời than phiền phổ biến nhất trong thị trường này.
Cuối cùng, hãy biến chuyển giao tri thức thành một hạng mục bàn giao có tiêu chí nghiệm thu riêng, được chứng minh bằng việc đội của bạn tự thực hiện một thay đổi thật mà không cần trợ giúp. Nếu không, nó sẽ trở thành một tập slide phát ra trong tuần cuối cùng.
Hãy nói chuyện với kỹ sư thay vì với người bán lại
Mecanik làm các chương trình hiện đại hóa COBOL và di trú COBOL với tư cách một công ty kỹ thuật độc lập. Chúng tôi không bán lại nền tảng chuyển đổi nào, nên khuyến nghị của chúng tôi về công cụ phản ánh thứ mã nguồn của bạn cần chứ không phải thứ chúng tôi có giấy phép.
Chúng tôi bắt đầu bằng khảo sát hiện trạng và một bản thí điểm có trả phí trên chính mô đun khó nhất của bạn, bởi cách đó cho ra một ước lượng bám vào mã thật của bạn thay vì một con số trung bình ngành. Từ đó chúng tôi có thể chuyển đổi, đưa sang nền chạy mới, hoặc khuyên rằng lúc này chưa có phương án nào đáng làm, mà đôi khi đó mới là câu trả lời đúng. Trang dịch vụ di trú COBOL của chúng tôi mô tả các giai đoạn chi tiết hơn, còn hướng dẫn về chiến lược hiện đại hóa mainframe bàn về lựa chọn viết lại, tái cấu trúc hay đổi nền tảng, thứ đến trước tất cả.
Hãy cho chúng tôi biết hệ thống của bạn lớn cỡ nào và điều gì đang thúc thời hạn, chúng tôi sẽ nói cho bạn một chương trình thực tế trông như thế nào.
Đọc thêm: Di chuyển COBOL sang Java - Hướng dẫn doanh nghiệp UK , Di chuyển COBOL sang C#: Hướng dẫn cho UK , Di chuyển từ COBOL sang Python và Di chuyển COBOL sang Go: hướng dẫn cho doanh nghiệp UK .
Câu hỏi thường gặp
Dịch vụ hiện đại hóa COBOL bao gồm những gì? Một hợp đồng đầy đủ bao trùm khảo sát và phân tích hiện trạng, thiết kế kiến trúc đích, chuyển dữ liệu, chuyển đổi mã hoặc đưa sang nền chạy mới, một chương trình kiểm thử dựa trên đối chiếu, chạy song song, kế hoạch cắt chuyển và chuyển giao tri thức. Những đề xuất chỉ định giá phần chuyển đổi mã chỉ phủ được phần thiểu số của khối lượng công việc thật.
Ai cung cấp dịch vụ chuyển COBOL sang ngôn ngữ hiện đại? Có ba nhóm: các hãng công cụ cùng đối tác triển khai của họ, các nhà tích hợp hệ thống toàn cầu, và các công ty kỹ thuật chuyên sâu độc lập. Hãng công cụ mang lại tự động hóa đã chín, nhà tích hợp mang lại quy mô cho những hệ thống rất lớn, còn công ty chuyên sâu mang lại kỹ sư giàu kinh nghiệm và sự trung lập về công cụ cho các chương trình cỡ vừa.
Các dự án hiện đại hóa COBOL được định giá thế nào? Những mô hình phổ biến là tính theo thời gian và vật tư, giá cố định theo mô đun hoặc theo mỗi nghìn dòng, và định giá theo kết quả gắn với sự tương đương chức năng. Khảo sát hiện trạng nên được mua tách riêng và mua trước, để phần còn lại được định giá dựa trên bằng chứng thay vì giả định.
Tôi có nên nhận một mức giá cố định trước khi khảo sát không? Nói chung là không. Một mức giá cố định đưa ra khi chưa phân tích thì hoặc đã độn thêm dự phòng mà bạn có thể không cần, hoặc quá lạc quan và rồi sẽ quay lại dưới dạng yêu cầu thay đổi. Hãy mua khảo sát trước, rồi dùng kết quả của nó để lấy báo giá chắc chắn cho các giai đoạn sau.
Làm sao kiểm chứng một nhà cung cấp xử lý được mã nguồn của tôi? Hãy yêu cầu họ chuyển đổi mô đun khó nhất của bạn ngay trong giai đoạn khảo sát phạm vi và cho bạn xem kết quả sinh ra. Hãy chọn thứ có gọi hợp ngữ, có bố cục bản ghi biến thể và có số học thập phân nén. Thứ họ tạo ra, cùng mức độ sẵn sàng khi nhận lời, cho bạn biết nhiều hơn bất kỳ cuộc gọi tham chiếu nào.
Bình luận