Dies ist eine Frage der Logistik, keine technische Frage.
Mein Unternehmen hat einige Arbeiten an eingebetteter Software ausgelagert. Insbesondere haben wir einen Auftragnehmer für die Entwicklung eines eingebetteten Systems für uns bezahlt, da wir nicht über ausreichende interne Kenntnisse verfügen, um dies selbst zu tun (wir haben nur Entwickler von Desktopanwendungen).
Die Auftragnehmer haben die Software fertiggestellt und gefragt, ob sie sie in einer virtuellen Maschine an uns liefern darf. Die VM ist ein Windows 8-Computer, der die vorkonfigurierte CodeWarrior-IDE mit dem Quellcode als CodeWarrior-Projekt enthält. Die Idee ist, dass wir auf diese Weise Codeänderungen in der VM vornehmen können, die bereits für die weitere Entwicklung dieses Projekts konfiguriert ist.
Gibt es Nachteile, die sich daraus ergeben, als dass sie uns durch die Konfiguration unserer eigenen Entwicklungsmaschinen führen, um Codeänderungen am Projekt vorzunehmen? Das einzige Problem, das ich vorhersehen kann, ist, dass die VM langsam läuft und es lange dauert, das Projekt neu zu erstellen, wenn wir Codeänderungen vornehmen. Auf der anderen Seite gefällt mir die Idee, eine vorkonfigurierte Entwicklungsumgebung für eingebettete Systeme zu erhalten, damit ich auf meinem Desktop-Anwendungsentwicklungscomputer keine weitere IDE hinzufügen muss.
Ich kann mir keinen guten Grund vorstellen, ein VM-Ergebnis nicht zu akzeptieren, aber ich wollte es nur von dieser Community ausführen lassen, falls etwas fehlt.
quelle
Antworten:
Das Problem, das ich sehe, ist, dass die Kenntnisse zum Einrichten und Konfigurieren der virtuellen Maschine nicht intern vorhanden sind. Wenn die Konfiguration nicht trivial ist, verlassen Sie sich auf das andere Unternehmen, wenn die Software für verschiedene Versionen von konfiguriert werden muss das Betriebssystem / Bibliotheken / Hardware / was auch immer. Das Akzeptieren der VM ist in Ordnung, um schneller einsatzbereit zu sein, aber ich würde darauf bestehen, eine Einführung in die Konfiguration Ihres eigenen Systems für zukünftige Wartungsarbeiten zu erhalten.
quelle
Ich sehe keinen massiven Nachteil, aber ich würde sagen, dass das Akzeptieren einer VM mit dem darauf befindlichen Quellcode die gleiche Paranoia mit sich bringen sollte wie das Akzeptieren einer Lieferung einer Maschine mit installierter Software und Entwicklungsumgebung Stellen Sie sicher, dass auf der VM nichts Schlechtes installiert ist, bevor Sie sie in einer Umgebung starten, die Zugriff auf Ihr internes Netzwerk hat.
Wenn / wenn Sie die VM in Betrieb haben, sollten Sie in der Lage sein, den Quellcode in Ihre normalen Code-Repositorys zu falten, wie Sie es (wahrscheinlich) mit nur einem ausgelieferten Quellcode-Archiv getan hätten.
quelle
Ich würde mir Sorgen machen, dass auf dem Computer etwas konfiguriert ist, das nicht dokumentiert, schwer zu reproduzieren oder in Ihrer Standardkonfiguration nicht akzeptabel ist.
Ymmv, aber ich denke nicht wirklich über die Entwicklung nach, bis demonstriert werden kann, dass das Projekt auf den Standard-Dev-Maschinen aufbaut und auf den Commodity-Servern / -Clients bereitgestellt wird.
quelle
In einigen meiner Projekte musste ich hart dafür kämpfen, dass Software auf diese Weise bereitgestellt wurde. Es ist ein ausgezeichnetes Format.
Stell sicher, dass du:
Zusätzliche Vorteile:
Ich würde sagen, mach es.
quelle
Das ist wirklich die Art von Sache, die im ursprünglichen Vertrag hätte ausgearbeitet werden sollen. Sie können bereits darüber hinaus gehen. Ich würde nicht erwarten, Konfigurationsanweisungen zu erhalten, ohne dafür extra zu bezahlen, da dies mehr Arbeit von ihrer Seite erfordert.
Ich war schon einmal in einer ähnlichen Situation wie Sie. Unsere Entwicklungsumgebung ist Windows / Cygwin, und wir hatten eine Woche lang einen Besuch beim Hersteller, um einen Schnittstellencode mit uns zu schreiben. Sie verwenden hauptsächlich Linux, deshalb haben wir uns für die Woche, in der sie hier waren, mit virtuellen Linux-Maschinen eingerichtet. Es hat ganz gut geklappt, als sie hier waren und wir hatten wenig Probleme, nach ihrer Abreise nach Cygwin zu portieren.
Es klingt für mich so, als würdest du deine eigenen Fähigkeiten unterschätzen. Das Einrichten einer IDE ist gar nicht so schwierig, auch ohne ein funktionierendes Beispiel, mit dem man es vergleichen kann. Ich würde mir mehr Sorgen machen, wenn ich gegen Windows- und CodeWarrior-Lizenzvereinbarungen verstoßen würde. Wenn Sie ordnungsgemäß lizenziert sind, sollten Sie in der Lage sein, bei Setup-Problemen Unterstützung von Freescale zu erhalten.
quelle
Wie FrustratedWithFormsDesigner sagte , müssen Sie wissen, wie Sie die Maschine selbst einrichten. Ich möchte jedoch hinzufügen, dass Sie sie möglicherweise bitten könnten, ein Skript bereitzustellen, das den Computer für Sie konfiguriert, und nicht eine gesamte VM. Wenn das Skript gut genug geschrieben ist, verfügen Sie über eine genaue und aktuelle Dokumentation zum Einrichten des Computers (durch Lesen des Quellcodes), und das Skript erledigt dies für Sie. So sparen Sie jedes Mal Zeit, wenn Sie eine benötigen neue Maschine.
Ein Tool, mit dem ich experimentiere, um das Einrichten eines neuen Windows-Computers zu standardisieren / zu automatisieren, ist Chocolatey .
Sie können möglicherweise ganz einfach Ihre eigenen Chocolatey-Pakete erstellen und dann ein PowerShell-Skript erstellen, das praktisch alles installiert und konfiguriert.
quelle
Langsam laufende Umgebungen sollten kein Problem sein, werfen Sie einfach Speicher und CPU drauf. Der Aufwand für moderne VMs für Desktop-Anwendungen ist wie bei den meisten SW-Entwicklungen sehr gering. Er wird um ein Vielfaches gespart, da beim Austausch der Hardware keine Einrichtung erforderlich ist.
quelle
Ich hätte gedacht, dass der Entwicklungsvertrag die Leistungen und Verpflichtungen des Auftragnehmers für Sie vorsieht.
Zumindest würde ich einen Rundgang und eine Dokumentation darüber anfordern, wie die Konfiguration funktioniert und was so wichtig ist, dass Sie das Projekt selbst neu erstellen, erstellen und bereitstellen können.
Ich halte die VM für absolut akzeptabel, wenn es darum geht, etwas einsatzbereit zu haben.
Ich würde aber definitiv auf Dokumentation drängen. Ohne das würde ich zögern, denn wenn Sie nicht genau wissen, wie es funktioniert, könnten Sie in Zukunft überfordert sein, insbesondere wenn Sie die Anwendung selbst unterstützen müssen.
quelle
Selbst für intern entwickelte eingebettete Systeme ist es wichtig, ein Dokument zu haben, das beschreibt, wie die Build-Umgebung eingerichtet wird. Sie müssen auch alle Binärdateien / Installationsdateien von Tools und Bibliotheken archivieren, die zum Einrichten der Build-Umgebung erforderlich sind.
quelle
Ich würde VM nicht als zu liefernden Code akzeptieren, da es schwierig ist, Aktualisierungen vorzunehmen. Sie müssen diese VM als goldenes Image haben, um Entwicklungsarbeit zu leisten. Das macht es schwieriger, Mods zu machen. Ein Entwickler muss eine VM neu formatieren oder bekommt eine neue Maschine, er muss eine VM installieren und die VM ziehen.
Wenn Sie Änderungen vornehmen, müssen Sie eine neue "goldene Kopie" der VM festschreiben. Warum sollten Sie eine große Binärdatei wie diese in der Quellcodeverwaltung verwalten? Es ist nicht möglich zu unterscheiden, und meiner Erfahrung nach endet der Versuch, eine goldene Kopie von etwas Binärem als Quellcode zu kontrollieren, nicht gut. Wenn Sie nicht streng kontrollieren können, wer die goldene Kopie bearbeitet, werden Sie Dinge finden, die nicht dokumentiert sind und von denen niemand etwas weiß.
Wenn ein Entwickler mir Software in dieser Form liefern wollte, würde ich einen anderen Entwickler finden. Dies sagt mir, dass sie nicht professionell genug sind, um ihre Abhängigkeiten auszudrucken oder zumindest zu dokumentieren.
Ich hätte sie auch:
Erstellen Sie eine Textdatei, die mit dem Code in die Quellcodeverwaltung eingecheckt wird. Es listet alle Abhängigkeiten auf, die Sie benötigen, um das Projekt zum Laufen zu bringen, die nicht Teil des Quellcodeverwaltungs-Repos sind (z. B. CodeWarrior, beliebige Befehlszeilentools oder andere externe Apps, von denen Sie abhängig sind).
Ein Skript zum Installieren der Abhängigkeiten. Da Sie unter Windows arbeiten, sollte es nicht allzu schwierig sein, ein Chocolatey-Skript zu erstellen, um das Setup der Entwicklungsumgebung zu automatisieren. Abhängigkeiten, die Sie haben und die noch keine Schokoladenpakete sind, können Sie machen. Sie können beispielsweise umfangreiche kommerzielle Tools wie Visual Studio und SQL Server über Chocolatey installieren. Diese Pakete installieren die voll funktionsfähigen Testversionen und können durch Eingabe eines Lizenzschlüssels entsperrt werden. So ist es möglich, dass das Gleiche mit CodeWarrior und allen anderen Abhängigkeiten, die Sie für Ihre Entwicklungsumgebung haben, getan werden kann.
Möglicherweise ist Ihr Entwickler wirklich gut genug, um mit ihm / ihr zusammenzuarbeiten, aber er beherrscht diese Automatisierungsaufgaben nicht. Das ist auch in Ordnung, wenn das der Fall wäre, würde ich entweder den Automatisierungsteil selbst durchführen und mit ihm / ihr zusammenarbeiten, um die Abhängigkeiten zu identifizieren und das Skript zum Laufen zu bringen, oder ich würde einen anderen Entwickler beauftragen, der sich mit der Automatisierung auskennt . Dies sollte zu Beginn des Projekts erfolgen. Eine saubere Barebones-Kopie einer Win8-VM wäre immer noch nützlich, da Sie damit Ihr Schokoladenskript testen können.
quelle
Ich glaube, es gibt kein Problem damit. Ich habe Content-Management-Systeme gesehen, die als VMs installiert werden, und nach Ihren Angaben haben Ihnen die Auftragnehmer die Möglichkeit gegeben, die Anwendung selbst zu warten und zu erweitern.
Wie andere Poster bereits angemerkt haben, gibt es zwei Dinge, die ich tun würde. Stellen Sie zunächst sicher, dass Sie die VM bei der Installation auf einem Computer installieren, der von Ihrem Netzwerk getrennt ist. Sie würden keine unbekannte EXE-Datei aus dem Internet herunterladen und auf Ihrem Computer installieren.
Zweitens, wenn möglich, bewahren Sie diese Kopie als Referenz für die Einstellung der internen Version auf. Ich sage, wenn möglich, weil ich den geschäftlichen Druck nicht kenne, unter dem Sie stehen. Letztendlich sind die IT-Abteilungen / Programmierer Ihres Unternehmens für diese Anwendung verantwortlich. Je mehr Sie darüber wissen, desto besser.
quelle