Ini adalah pertanyaan tentang logistik, bukan pertanyaan teknis.
Perusahaan saya telah mengalihdayakan beberapa pekerjaan perangkat lunak tertanam. Secara khusus, kami telah membayar kontraktor untuk mengembangkan sistem tertanam bagi kami karena kami tidak memiliki pengetahuan internal yang memadai untuk melakukannya sendiri (kami hanya memiliki pengembang aplikasi desktop).
Jadi, kontraktor telah menyelesaikan perangkat lunak dan mereka bertanya apakah mereka dapat mengirimkannya kepada kami dalam mesin virtual. VM adalah mesin Windows 8 yang berisi IDE CodeWarrior yang telah dikonfigurasi sebelumnya dengan kode sumber sebagai proyek CodeWarrior. Idenya adalah bahwa ini akan memungkinkan kita untuk membuat perubahan kode dalam VM yang sudah dikonfigurasi untuk pengembangan lebih lanjut dari proyek ini.
Apakah ada kelemahan untuk melakukan ini sebagai lawan dari meminta mereka memandu kami melalui cara mengkonfigurasi mesin pengembangan kami sendiri untuk membuat perubahan kode pada proyek? Satu-satunya masalah yang saya dapat lihat adalah VM berjalan lambat dan butuh waktu lama untuk membangun kembali proyek ketika kita membuat perubahan kode. Tetapi di sisi lain, saya menyukai gagasan untuk mendapatkan lingkungan pengembangan sistem tertanam yang telah dikonfigurasi sebelumnya sehingga saya tidak perlu menambahkan lagi IDE pada mesin dev aplikasi desktop saya.
Saya tidak dapat benar-benar memikirkan alasan yang baik mengapa tidak menerima pengiriman VM, tetapi saya hanya ingin menjalankannya oleh komunitas ini jika ada sesuatu yang saya lewatkan.
sumber
Jawaban:
Masalah yang saya lihat adalah bahwa pengetahuan tentang pengaturan dan konfigurasi mesin virtual tidak di rumah, dan jika konfigurasi non-sepele maka Anda akan bergantung pada perusahaan lain ketika perangkat lunak perlu dikonfigurasi untuk versi berbeda dari OS / perpustakaan / perangkat keras / apa pun. Menerima VM baik-baik saja untuk bangun dan berjalan lebih cepat, tetapi saya berkeras untuk mendapatkan panduan tentang cara mengkonfigurasi sistem Anda sendiri untuk pemeliharaan di masa depan.
sumber
Saya tidak melihat kelemahan besar dengan itu, tapi saya akan mengatakan bahwa menerima VM dengan kode sumber di atasnya harus memerlukan paranoia yang sama seperti menerima pengiriman mesin dengan perangkat lunak dan lingkungan dev yang diinstal, jadi tolong buat Pastikan tidak ada hal buruk yang diinstal pada VM sebelum Anda memutarnya di lingkungan yang memiliki akses ke jaringan internal Anda.
Jika / ketika Anda menjalankan VM dan menjalankan, Anda harus dapat melipat kode sumber ke dalam repositori kode normal Anda, karena Anda (mungkin) akan selesai hanya dengan arsip kode sumber yang dikirimkan.
sumber
Saya akan khawatir bahwa ada sesuatu yang dikonfigurasikan dalam mesin yang tidak terdokumentasi, sulit direproduksi, atau tidak dapat diterima dalam konfigurasi standar Anda.
Ymmv, tapi saya tidak benar-benar mempertimbangkan pengembangan yang dilakukan sampai proyek dapat didemonstrasikan untuk membangun mesin dev standar dan digunakan pada server komoditas / klien.
sumber
Dalam beberapa proyek saya, saya harus berjuang keras untuk mendapatkan perangkat lunak yang dikirim dengan cara ini. Ini format yang luar biasa.
Pastikan Anda:
Keuntungan tambahan:
Saya akan mengatakan pergi untuk itu.
sumber
Itu benar-benar hal yang seharusnya dikerjakan dalam kontrak semula. Mereka mungkin sudah melampaui dan melampaui. Saya tidak akan mengharapkan untuk mendapatkan instruksi konfigurasi tanpa membayar ekstra, karena itu membutuhkan lebih banyak pekerjaan di pihak mereka.
Saya pernah berada dalam situasi yang sama dengan Anda sebelumnya. Lingkungan pengembangan kami adalah Windows / Cygwin dan kami mengunjungi vendor selama seminggu untuk menemukan beberapa kode antarmuka dengan kami. Mereka terutama menggunakan Linux, jadi kami mengatur diri kami dengan mesin virtual Linux selama minggu mereka di sini. Itu bekerja dengan sangat baik ketika mereka ada di sini dan kami mengalami sedikit kesulitan untuk pindah ke Cygwin setelah mereka pergi.
Kedengarannya bagi saya seperti Anda meremehkan kemampuan Anda sendiri. Menyiapkan IDE tidaklah sulit, bahkan tanpa contoh yang baik untuk membandingkannya. Saya akan lebih khawatir tentang melanggar perjanjian lisensi Windows dan CodeWarrior. Jika Anda berlisensi dengan benar, Anda harus bisa mendapatkan dukungan dari Freescale untuk masalah pengaturan apa pun.
sumber
Seperti FrustratedWithFormsDesigner berkata , Anda perlu tahu cara mengatur mesin untuk diri sendiri. Namun saya ingin menambahkan bahwa Anda berpotensi meminta mereka untuk menyediakan skrip yang mengkonfigurasi mesin untuk Anda, daripada seluruh VM. Jika skrip ditulis cukup baik, Anda akan memiliki dokumentasi terkini yang tepat tentang cara mengatur mesin (dengan membaca kode sumber), ditambah skrip akan melakukannya untuk Anda, menghemat waktu Anda setiap kali Anda membutuhkan mesin baru.
Alat yang sedang saya coba untuk membantu menstandarkan / mengotomatiskan pengaturan mesin Windows baru adalah Chocolatey .
Anda dapat dengan mudah membuat paket Chocolatey sendiri dengan mudah, lalu membuat skrip PowerShell yang akan menginstal dan mengkonfigurasi hampir semuanya.
sumber
Lingkungan yang berjalan lambat seharusnya tidak menjadi masalah, cukup buang memori dan CPU padanya. Overhead VM modern untuk jenis desktop berfungsi seperti kebanyakan pengembangan SW sangat kecil, ia disimpan berkali-kali dengan tidak perlu melakukan pengaturan apa pun saat mengganti perangkat keras.
sumber
Saya akan berpikir bahwa kontrak pengembangan akan menetapkan kiriman dan kewajiban kontraktor kepada Anda.
Paling tidak saya akan meminta jalan-jalan dan dokumentasi tentang bagaimana konfigurasi bekerja dan apa yang penting sampai Anda dapat membuat ulang proyek, membangun dan menggunakan sendiri.
Dalam hal menyiapkan sesuatu untuk dilakukan, saya pikir VM sangat bisa diterima.
Saya pasti akan mendorong untuk dokumentasi. Saya akan ragu tanpa itu karena kecuali Anda memiliki pemahaman tingkat tinggi tentang cara kerjanya Anda bisa lebih dari satu barel di masa depan, terutama jika Anda perlu mendukung aplikasi sendiri.
sumber
Bahkan untuk sistem embedded yang dikembangkan secara internal, penting untuk memiliki dokumen yang menjelaskan cara mengatur lingkungan build. Anda juga perlu mengarsipkan semua binari / menginstal file alat, dan pustaka yang diperlukan untuk mengatur lingkungan build.
sumber
Saya tidak akan menerima VM sebagai pengiriman kode karena itu membuat sulit untuk membuat pembaruan. Anda harus memiliki VM itu sebagai gambar emas untuk melakukan pekerjaan pengembangan. Itu membuatnya lebih sulit untuk membuat mod. Pengembang harus memformat ulang, atau mendapatkan mesin baru, mereka harus menginstal VM dan menarik VM.
Saat Anda mengedit, Anda harus melakukan "salinan emas" baru dari VM. Mengapa Anda ingin mengelola file biner besar seperti itu di kontrol sumber? Tidak mungkin untuk berbeda, dan dalam pengalaman saya mencoba untuk sumber mengontrol salinan emas dari apa pun biner tidak berakhir dengan baik. Kecuali Anda dapat mempertahankan kontrol ketat terhadap siapa yang mengedit salinan emas, Anda akan berakhir dengan hal-hal di sana yang tidak berdokumen dan tidak ada yang tahu.
Jika seorang pengembang ingin memberikan perangkat lunak kepada saya dalam bentuk itu, saya akan menemukan pengembang yang berbeda. Ini memberitahu saya bahwa mereka tidak cukup profesional untuk menghapus ketergantungan mereka, atau setidaknya mendokumentasikannya.
Saya akan memiliki mereka juga:
Buat file teks yang diperiksa ke kontrol sumber dengan kode. Ini mencantumkan semua dependensi yang Anda perlukan untuk menjalankan dan menjalankan proyek, yang bukan bagian dari repo kontrol sumber (misalnya, CodeWarrior, alat baris perintah apa pun, atau aplikasi eksternal lain yang Anda andalkan).
Script untuk menginstal dependensi. Karena Anda menggunakan Windows, seharusnya tidak terlalu sulit untuk membuat skrip Chocolatey untuk mengotomatiskan pengaturan lingkungan dev. Setiap dependensi yang Anda miliki yang belum menjadi paket cokelat, dapat Anda buat. Misalnya, Anda dapat menginstal alat komersial berat seperti Visual Studio dan SQL Server via Chocolatey. Paket-paket tersebut menginstal versi uji coba, yang berfitur lengkap, dan dapat dibuka dengan memasukkan kunci lisensi. Jadi mungkin hal yang sama dapat dilakukan dengan CodeWarrior, dan semua dependensi lain yang Anda miliki untuk lingkungan dev Anda.
Mungkin pengembang Anda benar-benar cukup baik sehingga Anda masih ingin bekerja dengannya, tetapi tidak pandai dalam hal otomasi ini. Tidak masalah juga, jika itu masalahnya, saya akan melakukan sendiri bagian otomasi, bekerja dengannya untuk mengidentifikasi dependensi dan membuat skrip berfungsi, atau saya akan membuat pengembang lain yang mahir dalam otomasi untuk melakukannya . Itu harus dilakukan pada awal proyek. Salinan barebone yang bersih dari Win8 VM masih akan berguna karena Anda dapat menggunakannya untuk menguji skrip cokelat Anda.
sumber
Saya tidak berpikir ada masalah dengan ini, saya telah melihat sistem manajemen konten yang diinstal sebagai VM, dan dari apa yang Anda katakan kontraktor telah memberi Anda kemampuan untuk mempertahankan dan memperluas aplikasi sendiri.
Namun, seperti poster lain perhatikan ada dua hal yang akan saya lakukan. Pertama, pastikan bahwa ketika menginstal VM, letakkan di mesin yang terpisah dari jaringan Anda. Anda tidak akan mengunduh EXE yang tidak dikenal dari internet dan menginstalnya di mesin Anda.
Kedua, jika mungkin simpan salinan yang terisolasi ini sebagai referensi untuk mengatur versi in-house. Saya katakan jika mungkin karena saya tidak tahu tekanan bisnis yang Anda alami. Pada akhirnya, itu akan menjadi departemen / programmer IT perusahaan Anda yang akan bertanggung jawab untuk aplikasi ini. Jadi, semakin Anda tahu tentang hal itu, semakin baik.
sumber