Solusi perangkat lunak dari tahun 2000-an, haruskah saya mencoba menambal atau membuat kembali semuanya?

9

Saya dikirim untuk membahas sistem yang saat ini digunakan oleh perusahaan tertentu dan apa yang harus dilakukan dengannya.

Perusahaan memproduksi berbagai tampilan karton. Sistem ini dikembangkan untuk melacak klien, pesanan, dan harga. Banyak yang telah terjadi sejak sistem dibuat dan sistem sekarang, seperti yang dijelaskan oleh manajer, " terkunci " dan " bermasalah ", yang saya terjemahkan sebagai "tidak dinamis" dan "tidak stabil".

Beberapa info tentang sistem

  • Ini dikembangkan sekitar tahun 2000
  • Sistem yang cukup kecil, 2-5 pengguna, 6 formulir, ~ 8 tabel dengan jumlah data rata-rata
  • Dibangun pada Visual Basic awal, formulir dibuat dengan desain drag and drop Antarmuka pada dasarnya hanyalah sebuah jendela dengan menu dan beberapa bentuk
  • Menggunakan database MSSQL (SQL2005 server) untuk menyimpan data dan driver ODBC ke kueri, data dimigrasikan dari excel sebelum sistem ini, dan sebelum excel ditangani, dihitung dan ditulis dengan tangan dan kertas
  • Pengguna bekerja di lingkungan Microsoft XP (dan lebih tinggi)

Masalah utama mereka adalah mereka tidak dapat menyesuaikan dan menghitung harga, tidak dapat menambahkan jenis karton baru dll, dengan benar lagi karena mereka tidak dapat (atau lebih tepatnya, mereka tidak tahu bagaimana caranya) menyentuh data di server.

Saya menyarankan 3 solusi yang mungkin

  1. Mencoba menambal sistem saat ini
  2. Buat antarmuka baru yang segar (lebih disukai lingkungan yang serupa, berbasis VB.net atau VB)
  3. Bawa kembali ke solusi Excel, mengingat itu adalah sistem yang sangat kecil

Mungkin ada lebih banyak pilihan, tetapi ini adalah yang bisa saya pikirkan.

Pertanyaan saya adalah

  • Apa yang harus saya rekomendasikan dan mengapa?
  • Apa pro atau kontra dari alternatif ini?
  • Apakah ada alternatif lain (mungkin lebih baik)?
ShadowScripter
sumber
3
Anda tidak dapat memutuskan seberapa parah kerusakan sistem saat ini sampai Anda mendokumentasikan skema basis data.
@ ThorbjørnRavnAndersen Itu benar. Saya hanya mengintip database. Menilai dari usia itu diciptakan, saya akan menganggap bahwa itu benar- benar dirancang dengan sangat dan membutuhkan pertolongan pertama ... atau operasi.
ShadowScripter
1
Apakah Anda tahu siapa yang menulis sistem asli? Apakah itu upaya internal atau dikontrakkan?
maple_shaft
7
Jangan lakukan itu. Beri tahu klien bahwa keadaan database sangat penting untuk biaya berbagai opsi, dan harus dilakukan terlepas dari opsi mana yang mereka pilih. Bahkan untuk penulisan ulang dari awal mereka kemungkinan besar ingin data mereka diangkut.
4
Pengembang suka default ke "menulis ulang dari awal" dan hanya refactor jika diperlukan. Saya lebih suka default untuk "refactor bertahap" dan hanya menulis ulang bila perlu.
quant_dev

Jawaban:

5

Sesuatu dengan hanya 6 bentuk dan semacamnya harus mudah dibangun kembali pada kerangka kerja yang lebih modern. Saya telah bekerja dengan memigrasi proyek VB6 yang memiliki sekitar 200 formulir bersama dengan puluhan kelas dan tabel database. Kedengarannya tidak seperti Anda melihat sesuatu yang berantakan tetapi penampilan bisa menipu.

