To pytanie dotyczy logistyki, a nie pytanie techniczne.
Moja firma zleciła prace nad oprogramowaniem wbudowanym. W szczególności zapłaciliśmy kontrahentowi za opracowanie systemu wbudowanego dla nas, ponieważ nie mamy odpowiedniej wiedzy wewnętrznej, aby zrobić to sami (mamy tylko programistów aplikacji komputerowych).
Tak więc kontrahenci zakończyli oprogramowanie i zapytali, czy mogą nam je dostarczyć na maszynie wirtualnej. Maszyna wirtualna to maszyna z systemem Windows 8 zawierająca wstępnie skonfigurowane IDE CodeWarrior z kodem źródłowym jako projekt CodeWarrior. Chodzi o to, że pozwoli nam to dokonać zmian kodu w maszynie wirtualnej, która jest już skonfigurowana do dalszego rozwoju tego projektu.
Czy są wady tego działania, a nie przeprowadzanie ich przez proces konfigurowania własnych maszyn programistycznych w celu wprowadzania zmian w kodzie projektu? Jedynym problemem, jaki mogę przewidzieć, jest to, że maszyna wirtualna działa wolno i odbudowanie projektu zajmuje dużo czasu po wprowadzeniu zmian w kodzie. Ale z drugiej strony podoba mi się pomysł uzyskania wstępnie skonfigurowanego środowiska programistycznego dla systemów wbudowanych, więc nie muszę dodawać kolejnych IDE na komputerze dewelopera aplikacji komputerowych.
Naprawdę nie mogę wymyślić dobrego powodu, aby nie zaakceptować dostawy maszyny wirtualnej, ale po prostu chciałem uruchomić ją przez tę społeczność na wypadek, gdyby czegoś mi brakowało.
źródło
Odpowiedzi:
Problem, jaki widzę, polega na tym, że wiedza na temat konfigurowania i konfigurowania maszyny wirtualnej nie jest własna, a jeśli konfiguracja nie jest trywialna, będziesz polegać na drugiej firmie, gdy oprogramowanie będzie musiało zostać skonfigurowane dla różnych wersji system operacyjny / biblioteki / sprzęt / cokolwiek. Zaakceptowanie maszyny wirtualnej jest w porządku, aby szybciej rozpocząć pracę, ale nalegam, aby uzyskać instrukcje dotyczące konfiguracji własnego systemu na potrzeby przyszłej konserwacji.
źródło
Nie widzę w tym ogromnej wady, ale powiedziałbym, że zaakceptowanie maszyny wirtualnej z kodem źródłowym powinno pociągać za sobą taką samą paranoję, jak przyjęcie maszyny z zainstalowanym oprogramowaniem i środowiskiem programistycznym, więc proszę upewnij się, że nie ma nic złego zainstalowanego na maszynie wirtualnej, zanim uruchomisz ją w środowisku, które ma dostęp do twojej sieci wewnętrznej.
Jeśli / kiedy masz maszynę wirtualną uruchomioną, powinieneś mieć możliwość złożenia kodu źródłowego do swoich normalnych repozytoriów kodów, tak jak (prawdopodobnie) zrobiłbyś to z dostarczeniem tylko archiwum kodów źródłowych.
źródło
Martwiłbym się, że w komputerze jest coś skonfigurowanego, co jest nieudokumentowane, trudne do odtworzenia lub niedopuszczalne w standardowej konfiguracji.
Ymmv, ale tak naprawdę nie uważam, że rozwój został zakończony, dopóki projekt nie będzie mógł wykazać się zbudowaniem standardowych maszyn deweloperskich i wdrożeniem go na serwerach / klientach towarowych.
źródło
W kilku moich projektach musiałem ciężko walczyć o dostarczenie oprogramowania w ten sposób. To doskonały format.
Upewnij się, że:
Dodatkowe korzyści:
Powiedziałbym: idź po to.
źródło
To naprawdę coś, co powinno być wypracowane w pierwotnej umowie. Mogą już przekraczać granice. Nie spodziewałbym się, że otrzymam instrukcje konfiguracji bez dodatkowych opłat, ponieważ wymaga to więcej pracy z ich strony.
Byłem w podobnej sytuacji jak Twoja wcześniej. Nasze środowisko programistyczne to Windows / Cygwin i przez tydzień mieliśmy wizytę u dostawcy, aby napisać z nami kod interfejsu. Używają przede wszystkim Linuksa, więc ustawiliśmy się z wirtualnymi maszynami Linux na tydzień, w którym byli tutaj. Działało to całkiem dobrze, gdy byli tutaj, a my mieliśmy małe problemy z przeniesieniem się do Cygwin po ich odejściu.
Wydaje mi się, że nie doceniasz własnych umiejętności. Konfiguracja IDE nie jest trudna, nawet bez działającego przykładu do porównania. Byłbym bardziej zaniepokojony naruszaniem umów licencyjnych Windows i CodeWarrior. Jeśli masz odpowiednią licencję, powinieneś być w stanie uzyskać wsparcie od Freescale na wszelkie problemy z konfiguracją.
źródło
Jak powiedział FrustratedWithFormsDesigner , musisz wiedzieć, jak skonfigurować maszynę dla siebie. Chciałbym jednak dodać, że możesz poprosić ich o dostarczenie skryptu, który konfiguruje maszynę dla ciebie, a nie całej maszyny wirtualnej. Jeśli skrypt jest napisany wystarczająco dobrze, będziesz mieć dokładną aktualną dokumentację dotyczącą konfiguracji komputera (czytając kod źródłowy), a ponadto skrypt zrobi to za Ciebie, oszczędzając czas za każdym razem, gdy potrzebujesz nowa maszyna.
Narzędziem, z którym eksperymentuję, aby ustandaryzować / zautomatyzować konfigurację nowego komputera z systemem Windows, jest Chocolatey .
Możesz potencjalnie dość łatwo zbudować własne pakiety Chocolatey, a następnie utworzyć skrypt PowerShell, który zainstaluje i skonfiguruje praktycznie wszystko.
źródło
Wolno działające środowisko nie powinno stanowić problemu, wystarczy wrzucić do niego pamięć i procesor. Narzut związany z nowoczesną maszyną wirtualną do pracy na komputerach stacjonarnych, jak większość oprogramowania SW, jest bardzo niewielki, jest wielokrotnie oszczędzany, ponieważ nie trzeba wykonywać żadnej konfiguracji podczas zmiany sprzętu.
źródło
Sądziłbym, że umowa deweloperska określi rezultaty i zobowiązania wykonawcy wobec ciebie.
Przynajmniej poprosiłbym o przegląd i dokumentację o tym, jak działa konfiguracja i co jest istotne do tego stopnia, że możesz odtworzyć projekt, zbudować go i wdrożyć samodzielnie.
Jeśli chodzi o gotowość do pracy, myślę, że VM jest całkowicie do przyjęcia.
Zdecydowanie jednak naciskałbym na dokumentację. Wahałbym się bez niego, ponieważ jeśli nie masz wysokiego poziomu zrozumienia, jak to działa, możesz w przyszłości przekroczyć beczkę, szczególnie jeśli będziesz musiał sam wesprzeć aplikację.
źródło
Nawet w przypadku wewnętrznych systemów wbudowanych ważne jest, aby mieć dokument opisujący sposób konfiguracji środowiska kompilacji. Musisz także zarchiwizować wszystkie pliki binarne / pliki instalacyjne narzędzi oraz biblioteki potrzebne do skonfigurowania środowiska kompilacji.
źródło
Nie zaakceptowałbym VM jako kodu dostarczanego, ponieważ utrudnia to aktualizację. Musisz mieć tę maszynę wirtualną jako złoty obraz, aby wykonać prace programistyczne. To sprawia, że trudniej jest tworzyć mody. Deweloper musi sformatować lub uzyskać nową maszynę, musi zainstalować maszynę wirtualną i pociągnąć maszynę wirtualną.
Podczas wprowadzania zmian musisz zatwierdzić nową „złotą kopię” maszyny wirtualnej. Dlaczego chcesz zarządzać takim dużym plikiem binarnym w ramach kontroli źródła? Nie można różnicować, a z mojego doświadczenia próbowanie kontroli źródła złota kopia pliku binarnego nie kończy się dobrze. Jeśli nie będziesz w stanie zachować ścisłej kontroli nad tym, kto edytuje złotą kopię, znajdziesz w niej rzeczy, które nie są udokumentowane i o których nikt nie wie.
Jeśli programista chciałby dostarczyć mi oprogramowanie w tej formie, znalazłbym innego programistę. To mówi mi, że nie są wystarczająco profesjonalni, aby wykreślić swoje zależności lub przynajmniej je udokumentować.
Chciałbym je też:
Utwórz plik tekstowy, który zostanie sprawdzony pod kontrolą źródła za pomocą kodu. Zawiera listę wszystkich zależności potrzebnych do uruchomienia projektu, które nie są częścią repozytorium kontroli źródła (np. CodeWarrior, jakiekolwiek narzędzia wiersza poleceń lub inne zewnętrzne aplikacje, na których polegasz).
Skrypt do instalacji zależności. Ponieważ jesteś w systemie Windows, nie powinno być zbyt trudne stworzenie skryptu Chocolatey, aby zautomatyzować konfigurację środowiska programistycznego. Wszelkie zależności, które nie są jeszcze czekoladowymi opakowaniami, możesz zrobić. Na przykład możesz zainstalować ciężkie narzędzia komercyjne, takie jak Visual Studio i SQL Server, za pośrednictwem Chocolatey. Pakiety te instalują wersje testowe, które są w pełni funkcjonalne i można je odblokować, wprowadzając klucz licencyjny. Jest więc możliwe, że to samo można zrobić z CodeWarrior i innymi zależnościami dla środowiska programistycznego.
Być może twój programista jest na tyle dobry, że nadal chcesz z nim współpracować, ale nie jest dobry w automatyzacji. To też w porządku, gdyby tak było, albo sam bym wykonał część automatyzacji, pracując z nim / nią w celu zidentyfikowania zależności i uruchomienia skryptu, albo pozyskam innego programistę, który jest dobry w automatyzacji, aby to zrobił . Należy to zrobić na początku projektu. Czysta, pozbawiona kości kopia maszyny wirtualnej Win8 nadal byłaby przydatna, ponieważ można jej użyć do przetestowania czekoladowego skryptu.
źródło
Nie sądzę, żeby był z tym problem, widziałem systemy zarządzania treścią, które instalują się jako maszyny wirtualne, i z tego, co mówisz, wykonawcy dali ci możliwość samodzielnego utrzymania i rozszerzenia aplikacji.
Jednak, jak zauważyli inni plakaty, chciałbym zrobić dwie rzeczy. Najpierw upewnij się, że instalując maszynę wirtualną, umieść ją na maszynie innej niż Twoja sieć. Nie pobierzesz nieznanego pliku EXE z Internetu i nie zainstalujesz go na swoim komputerze.
Po drugie, jeśli to możliwe, zachowaj tę izolowaną kopię jako odniesienie do ustawienia wersji wewnętrznej. Mówię, jeśli to możliwe, ponieważ nie znam presji biznesowej, na którą jesteś. Ostatecznie to dział / programiści IT firmy będą odpowiedzialni za tę aplikację. Im więcej o tym wiesz, tym lepiej.
źródło