it-swarm.dev

Was sind die schlimmsten falschen Einsparungen in der Softwareentwicklung?

Was sind die schlimmsten falschen Volkswirtschaften (das heißt, Geld zu sparen, die letztendlich mehr kosten als sie sparen), die in der Softwareindustrie vorherrschen, und wie bekämpfen Sie sie?

126
Jon Hopkins

Technische Schulden

dh "Mach es einfach schnell, wir werden es später umgestalten". Erstens, weil ich noch niemanden gesehen habe, der sich mit diesem Verhalten befasst, und später tatsächlich umgestaltet. Zweitens, weil es schwieriger ist, zukünftige Funktionen anstelle der guten Methode hinzuzufügen, um zukünftige Funktionen hinzuzufügen oder zukünftige Fehler zu beheben, sodass Sie auf lange Sicht Zeit verlieren.

Leider denken viele immer noch, dass spart Entwicklerzyklen, damit sie schnell etwas tun. Ich denke, es ist möglich, aber ich habe es in der Praxis noch nicht gesehen.

182
Inaimathi

Einstellung 2 billige Entwickler statt 1 wirklich toll. (zum gleichen Preis)

163
user2567

Mein Beispiel wäre das genaue Gegenteil von NimChimpskys Beispiel , nämlich:

Der Versuch, im eigenen Haus etwas zu entwickeln, das von der Stange gekauft werden kann.

Normalerweise geschieht dies, weil der Markt nicht tatsächlich überprüft wird, um festzustellen, ob bereits etwas vorhanden ist, das das Problem löst. Dies kann durch Entwickler, die vor jeder Recherche in die Codierung "eintauchen" möchten, und durch Projektmanager, die diese Zeit = Geld nicht berücksichtigen, noch verstärkt werden.

Eines der häufigsten Beispiele, die ich in meinem Bereich, der Webentwicklung, gesehen habe, sind Unternehmen, die versuchen, ein internes CMS-System zu entwickeln. Diese fangen ausnahmslos klein an, werden aber bald aufgebläht und außer Kontrolle geraten, wenn Funktionen hinzugefügt werden, während es ständig viele kostenlose Produkte und Frameworks gibt, die viel besser geeignet wären.

85
Dan Diplo

Keine dedizierten Ressourcen für das Projektmanagement

Ich habe mehrere Male erlebt, als einige Programmierer unter Vertrag genommen wurden, und jemand, der bereits einen anspruchsvollen Tagesjob hat, hätte das Projekt leiten sollen, war aber tatsächlich zu beschäftigt mit anderen Aufgaben, so dass das Projekt nie wirklich an Dynamik gewann. Die Programmierer machten "Prototypen" und so, aber ohne einen Vorsprung lief ein Großteil davon im Kreis, um beschäftigt auszusehen.

Schlechte Ausrüstung für neue Programmierer

Ich habe einmal ein Unternehmen erlebt, in dem die Richtlinie lautete: "Neue Programmierer müssen an einem wirklich alten PC mit einem kleinen Bildschirm arbeiten, bis sie beweisen, dass sie es wert sind." Kein Wunder, dass eine solche Politik zu einer negativen Auswahl führte, die gute Leute vertrieb, die immer die Wahl hatten, in einem vernünftigeren Umfeld zu arbeiten.

73
user281377

Wir können Geld sparen, indem wir die Programmierer als Tester/technische Redakteure einsetzen

Wenn Sie Programmierergehälter für die Arbeit von Testern/technischen Redakteuren zahlen, verschwenden Sie Geld und erhalten wahrscheinlich weniger gute Arbeit als jemand, der seine Karriere dieser Aufgabe gewidmet hat. Auch wenn ein Programmierer vor einer engen Frist steht, werden Tests und Dokumentationen sehr wahrscheinlich fallen gelassen oder halbherzig erledigt, um sie zu erfüllen.

Übrigens: Entwickler stehen IMMER vor einer engen Frist.

71
JohnFx

Das Recherchieren/Lesen/Schreiben von Code, der nicht mit der Produktentwicklung zusammenhängt, ist eine Verschwendung von Ressourcen.

Einige Programmierer und sogar Manager glauben daran. Normalerweise programmieren sie nur auf der Grundlage des Wissens in ihren Köpfen und recherchieren und suchen nach Antworten, wenn sie auf Probleme stoßen. Sie verbessern ihr Wissen nicht kontinuierlich proaktiv. Meiner Meinung nach sollten wir uns immer auf dem Laufenden halten, und das gesammelte Wissen wäre für uns nützlich, um bestehende und zukünftige Probleme zu lösen. Natürlich müssen Sie Ihre Zeit dafür mit Bedacht einsetzen.

