Ich arbeite in einem mittelständischen Unternehmen (150 Mitarbeiter, ca. 10 Ingenieurteams) und die meisten meiner Projekte umfassen die Anbindung von Laborgeräten (Oszilloskope, optische Spektrumanalysatoren usw.) für halbautomatische Testanwendungen. Ich habe einige verschiedene Szenarien erlebt, in denen ich neuen Code nicht effizient beheben oder testen kann, weil mir das Hardware-Setup nicht mehr oder nie zur Verfügung stand.
Beispiel 1: Ein Aufbau, bei dem 10-20 "Einbrenn" -Prozesse unabhängig voneinander mit einem Tischsensor ausgeführt werden. Ich konnte einen solchen Sensor zum Testen beschaffen und gelegentlich einen zweiten stehlen, um alle Facetten der Schnittstelle zu simulieren mehrere Geräte (suchen, verbinden, streamen usw.).
Schließlich trat ein Fehler auf (der letztendlich in der Gerätefirmware und den Treibern auftrat), der mit nur einem Gerät nur sehr schwer genau reproduzierbar war, aber in der Nähe der "Show Stopper" -Pegel auftrat, wenn 10 bis 20 dieser Geräte gleichzeitig verwendet wurden. Dies ist immer noch ungelöst und dauert noch an.
Beispiel 2: Ein Test, der einen teuren optischen Spektrumanalysator als Kernkomponente erfordert. Das Gerät ist ziemlich alt, nach Angaben des Herstellers, der von einem größeren Unternehmen erworben und im Grunde genommen aufgelöst wurde, und seine einzige Dokumentation war ein langwieriges (und nicht informatives) Dokument, das schlecht übersetzt zu sein scheint. Während der anfänglichen Entwicklung konnte ich das Gerät an meinem Schreibtisch belassen, aber jetzt ist es während der mehrwöchigen Tests, die rund um die Uhr durchgeführt werden, physisch und termingerecht gebunden.
Wenn Fehler auftreten, die sich auf das Gerät beziehen oder nicht mit dem Gerät zusammenhängen, muss ich oft die Mühe haben, Code außerhalb der Anwendung zu testen und einzupassen, oder Code blind zu schreiben und zu versuchen, zwischen den Durchläufen eine gewisse Testzeit einzukalkulieren Die Programmlogik setzt voraus, dass das OSA und der Rest der Testhardware vorhanden sind.
Ich denke, meine Frage ist, wie ich das angehen soll. Ich könnte möglicherweise Zeit damit verbringen, Gerätesimulatoren zu entwickeln, aber wenn ich das in die Entwicklungsschätzung mit einbeziehe, wird es mehr aufblähen, als die meisten wahrscheinlich zu schätzen wissen. Möglicherweise werden auch nicht alle Probleme exakt reproduziert, und es kommt ziemlich selten vor, dass die gleiche Ausrüstung hier zweimal verwendet wird. Ich könnte beim Testen von Einheiten besser werden ... etc ... Ich könnte auch laut über das Problem sprechen und anderen klar machen, dass vorübergehende Verzögerungen erforderlich sind, die nicht viel mehr als Kopfschmerzen für Forschung und Entwicklung sind, sondern in der Regel als Scherz empfunden werden bei der Herstellung aufgeschlagen.