Mungkin kelihatannya "harus ada model bisnis untuk perusahaan dukungan TI yang berkonsentrasi pada platform lama seperti ini", tetapi secara pribadi saya pikir itu hanya angan-angan dari pihak Anda karena akan "menyelesaikan" tantangan yang Anda hadapi dalam satu menukik.
Tetap terjebak di lingkungan lama bukanlah cara untuk maju. Dan saya tidak akan mempertaruhkan nyawa perusahaan mana pun untuk tetap terjebak dengan menemukan perusahaan yang, untuk saat ini, bersedia melakukan apa yang tampaknya tidak dapat Anda lakukan.
Jadi bukan jawaban untuk pertanyaan aktual yang Anda tanyakan, tetapi saran yang tulus tentang bagaimana Anda dapat bergerak maju sambil menjaga risiko migrasi seminimal mungkin.
Baca "Cara bertahan hidup dari menulis ulang tanpa kehilangan kewarasan Anda"
Jangan membuat kesalahan dari proyek migrasi panjang tanpa hasil nyata untuk waktu yang lama. Baca "Cara bertahan hidup dari menulis ulang tanpa kehilangan kewarasan Anda"
Saya tidak bisa cukup menekankan bagaimana saran dalam artikel itu telah membantu saya dalam mengatasi / mendekati masalah yang sama setelah membakar diri saya sendiri dengan melakukan proyek semacam itu dengan cara "lama".
Siapkan pengujian otomatis
Jika Anda belum menggunakannya (mengapa tidak?), Minta programmer Anda saat ini untuk membuat test harness otomatis untuk aplikasi Anda.
Rangkaian uji otomatis harus mencakup semua area fungsional aplikasi Anda. Itu sh / akan mendokumentasikan spesifikasi kerja saat ini dalam aturan "when_X_then_Y" dari masing-masing kasus uji. Ini akan membantu baik dalam menjaga perubahan dalam kode Anda saat ini dari melanggar fungsi yang ada serta mendukung migrasi ke lingkungan baru.
Ketika Anda berurusan dengan COBOL dan BASIC, suite tes mungkin harus berada pada level tes integrasi: mengerjakan set file input / basis data "tetap" dan memeriksa file output / mengubah isi database dari program tertentu (COBOL) dan / atau aplikasi. Untuk bagian-bagian BASIC dari perangkat lunak Anda ini dapat berarti menambahkan parameter baris perintah untuk membuatnya menjalankan fungsi-fungsi tertentu tanpa intervensi (G) UI, atau mendapatkan alat uji otomatis berbasis UI (G).
Isolasi perhitungan dan algoritma lainnya
Bahkan Cobol mendukung gagasan tentang sub program yang dapat dipanggil dari program utama. Isolasi semua perhitungan impor dan algoritme lain dalam program atau modul terpisah. Tujuannya adalah untuk membuat perpustakaan program / modul / apa pun yang melakukan pekerjaan kasar terisolasi dari segala sesuatu yang mengumpulkan input dan menciptakan output.
Sesuaikan alat uji untuk mengujinya baik melalui aplikasi lama Anda maupun secara terpisah. Ini akan memastikan bahwa pekerjaan yang Anda lakukan pada kode "lama" untuk memfasilitasi migrasi ke lingkungan yang lebih baru akan memperkenalkan kesalahan sesedikit mungkin.
Mulai serangkaian aplikasi baru di lingkungan "saat ini"
Jangan mengonversi kode Anda saat ini. Mengubah satu bahasa ke bahasa lain berarti memaksakan batasan lingkungan lama pada yang baru. Hasilnya jika sering kurang dari yang diinginkan (baca: hasilnya akan mengerikan dan sakit untuk mempertahankan). Migrasi. Luangkan waktu untuk mengatur aplikasi Anda di lingkungan baru dengan cara yang dianggap praktik terbaik untuk lingkungan itu.
Dapatkan programmer baru, berpengalaman dalam lingkungan yang Anda pilih, untuk melakukannya. Jadikan sebagai prioritas sejak hari pertama untuk mengisolasi semua perhitungan dan algoritma penting dalam kelas dan / atau paket terpisah dan sembunyikan di belakang antarmuka. Gunakan injeksi ketergantungan (jenis injeksi ketergantungan DIY paling murah) untuk memberi tahu aplikasi baru Anda kelas mana yang akan dipakai / digunakan untuk melakukan perhitungan.
Ini adalah cara yang baik untuk melakukan banyak hal dan dalam kasus Anda akan memungkinkan Anda untuk melakukan migrasi bagian-bagian penting berdasarkan kasus. Ini juga akan menyembunyikan seluk-beluk program panggilan dasar dan / atau cobol dari fungsi panggilan di lingkungan baru.
Jangan melangkah lebih jauh dengan mengatur aplikasi dan mungkin mengatur fungsi input / output terpenting yang menggunakan perhitungan dari "perpustakaan" COBOL / BASIC Anda.
Integrasikan "perpustakaan" COBOL / BASIC Anda
Cari tahu bagaimana cara memanggil "perpustakaan" COBOL / BASIC Anda dari lingkungan baru Anda. Ini mungkin melibatkan pengaturan file parameter atau tabel database, menjalankan program COBOL / BASIC yang membungkus perpustakaan COBOL / BASIC yang Anda atur sebelumnya. Jika Anda beruntung, versi BASIC Anda memungkinkan pembuatan DLL yang dapat dipanggil langsung.
Laksanakan kelas di lingkungan baru Anda yang akan memanggil COBOL / BASIC "perpustakaan" dan uji heck keluar dari itu menggunakan tes yang sama yang memanfaatkan uji lingkungan lama, tetapi sekarang dalam bentuk unit test di lingkungan baru .
Ya ini berarti "menduplikasi" tes, tetapi ini adalah jaring pengaman yang tidak ingin Anda lakukan tanpanya. Jika hanya karena unit test ini nantinya akan berfungsi sebagai tes untuk memeriksa implementasi perhitungan dan algoritma Anda ketika mereka dimigrasi ke lingkungan baru Anda.
Tetapi sekali lagi: jangan melangkah lebih jauh daripada menambahkan tes unit untuk perhitungan yang digunakan oleh yang paling penting dari langkah sebelumnya.
Selesaikan aplikasi baru dalam iterasi
Selesaikan aplikasi baru dengan mengulangi dua langkah sebelumnya untuk semua fungsi di aplikasi lama Anda. Terus tambahkan tes unit yang memeriksa perhitungan ke harness pengujian aplikasi baru Anda. Gunakan suite tes integrasi untuk memeriksa apakah fungsi yang dimigrasi berfungsi sama dengan aplikasi lama Anda.
Migrasikan pustaka inti dalam iterasi
Dan akhirnya migrasi perhitungan dan algoritme di "pustaka" COBOL / BASIC Anda, implementasikan kembali di lingkungan baru Anda. Sekali lagi, lakukan ini secara iteratif dengan menggunakan tes (unit) sebagai cara untuk menjaga kewarasan Anda.