Dies ähnelt auch Dans Antwort . Einige Manager möchten lediglich, dass die Entwickler schnell in das Produkt eintauchen und es entsprechend den Anforderungen entwickeln, ohne nach vorhandenen Produkten auf dem Markt zu suchen.

63
Gan

In vielen Fällen kostet Offshoring mehr Geld. In meinem Unternehmen ist es sehr schwierig, neue Mitarbeiter-Slots zu bekommen. Wir sind stark gezwungen, auszulagern. Es ist auch schwierig, Auftragnehmer vor Ort zu finden. Es gibt ein Verhältnis von 3: 1 Offshore zu Onshore, das sie beibehalten sollen. Folglich stellen viele Teams nur ein Dutzend Offshore-Mitarbeiter ein und setzen sie kaum ein, nur um 4 Auftragnehmer vor Ort zu bekommen.

58
Jeremy

Lange Rückkopplungsschleifen!

Es passiert jedem: Sie bauen etwas, das Sie für fantastisch halten, und es stellt sich heraus, dass Sie sich geirrt haben. Das ist nicht das Problem. Das Problem ist wie lange Sie verbringen das Bauen, bevor Sie herausfinden, dass Sie aufhören sollten.

Auf der hohen Ebene sehen Sie dieses Problem bei langen Release-Zyklen. Wenn Sie ein Jahr ohne Feedback bauen, spielen Sie das ganze Jahr. Je öfter Sie veröffentlichen, desto kleiner sind Ihre Glücksspiele und desto besser können Sie spielen.

Es passiert aber auch auf den niedrigsten Ebenen. Als Entwickler mag ich häufige Codeüberprüfungen (oder besser Paarprogrammierung) sehr, weil dies die Zeit begrenzt, in der ich weiter etwas Dummes tun kann, bevor jemand sagt: "Hey, es gibt einen einfacheren Weg!" Aus dem gleichen Grund möchte ich, dass meine Komponententests schnell und häufig ausgeführt werden, damit ich Fehler fangen und töten kann, bevor sie wachsen.

Sobald Sie die Wichtigkeit kurzer Rückkopplungsschleifen bemerken, werden Sie sie überall sehen. Zum Beispiel der militärische Begriff der OODA-Schleife .

50
William Pietri

Bereitstellung von Einzelbild-Workstations, da ein zweiter Monitor zu teuer ist. Auch wenn Sie dadurch nur eine Stunde Arbeit pro Jahr sparen, ist ein zweiter Bildschirm immer noch eine gute Investition. Ich weiß mit Sicherheit, dass meine mir viele, viele Stunden Arbeit erspart hat.

Ein Multi-Monitor-Setup kann fast jede Aufgabe effizienter machen, nicht nur Entwicklungsaufgaben. Drei Monitore sind sogar besser als zwei, aber der Effekt wird mit jedem zusätzlichen Bildschirm weniger ausgeprägt.

Multi-Monitor-Setups:

  • verringern Sie den Aufwand für die Fensterumschaltung
  • ermöglichen es Ihnen, Dinge im Hintergrund im Auge zu behalten (Mail, Kompilierung usw.).
  • gib dir ein Gefühl der Freiheit. Es ist wie in einem Atrium oder in einem Besenschrank.
  • usw...
47

Nicht meine eigene Anekdote, aber ich hörte einmal von einem Geschäft, das seinen Entwicklern keinen kostenlosen Kaffee mehr anbot, und sagte ihnen stattdessen, dass sie jedes Mal, wenn sie Kaffee holen wollten, zum nächsten Café gehen konnten (etwa zehn Minuten) Reise in jede Richtung) und kaufe einige.

So ziemlich die Definition von falscher Wirtschaft.

47
EricBoersma

Günstigste Hardware an einen Berater gegeben, wenn der Berater mehr als 150 $/Stunde gekostet hat.

Wenn man es in die richtige Perspektive bringt, kann eine bessere Hardware den Job mindestens 30 Minuten pro Tag effektiver machen. Das würde 30 Minuten * 20 Arbeitstage pro Monat = 600 Minuten/Monat = 10 Stunden/Monat> mehr als 1 Tag Arbeit = 10 Stunden * 150 $/Stunde = 1500 $ geben

Würde ein Berater nicht effizienter arbeiten, wenn er einen 1500-Dollar-Computer hätte? Würde es den Berater weniger irritieren?

Das Problem scheint nun zu sein, dass es zwei Budgets gibt, eines für den Berater und eines für die PC-Hardware.

39
Amir Rezaei

Arbeitsmonate sparen Planungstage

(Nicht genug Zeit in die Planung investieren)

38
serg