Saya harus menganalisis kode, database, dan persyaratan bisnis untuk mengatakan apakah menulis ulang atau refactoring basis kode yang ada adalah yang terbaik. Mengingat apa yang Anda katakan, saya akan condong ke arah penulisan ulang. Tapi, mungkin ada kesulitan tersembunyi yang tidak Anda lihat saat ini.

jfrankcarr
sumber
Mengingat ukurannya yang kecil, saya setuju. Sekilas, sepertinya tidak terlalu rumit. Dilihat dari jawabannya, penulisan ulang memang tampak paling tepat. Saya akan melihat lebih dekat sebelum membuat keputusan akhir. Terima kasih atas sarannya! :)
ShadowScripter
@ShadowScripter Saya akan melihat bagaimana menulisnya dalam bahasa yang lebih baik daripada VB saat Anda menggunakannya. Periksa proyek lazarus sumber terbuka .
Spencer Rathbun
5

Sejauh ini saya punya saran yang sedikit berbeda.

Mencoba menambal sistem saat ini

Setidaknya saya akan mempelajari sistem saat ini dengan cukup baik untuk menjelaskan kepada klien bagaimana cara menggunakannya. Saya akan mengambil waktu ini untuk menjelaskan kekurangan dalam sistem mereka saat ini, menghindari kata-kata negatif, katakan saja kepada mereka apa yang tidak dapat dilakukan bahkan jika semua bug yang diketahui diperbaiki.

Buat antarmuka baru yang segar (lebih disukai lingkungan yang serupa, berbasis VB.net atau VB)

Setelah Anda mempelajari semua yang Anda bisa dengan pengaturan mereka saat ini. Berikan mereka opsi, jika Anda dapat mengatasi masalah mereka dengan sistem mereka saat ini, sebenarnya tidak ada yang salah dengan sistem mereka saat ini. Satu-satunya perhatian tentu saja adalah bahwa dukungan Visual Basic 6 mungkin tidak ada dalam 5 tahun.

Kekhawatiran lain adalah cara berkomunikasi dengan database. Microsoft perlahan-lahan menyingkirkan beberapa cara lama untuk berkomunikasi dengan produk basis datanya (Access, MSSQL) sehingga cara Anda berinteraksi dengan produk-produk itu akan menentukan apakah solusi tersebut dapat digunakan pada Windows 9, dan Windows 10 di masa depan.

Jawaban ini sepenuhnya tergantung pada fakta bahwa mereka memiliki sumber ke aplikasi itu sendiri. Jika mereka tidak memiliki sumbernya maka akan sulit untuk mengatasi masalah mereka, memperbaiki bug utama saat ini, atau bahkan menjadikannya alat yang benar-benar dapat mereka gunakan.

Saya tidak merasa ada yang "salah" dengan aplikasi Visual Basic 6, di samping itu, dukungannya untuk versi mendatang tidak diketahui. Bahkan hari ini dengan sistem operasi Windows 7 dan 64-bit semakin sulit untuk didukung. Ini adalah alasan utama menulis ulang ke dalam bahasa modern dengan dukungan 64-bit yang tepat mungkin ide yang bagus.

Jika mereka tidak memiliki sumber pada saat itu menulis ulang adalah satu-satunya solusi mereka.

Ramhound
sumber
Bisakah Anda mengutip referensi ke " Microsoft is slowly getting rid of some of the older ways to communicate..."? Ingin membaca lebih lanjut tentang ini.
ShadowScripter
@ShadowScripter - Misalnya Penyedia Microsoft.Jet.OLEDB.4.0 untuk mengakses warisan Akses file database tidak didukung ketika proses bukan proses 32-bit. WinRT juga dapat mengubah cara kami terhubung ke produk Microsoft ini. Saya lupa di mana saya membaca tentang perubahan di masa depan, pemahaman saya adalah setelah MSSQL 2012 Microsoft hanya akan mendukung cara khusus untuk menghubungkannya juga. Ini tentu saja dalam konteks penyedia dibangun ke Windows dan penawaran pengembangannya
Ramhound
1

