Ich weiß, dass dies eine alte Frage ist und ich werde glücklich sein, wenn 3 Leute diese Antwort lesen, aber es ist eine lustige Geschichte zu erzählen, also was zur Hölle.
Ich kam in ein Projekt (eingebettete Systeme, sicherheitskritische Firmware, sehr hohe Einsätze) und war entsetzt über das, was ich fand. Menschen, die C (insbesondere Zeiger) falsch verwenden, keine statische Analyse, keine Codeüberprüfungen, keine Tests außer "Integrieren Sie es zusammen, führen Sie es aus, probieren Sie es aus, sehen Sie, was kaputt geht."
Ich habe meine erste Woche dort eine sehr lange E-Mail geschrieben (als Berater). Es war verwerflich, weil ich im Grunde gesagt habe, dass es falsch verwaltet wurde, die Entwickler über ihren Köpfen waren, kein Prozess verfolgt wurde usw. Es hätte an den Unternehmens-Vizepräsidenten gehen sollen, aber ich habe es stattdessen an den Entwicklungsleiter geschickt, der es beauftragt hat mich. Er war nicht ganz defensiv, tatsächlich erkannte er viele der Mängel an und sagte mir, dass ich nicht der erste war, der darauf hinwies (kein Scherz, oder?)
Um den Kern der ursprünglichen Frage zu beantworten: Ich bot an, höchstens 1 Mannwoche damit zu verbringen, das statische Analysetool von Gimpel für Lint (PC-Lint / Flexelint) auf der Plattform zu konfigurieren und auszuführen und einen vollständigen Bericht über alles zu erstellen, was gefunden wurde . Ich sagte ihnen, ich sei absolut sicher, dass wir als Ergebnis mehrere lauernde "Zeitbomben" finden würden.
Sie berechneten meinen Stundensatz, multiplizierten ihn mit 40 und stellten fest, dass dies "zu teuer" sei. Lange Rede kurzer Sinn, ich bin dort innerhalb von 60 Tagen abgereist. Ungefähr 3 Jahre später erfuhr ich von einem Produktrückruf, bei dem die Kosten sich 9 Ziffern (100 Millionen US-Dollar) näherten, ganz zu schweigen von einem Reputationsschaden des Unternehmens.
Ich werde weder das Unternehmen noch das Produkt oder die Branche erwähnen, aber ich stehe immer noch in Kontakt mit einem der dortigen Ingenieure, und als er mir erklärte, was den Rückruf verursacht hat, rollten meine Augen - es war ein Problem, das es gegeben hätte wurde sogar von einem einfachen statischen Analyse-Tool (Zugriff auf ein Array außerhalb der Grenzen) erfasst. Fairerweise kann ich nicht mit Sicherheit sagen, dass das Problem im Code lag, als ich dort war, aber ich bin mir sicher, dass dieser Fehler nicht ausgeblieben wäre, wenn sie das Geld für eine Art statisches Analysewerkzeug ausgegeben hätten.
Sie haben also 295 Dollar gespart, indem sie nicht PC-Lint gekauft haben (OK, sie haben auch höchstens eine Woche Geld gespart) - aber ich bin nirgends gut genug, um 100 Millionen Dollar für eine Woche zu verlangen.
Das nenne ich eine verdammt große Geldverschwendung.
Erinnert mich an einen Witz, den viele von Ihnen vielleicht schon gehört haben:
Hast du schon mal die Geschichte von dem riesigen Schiffsmotor gehört, der ausgefallen ist? Die Schiffseigner versuchten es mit einem Experten nach dem anderen, aber keiner von ihnen wusste, wie er den Motor reparieren sollte. Dann holten sie einen alten Mann herein, der seit seiner Kindheit Schiffe repariert hatte. Er trug eine große Werkzeugtasche bei sich, und als er ankam, machte er sich sofort an die Arbeit. Er inspizierte den Motor sehr sorgfältig von oben bis unten.
Zwei der Schiffseigner waren dort und beobachteten diesen Mann in der Hoffnung, er würde wissen, was zu tun war. Nachdem der alte Mann sich umgesehen hatte, griff er in seine Tasche und holte einen kleinen Hammer heraus. Er tippte sanft auf etwas. Sofort sprang der Motor ins Leben. Er steckte vorsichtig seinen Hammer weg. Der Motor wurde repariert! Eine Woche später erhielten die Besitzer vom alten Mann eine Rechnung über 10.000 US-Dollar.
"Was?!" riefen die Besitzer aus. "Er hat kaum etwas getan!"
Sie schrieben dem alten Mann eine Notiz mit der Aufschrift: "Bitte senden Sie uns eine detaillierte Rechnung."
Der Mann schickte eine Rechnung, die lautete:
Tapping with a hammer ........ $ 2.00
Knowing where to tap ......... $ 9998.00
Anstrengung ist wichtig, aber zu wissen, was Sie tun, macht den Unterschied.