Ich vermute, dass Manager Entwicklern einfach nicht die Tools zur Verfügung stellen, die sie benötigen, um ihre Arbeit effizient zu erledigen.

Grundsätzlich Punkt 9 auf dem Joel Test .

27
richeym

"Wirf (genug) Körper auf das Problem" kann leider an einigen Stellen noch verwendet werden. Brooks Gesetz kontert dies aus The Mythical Man-Month , obwohl einige Erfahrung benötigen, um zu lernen diese Lektion. Im Allgemeinen liegt dies nicht in meiner Macht, aufzuhören, da das Management möglicherweise die falsche Aussage über das Hinzufügen von Personen glaubt und keinen Preis dafür zahlen muss.

24
JB King

Alltagstreffen:

(meeting duration in hours) x (Y team members) x (average salary per hour) = ...  
21
Zzz

Standard-Software kaufen, anstatt sie intern zu entwickeln.

Ich habe Erfahrung mit Skalenmanagementsystemen für Unternehmen, die sich sowohl auf HR- als auch auf biologische Laboratorien konzentrieren.

Eine Standardlösung kostete £ 50-100.000 und musste weiterentwickelt und angepasst werden, um die Geschäftsanforderungen zu erfüllen.

Die Entwicklung der intern entwickelten Lösung dauerte (<6) Monate, wobei andere Projekte parallel bearbeitet wurden und ein bereits beschäftigter Entwickler verwendet wurde.

Ich ging vom öffentlichen Sektor, in dem wir ein intern entwickeltes LIMS (Labor Information Management System) in Betrieb hatten, zu einem großen internationalen Arzneimittel über, bei dem die Implementierung einer Standardlösung über ein Jahr gedauert hatte und nirgends abgeschlossen war.

(6 Monate, in denen ein bereits eingestellter Entwickler parallel an anderen Projekten arbeitet. Also ~ 10.000. Und das beinhaltet nicht die Supportkosten, die mit der Standardlösung verbunden sind). Der Hauptpunkt ist, dass das intern entwickelte System tatsächlich verwendet wurde! Sie haben also den damit verbundenen zusätzlichen Kostenvorteil, den ich nicht berechnen kann.

Ich würde für grundlegende Websites usw. zustimmen, warum sich die Mühe machen, Ihre eigenen zu entwickeln. Aber für alle großen komplexen Systeme und wenn Sie bereits über interne Fähigkeiten verfügen, würde ich selbst bauen.

20
NimChimpsky

Kaufen Sie teure Standardprodukte, wenn die Open Source-Alternativen besser und kostenlos sind.

Wie viele Unternehmen nutzen Git? Wie viele Unternehmen verwenden eine beschissene Versionskontrolle für Unternehmen?

15
hasen

Verwendung "einfacher" Sprachen ohne viel Ausdruckskraft

Ja, es macht es einfacher, Programmierer zu finden, um den Code zu pflegen, aber es macht es schwieriger, gute Programmierer zu finden, die nicht nur das neueste Schlagwort lernen, mit dem sie eingestellt werden. Ja, es macht das Verstehen einzelner Bits einfacher, aber es macht es auch ungefähr so ​​starr wie ein 2x4 und erhöht das Volumen des Codes, das verstanden werden muss. Ja, es wird von einem großen Unternehmen unterstützt, aber das große Unternehmen innoviert langsam und bürokratisch.

14
dsimcha

Schlechte Projektmanager/Teamleiter.

Da eine inkompetente Person die Macht hat, die Arbeit einer Gruppe von Menschen zu ruinieren. Am Ende würde das Projekt ohne Entscheidungen des oberen Managements (Projekt-/Teamleiter) viel besser abschneiden.

Dosieren Sie die Entscheidung "Mach es einfach schnell, wir werden es später umgestalten".

13
Amir Rezaei

Fehlende Benutzeranforderungen

Ein wichtiger und schwieriger Schritt beim Entwerfen eines Softwareprodukts besteht darin, zu bestimmen, was der Kunde tatsächlich möchte.

Ob Sie es glauben oder nicht, manchmal fehlt dieser Teil oder ist veraltet. Was die Kosten angeht, ist, dass man Funktionen erstellt, nach denen der Endbenutzer nie gefragt hat.

12
Amir Rezaei

Produktivität ist mehr wert als Kreativität

Kreativität ist im Allgemeinen schwer zu messen und meistens unmöglich zu beobachten, egal wie gemessen wird, wenn es um Softwareentwicklung geht. Die Produktivität hingegen kann gemessen werden (oft schlecht) und kann beobachtet werden.