Menulis ulang antarmuka adalah pilihan yang bagus, mengingat sistemnya relatif kecil. Keuntungannya adalah -

  1. Stabilitas yang lebih baik (dengan asumsi Anda melakukannya dengan baik!)
  2. Peningkatan rawatan
  3. Antarmuka modern

Kerugian utama adalah bahwa itu mungkin masih sedikit lebih mahal daripada meretas kode yang ada.

Craig Schwarze
sumber
Menulis ulang antarmuka adalah apa yang saya condongkan ke arah juga. Dan sejujurnya, saya tidak yakin di mana saya akan mulai dengan antarmuka lama, menilai dari standar hari ini, hanya saja ... buruk di sekitar.
ShadowScripter
1

Saya juga cenderung menulis ulang, tetapi Anda harus 100% yakin Anda memahami fungsi saat ini sepenuhnya serta semua fungsi yang rusak, hilang atau tidak memadai. Dua yang terakhir penting karena Anda menyebutkan menyesuaikan dan menghitung harga. Apakah Anda sepenuhnya memahami konsekuensi dari penambahan fitur ini?

Saya pernah bekerja pada apa yang seharusnya menjadi "situs web", tetapi pada kenyataannya mengambil alih alat gaya CRM berbasis akses kustom dari akhir 1990-an dan membawanya ke dunia modern, berbasis web. Pengembang asli sudah lama hilang, Database telah dimodifikasi beberapa kali, dokumentasi asli sudah ketinggalan zaman dan tidak ada yang benar-benar mengerti bagaimana sistem bekerja. Tapi mereka tahu bagaimana menggunakannya, adil. Mungkin 80% dari anggaran untuk proyek ini mencakup tiga hal:

  • persyaratan pengumpulan
  • memahami sistem saat ini
  • datang dengan skema database yang bermakna untuk bagaimana mereka bermaksud menggunakan perangkat lunak

Proyek itu, secara finansial, tidak berhasil!

ZweiBlumen
sumber
Saya mendengar apa yang Anda katakan: sebelum saya membuat keputusan akhir, saya harus sepenuhnya menyadari kegagalan, fungsi dan tujuannya saat ini. Bukannya aku ingin masuk semua, dengan senjata menyala, menjerit All right, let's do this. LEEEEEEEROOOOOOOY...! : P
ShadowScripter
0

Opsi lain bisa berupa kompromi antara menulis ulang semuanya dan meretas aplikasi yang ada.

Beri mereka fungsionalitas baru dalam aplikasi baru yang dibangun dari awal.

Ini berpotensi lebih mudah dilakukan, dan tidak memerlukan biaya sebanyak penulisan ulang penuh.

Setelah ini dilakukan dan mereka senang mereka dapat menambah / memperbarui data, itu membuka doot fase dua bisa menggantikan fungsi yang ada di aplikasi baru.

Ini mungkin pendekatan yang lebih enak.

ozz
sumber
1
Saya kira itu ide yang baik, tetapi jika fase dua tidak pernah terjadi, mereka akan berakhir dengan aplikasi terpisah lama yang tergantung pada aplikasi baru lainnya, meninggalkan mereka dengan dua aplikasi dan menggandakan masalah.
ShadowScripter
0

Penulisan ulang sering memiliki kecenderungan untuk kehabisan anggaran ... Buruk.

Tetapi memiliki kerangka modern untuk aplikasi tersebut, mungkin merupakan investasi yang baik, terutama jika tidak ada yang tahu bagaimana sistem lama bekerja, dan jika ada yang rusak segera setelah Anda mulai menyentuhnya.

Juga, VB6 buruk untuk dukungan. Ketika Anda perlu menemukan spesialis dalam 10 tahun, itu akan sangat bermasalah.

Coder
sumber