Infolgedessen werden Entwickler, die (mehr Codezeilen schreiben | Code schneller schreiben | Technobabble schneller als Antwort auf Fragen rezitieren können | sichtbar produktiver sind), tendenziell höher bewertet als diejenigen, die (weniger Codezeilen verwenden, um dasselbe Problem zu lösen |) Das Schreiben von Code dauert länger, aber es entsteht ein zuverlässigeres Produkt, das das Thema gut genug versteht, um Fragen in einfachem, leicht verständlichem Englisch zu beantworten und Probleme kreativ zu lösen.

8
blueberryfields

Alle unten aufgeführten Punkte können schlecht sein, wenn sie verwendet oder nicht unangemessen verwendet werden

  • externe vs Inhouse-Software

  • ISO 9001-Konformität (Wirtschaftlichkeit - Minderung des MSS-Verlustrisikos bei sinkender Produktqualität)

  • entwicklung/QS-Outsourcing

  • entwicklungs-/Build-/Release-/Support-Verfahren

6
bobah

Zu viele nicht abrechnungsfähige Zustellungsmanager.

Vor ein paar Jahren hatten wir in unserem Unternehmen mehrere große Budgetprojekte im Gange und die Rekrutierung war auf dem Höhepunkt. Zu dieser Zeit stellte unser Unternehmen zu viele Liefermanager (viele von ihnen waren keine IT-Mitarbeiter!) Und sehr wenige Programmierer/Tester ein. Das Verhältnis von Manager zu Programmierer betrug buchstäblich 1: 2. Später, nach Abschluss dieser Projekte, hatten wir eine Situation, in der viele dieser Manager (von denen einige echte Faulenzer waren) auf der Bank saßen und nichts taten. Wir hatten einen Bewertungszyklus, in dem jeder wenig oder gar keine Gehaltserhöhung bekam (auch wir fleißigen Programmierer, seufz), damit die Firma niemanden entlassen muss! Glücklicherweise hat das Unternehmen diese Situation erkannt und die RIGHTSIZING im ersten Quartal dieses Jahres durchgeführt!

4
mananjani

Eingeschränkter oder kein Internetzugang

Weil Ihre Mitarbeiter offensichtlich das Internet nutzen, um Facebook-Spiele zu spielen, und nicht zu sehr nach Antworten auf technische Fragen zu Stackoverflow suchen.

In der Realität ist das Internet natürlich ein enormer Produktivitätsschub, und obwohl es angebracht sein mag, eine Art Site-Filter für wirklich zwielichtige Sites zu verwenden, stimmt etwas nicht, wenn es die Readme-Datei des Visual Studios blockiert oder die lokalen Regierungsseiten von Telford aus gutem Grund blockiert "Sextourismus"

3
jk.

Optimierung vor der Profilerstellung (auch als vorzeitige Optimierung bezeichnet).

Zu oft habe ich jemanden gesehen, der nach einer cleveren Lösung griff, die die Wartung und Lesbarkeit unnötig erschwert, weil sie schneller ist. Natürlich wurde der Code nicht mit einem Benchmark versehen (auch nicht mit Mikro-Benchmarks), sodass er über einen Codeabschnitt, der höchstwahrscheinlich keinen Einfluss auf die Gesamtleistung des gesamten Codes hatte, schnell "schneller wird, basierend auf dem überzeugenderen Argument" Anwendung von viel.

Als solches ist es eine sehr falsche Wirtschaft und die Art von falscher Wirtschaft, die gelegentlich sogar die erfahrenen Profis verwickelt.

3
Edwin Buck

Lassen Sie Ihre Entwickler einen 15-Zoll-Monitor und einen PC mit niedrigen Spezifikationen verwenden, da dies der Unternehmensstandard ist.

Angemessene Monitore sind billig, schnell zu installieren, machen die Programmierer produktiver und lassen Ihre Programmierer denken, dass Sie sich für sie interessieren.

2
Ian

Zu viele Bachelor of Business Administration (oder ähnliches), hierarchisch organisiert, versuchen, das anzuwenden, worum es ihrer Meinung nach beim modernen Management geht: Menschen mit "KPIs", "SLAs" und was nicht zu belästigen, was "Berichte" erfordert (ohne, Natürlich kümmern wir uns um die Infrastruktur, um sie zu generieren), so dass Programmierer ihre Tage damit verschwenden, ausgefallene Excel-Tabellen, Q4-Berichte und was nicht auszufüllen und von einem großartigen neuen Management-Tool zu kopieren und in ein anderes einzufügen (dies scheint die Regel zu sein) Diese Tools sind niemals integriert oder ineinander integrierbar) und nehmen an Besprechungen teil, in denen die Berichte und Zahlen präsentiert werden (und jeder fühlt sich schuldig, diesen oder jenen KPI nicht vollständig ausgefüllt zu haben).

2
Ingo