Was sind die schlimmsten falschen Einsparungen bei der Softwareentwicklung? [geschlossen]


126

Was sind die schlimmsten falschen Volkswirtschaften in der Softwareindustrie und wie bekämpfen Sie sie?


2
:( Ich habe zu oft zu viele davon gesehen.
Tony


@Casey: Es ist ein bisschen verwandt, aber nicht ganz. Der Link, den Sie gaben, befasst sich direkt mit Geld, während die Antworten in dieser Frage auch Geld und Überzeugungen betreffen. Beispiel siehe meine Antwort: programmers.stackexchange.com/questions/19573/…
Gan

Haben Sie gerade meine Firma besucht ..
egal

1
@Mark - klingt nach einer guten Frage, probieren Sie es aus. Ein paar weitere Details könnten jedoch gut sein.
Jon Hopkins

Antworten:


182

Technische Schulden

dh "Mach es einfach schnell, wir werden später umgestalten". Erstens, weil ich erst noch jemanden gesehen habe, der sich mit diesem Verhalten beschäftigt, und der später tatsächlich umgestaltet hat. Zweitens, weil es schwieriger ist, zukünftige Funktionen hinzuzufügen oder zukünftige Fehler zu beheben, weil Sie die Dinge auf schnelle Weise erledigen, anstatt auf gute Weise, damit Sie auf lange Sicht Zeit verlieren.

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


2
Ich kann nicht zählen, wie oft das Management die Entwickler für einen Tag angehalten hat (2 bis 3), und dann einen Bereitstellungsspezialisten, der einen Absturz behebt (und dies mehrmals über den gesamten Produktlebenszyklus hinweg tut), anstatt 2 bis 3 auszugeben. 4 Tage, um es richtig zu machen. Gute Antwort.
DevSolo

4
Wenn die für die Korrektur benötigte Zeit in US-Dollar messbar ist, z. B. um ein Aktienhandelssystem zu reparieren, wird sich die Entscheidung des Managements auf niedrigere Kosten auswirken. Ich habe festgestellt, dass der Vorschlag, "es jetzt zu flicken, um es am Laufen zu halten, während wir die richtige Lösung ermitteln, um sicherzustellen, dass dies nie wieder vorkommt" die kostenbedingte Dringlichkeit erfüllt und auch das richtige Ergebnis erzielt, aber manchmal muss man dafür kämpfen .
JBRWilkinson

9
Wir haben überall Code mit Kommentaren wie "Dies ist ein Hack, ersetze nach der Demo", der nun schon seit 3 ​​bis 5 Jahren in der Basis ist. Niemand merkt sich, dass dies zu diesem Zeitpunkt geschehen ist, und niemand findet es, bis jemand (ich) Fehler behebt und darauf stößt. Es erübrigt sich zu erwähnen, dass ich in dieser Lektion sehr gut gelernt habe, es auf Anhieb richtig zu machen, wenn ich dazu in der Lage bin.
CodexArcanum

22
Und ehrlich gesagt bin ich immer wieder schockiert, wie oft es nicht einmal kurzfristig hilft!
PeterAllenWebb

6
@Jorg - Huh? "Technische Schulden und Designschulden sind gleichbedeutend mit neologistischen Metaphern, die sich auf die möglichen Folgen der Slapdash-Software-Architektur und der hastigen Software-Entwicklung beziehen." en.wikipedia.org/wiki/Technical_debt Genau darauf beziehe ich mich. Ein spezifischerer Titel wäre vielleicht "Eingehen von technischen Schulden ohne die Absicht, diese zurückzuzahlen" gewesen, aber viele Menschen in dieser Situation sagen sich, dass sie tatsächlich die Absicht haben, zurückzuzahlen (aber nicht), und ich wollte einen schlagkräftigen Titel Fettgedruckter Text oben. "Technical Debt" schien eine gute Zusammenfassung zu sein.
Inaimathi

163

Mieten 2 billig Entwickler anstelle von 1 wirklich toll. (zum gleichen Preis)


9
Dieser scheint zumindest eine Grundlage in der Realität zu haben; Denken Sie daran, dass nicht-technische Leute nicht sagen können, wer die großartigen Entwickler sind (daher zahlen sie einem zufälligen, beratenden Idioten mit hoher Wahrscheinlichkeit doppelt so viel als einem tatsächlichen Superstar).
Inaimathi

112
Oder leider nur 1 billiges ...
DevSolo

4
... oder einen Guru
anheuern,

14
Du bekommst nicht 75% eines Guru von einem Dummy , und jeder wirklich gute Programmierer wird das tun, was erforderlich ist, ohne darüber snobistisch zu werden.
Peter Boughton

8
Die 10x- oder 100x-Programmierer bieten ein unglaublich gutes Preis-Leistungs-Verhältnis. sie werden nur 1,5 vielleicht 2x bezahlt. Wie Michael Lopp (Rands in Repose) sagt, ist es ein Nettogewinn, wenn Sie in Ihrer gesamten Karriere nur einen von diesen einstellen.
Tim Williscroft

85

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

Der Versuch, intern etwas zu entwickeln, das von der Stange gekauft werden kann.

Normalerweise liegt dies daran, dass der Markt nicht tatsächlich überprüft wird, um festzustellen, ob bereits etwas vorhanden ist, das das Problem löst. Dies kann von Entwicklern verstärkt werden, die vor dem Durchführen von Nachforschungen in die Programmierung "eintauchen" möchten, und von Projektmanagern, die diese Zeit = Geld nicht berücksichtigen.

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


17
Nur weil es sein kann, heißt das nicht, dass es sein sollte. Ein einfaches CMS, na ja, warum das Rad neu erfinden? Aber wenn Sie anfangen, über große Systeme zu sprechen und komplexe Geschäftsprozesse zu modellieren, warum sollten Sie versuchen, einen runden Stift in ein quadratisches Loch zu stecken? Vor allem, wenn Sie bereits Entwickler und Kenntnisse im Haus haben.
NimChimpsky

9
@NimChimpsky - Ich denke, es gibt gültige Beispiele für beide. Ich habe mit Sicherheit gesehen, dass Leute ihre Geschäftsprozesse durchbrechen und ihre Vorteile verlieren, wenn sie versuchen, sie auf Standardsoftware abzustimmen, aber ich habe auch Entwickler erlebt, die unter Syndromcode-Dingen leiden, die sie gerade erst heruntergeladen haben könnten es war interessanter für sie.
Jon Hopkins

3
@NimChimpsky Wenn die Spezifikation eine maßgeschneiderte Entwicklung erfordert, dann ist das in Ordnung - es hält uns in Jobs :) Das Problem kommt, wenn die Leute nicht zuerst prüfen, ob es etwas gibt, das bereits entwickelt wurde, und direkt in die Entwicklung eintauchen. Ein bisschen Forschung kann viel bewirken!
Dan Diplo

6
Warum das Rad neu erfinden? Weil du ein Radingenieur bist. Oder weil dein Rad besser ist als das des nächsten Mannes. Oder weil das Rad nicht passt. Siehe: mostlymaths.net/2010/03/…
Derek

2
Wo ich fast arbeite alles gekauft OTS werden könnte - und fast alles im Hause neu erfunden , weil in unserer Fearless Leader nach (tm) „unsere Umwelt ist so komplex , dass nichts auf dem Markt könnte möglicherweise damit umgehen“. Pfeh! Aber was solls - es zahlt die Rechnungen. Wir haben gestern erfahren, dass eine Hauptkomponente unserer Software nächstes Jahr neu geschrieben wird - MIT EINER GRAFISCHEN SCHNITTSTELLE! Ooooooh-aaaaaaah! Ich bin alle a-twitter ... (<pheh!>)
Bob Jarvis

73

Keine dedizierten Ressourcen für das Projektmanagement

Ich habe mehrere Male erlebt, wie ein paar Programmierer unter Vertrag genommen wurden und jemand, der bereits einen anspruchsvollen Tagesjob hat, das Projekt hätte managen sollen, aber tatsächlich war er zu beschäftigt mit anderen Aufgaben, sodass das Projekt nie wirklich an Schwung 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 eine Firma erlebt, in der die Politik lautete: "Neue Programmierer müssen auf 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 abschreckte, die immer die Wahl hatten, in einem vernünftigeren Umfeld zu arbeiten.


19
+1. Wenn Sie Ihren Mitarbeitern keine gute Ausrüstung zur Verfügung stellen, ist dies "unumgänglich".
Terence Ponce

3
+1. Beachten Sie jedoch Folgendes: In vielen Unternehmen fallen die Hardware-Budgets unter die Infrastruktur und werden von den Entwicklungsbudgets getrennt. Der Infrastrukturbetreiber wird sein Budget nicht belasten, um das Budget des Entwicklungsmanagers zu verringern. Ich habe diese fiese Politik schon mehrmals gesehen.
Fil

3
Wie wäre es mit schlechter Ausrüstung für ALLE Programmierer? Mein ehemaliger Arbeitgeber hat uns die Silicon Valley-Löhne gezahlt, um Code auf Desktops zu schreiben, die vor fünf Jahren nur mittelmäßig waren. Aufgrund von Terminüberschreitungen haben sie vor einem Jahr die Hälfte des Personals entlassen und den größten Teil im Juli - aber Junge, haben sie Geld für Ausrüstung gespart!
Bob Murphy

1
Kaz: Jeder Entwickler sollte eine angemessene Maschine haben. Wenn der Kauf neuer Hardware bedeutet, dass der PC des neuen Entwicklers ein bisschen besser ist als der der anderen Entwickler, dann haben Sie im schlimmsten Fall Tauschmaschinen, wenn sie die dick-size-compering Art von Leuten sind. Normale Menschen kümmern sich einfach nicht darum, solange sie die Ausrüstung haben, mit der sie effizient arbeiten können. An dem Ort, an dem ich gerade arbeite, habe ich einen neueren (wahrscheinlich schnelleren) PC als die Person, die mich eingestellt hat. Leute, die nach mir kamen, haben noch neuere, wahrscheinlich schnellere PCs. Erraten Sie, was? Das interessiert niemanden, denn alle unsere Maschinen sind schnell genug.
user281377

3
Wenn die Hardware nicht ausreichend ist, möchte ich das Management darüber informieren. In der Regel erledige ich nützliche Arbeiten wie das Abschneiden meiner Zehennägel oder das Lesen des Papiers während langer Kompilierungen. Ich bekomme die alte langsame Maschine? Sicher, kein Problem. Oh, du hast einen Fehler behoben und ich muss den Build machen? Klar, Mr-Manager-bwana-sahib-dude - wir sehen uns in 90 Minuten! (Einmal hat mich ein Manager gefragt, was ich den ganzen Tag gemacht habe - ich habe ihm gesagt: "Die App wurde neu erstellt. Viermal". "IN ACHT STUNDEN?!?", Rief er. "Nein, natürlich nicht", sagte ich. " Das hat 10 Stunden gedauert ". Neue Maschine tauchte nicht lange danach auf ... :-)
Bob Jarvis

71

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 bezahlen, verschwenden Sie Geld und erhalten wahrscheinlich schlechtere Arbeit als jemand, der seine Karriere dieser Aufgabe gewidmet hat. Auch wenn ein Programmierer mit einem engen Termin konfrontiert ist, werden Tests und Dokumentationen sehr wahrscheinlich fallen gelassen oder erledigt, um ihn zu erfüllen.

Übrigens: Entwickler haben es IMMER mit einer knappen Frist zu tun.


12
Die klugen Leute können alles gut falsch machen.
Jon Hopkins

3
Ich habe Daten eingegeben, obwohl ich meine Gebühren dafür auf keinen Fall senken wollte. Sie wollten jemanden, der für kritische Dateneingaben schnell und genau ist, und es machte ihnen nichts aus, mindestens dreifache Dateneingaberaten zu zahlen. Ihre Wahl.
David Thornley

1
Ich würde argumentieren, dass es die Aufgabe der Programmierer ist, ihren Code zu testen, aber ich bin nicht sicher, ob Sie sich darauf beziehen.
Ben Lakey

3
Programmierer sollten ihren eigenen Code testen, nicht aber engagierte Tester, die sich mit dem Brechen von Software auskennen.
JohnFx

1
Stimmen Sie dem technischen Schreiben zu, stimmen Sie dem Testen nicht zu. Testen ist ein natürlicher Bestandteil beim Schreiben guter Software. Technisches Schreiben ist eine zu große Verschiebung von der Codierung. Ich muss viele Gänge wechseln, um vom Programmieren zum technischen Schreiben überzugehen, und es fühlt sich an, als würde ich meine Zeit schlecht nutzen.
Adam Bruss

63

Das Erforschen / 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 basierend auf dem Wissen 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ürde uns bei der Lösung bestehender und zukünftiger Probleme helfen. Natürlich müssen Sie Ihre Zeit mit Bedacht darauf verwenden.

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.


3
Ich wünschte, ich hätte das mehr als einmal tun können.
MAK

1
Schreiben wir eine GUI-Bibliothek. Erstellen Sie ein Messaging-Toolkit. Wenn Sie die Software nicht verkaufen, ist sie nur ein Teil einer größeren Sache. Um Himmels willen, verwenden Sie einfach die Implementierung einer anderen Person. Sicherheitspunkte für die Verwendung einer Open Source-Lösung: Sie können diese jederzeit beheben und unterstützen, wenn dies erforderlich ist. Wenn Sie das Geld für den Kauf von Lösungen mit Quellcode haben, tun Sie dies, aber achten Sie auf die schlechte Qualität der kommerziellen Softwarekomponenten. Die Anbieter verkaufen die Komponente selten zweimal, sodass Sie möglicherweise enttäuscht sind, wenn Sie sie einmal besitzen (ich weiß, dass ich bereits an Orten gearbeitet habe, an denen dies bereits vorgekommen ist)
Tim Williscroft,

58

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


18
+1. Meine Erfahrung mit Off-Shoring ist, dass es zwangsläufig viel mehr Geld kostet, als es spart.
Adam Crossland

2
+1, aber Offshore kann funktionieren, wenn es richtig verwendet wird

3
+1. Wir scheinen bei jedem neuen Projekt unterschiedliche Offshore-Entwickler zu haben, was bedeutet, dass die Onshore-Entwickler die meiste Zeit damit verbringen, den neuen Offshore-Entwicklern das Geschäfts- und technische Domänenmodell beizubringen und zusätzlich technischen Support zu leisten. Projektende und sie sind woanders hingegangen und wir fangen von vorne mit den nächsten "billigen" Entwicklern an.
Chris Knight

8
Viele Teams stellen nur ein Dutzend Offshore-Mitarbeiter ein und setzen sie kaum ein, nur um 4 Auftragnehmer vor Ort zu gewinnen. Beeindruckend.
Poolie

1
Und zu vergessen, dass Offshoring naturgemäß die Frist verlängert. Wir haben eine Offshore-Qualitätssicherung und es kann 3-4 Tage dauern, bis zwei Personen im selben Büro aufgrund von Zeitunterschieden in weniger als einer Stunde eine Lösung gefunden haben.
HLGEM

50

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 mit dem Bauen verbringen, bevor Sie herausfinden, dass Sie aufhören sollten.

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

Aber es passiert auch auf den niedrigsten Ebenen. Als Entwickler mag ich häufige Codeüberprüfungen (oder besser gesagt Paarprogrammierung), weil dies die Zeit einschränkt, in der ich weiterhin etwas Dummes tun kann, bevor jemand sagt: "Hey, es gibt einen einfacheren Weg!" Aus dem gleichen Grund möchte ich, dass meine Unit-Tests schnell und häufig ausgeführt werden, damit ich Bugs abfangen und töten kann, bevor sie wachsen.

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


6
+1. Außerdem: Je länger die Rückkopplungsschleife ist, desto weniger erinnern Sie sich an die Aufgabe. Im Extremfall müssen Sie sich erneut mit der gesamten Codebasis vertraut machen.
Joseph Tanenbaum

Wie ist das mit einer falschen Wirtschaft? Was ist die beabsichtigte Einsparung?
Chris Pitman

Die Absicht ist es, Zeit zu sparen, die für Dinge "verschwendet" wird, die Sie in jeder Schleife tun. ZB Bauen, Testen, Freigeben, Benutzer beachten. Das ist jedenfalls die Ausrede. Ich denke, es ist wirklich in der Vermeidung von Unbehagen verwurzelt.
William Pietri

Aus diesem Grund ist es unerlässlich, dass Rezensenten und Partner so demütig und respektvoll wie möglich gegenüber dem Programmierer sind. Ein problematischer Rezensent, der den Codierer schlecht behandelt und Sie können garantieren, dass die Rückkopplungsschleife um ein Vielfaches anwächst.
Jonathan Neufeld

47

Nicht meine eigene Anekdote, aber ich hörte einmal von einem Laden, der seinen Entwicklern keinen kostenlosen Kaffee mehr anbot und ihnen stattdessen mitteilte, dass sie jederzeit zum nächsten Coffeeshop gehen konnten (etwa zehn Minuten) Reise in jede Richtung) und kaufen Sie einige.

So ziemlich die Definition von falscher Ökonomie.


4
Das ist ziemlich speziell. Vergleichen und kontrastieren Sie mit einigen der Handelsbanken in London, die einen subventionierten Starbucks im Gebäude bauen ließen, um die Zeit zu sparen, die sie brauchten, um Kaffee zu holen.
Jon Hopkins

48
Ich bin nicht einverstanden, dass dies automatisch eine falsche Wirtschaftlichkeit ist. Die 10 Minuten frische Luft während des Gehens nach draußen, um den Kaffee zu kaufen, werden den Mitarbeiter mit Sauerstoff versorgen und seine Konzentration verbessern, und die (wenn auch begrenzte) soziale Interaktion wird Depressionen vor allem im Winter verringern. Diejenigen Mitarbeiter, die keinen Kaffee bekommen, weil er nicht kostenlos ist, werden wahrscheinlich pünktlich nach Hause gehen, mehr schlafen und eine bessere Gesundheit haben, da sie weniger Koffein zu sich nehmen.
JBRWilkinson

6
-1, ein 20-minütiger Spaziergang ist perfekt, um die Seele baumeln zu lassen und das Problem aus einer neuen Perspektive zu betrachten.
Malfist

23
@Malfist: So wie ich es verstanden habe, waren es nicht nur die 20 Minuten zu Fuß, sondern auch die 15 Minuten, um den Kaffee zu bekommen, der die Arbeit unterbrochen hat. Eine Pause von 45 Minuten an jedem Punkt des Tages wird die Produktivität für mehr als eineinhalb Stunden zerstören. Alles, um 100 Dollar im Monat für Kaffee zu sparen.
EricBoersma

8
20 + 15 = 35 [sechs weitere Zeichen]
Malfist

47

Bereitstellung von Einzelbildschirmarbeitsplätzen, da ein zweiter Monitor zu teuer ist . Auch wenn Sie dadurch nur eine Stunde Arbeit pro Jahr sparen, ist ein zweiter Bildschirm eine gute Investition. Ich weiß mit Sicherheit, dass mir meine Arbeit viele, viele Stunden 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 deutlich.

Multi-Monitor-Setups:

  • Verringern Sie den Overhead für das Fensterumschalten
  • Ermöglichen es Ihnen, im Hintergrund laufende Inhalte (E-Mails, Zusammenstellungen usw.) im Auge zu behalten.
  • geben Sie ein Gefühl der Freiheit. Es ist wie in einem Atrium oder in einem Besenschrank.
  • usw...

2
War genau diesem Problem einmal gegenüber. Schrieb eine E-Mail an einen unserer CEOs, in der er ausdrücklich berechnete, dass ich bei einer Steigerung der Effizienz um 5% einen Betrag gespart hätte, der den Monitor in etwa einem halben Monat im Verhältnis zu meinem Nettoeinkommen wert gewesen wäre. Diese Berechnung war ziemlich schlampig ... aber ... ich glaube, Sie kennen das Ende der Geschichte bereits :)
Raffael

39

Günstigste Hardware , die ein Berater erhält, wenn der Berater mehr als 150 USD / Stunde kostet .

Eine bessere Hardware kann 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 $ ergeben

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

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


8
Als Berater war ich dort, habe das gemacht und das T-Shirt bekommen. (Hat aber nur 80 USD / Stunde.) Aber hey, das ist einer der Gründe, warum ich gerne stündliche Verträge abschließe. Im Gegensatz zu einer Angestelltenposition habe ich mehr Geld in der Tasche, wenn ein Beratungskunde meine Zeit verschwenden möchte und ich extra arbeiten muss, um das auszugleichen.
Bob Murphy

2
Nichts für ungut, aber wenn ich 150 Dollar pro Stunde für einen Berater bezahle, sollte er seinen eigenen Computer haben.
Steven Evers

8
@SnOrfus: Dies funktioniert normalerweise nicht in der Unternehmensumgebung, in der die PCs, die in der Domäne zulässig sind, streng kontrolliert werden. Sie müssen sie mit Hardware versehen.
HardCode 18.11.10

1
@ HardCode - Ja, ich nehme an. Ich kann den Punkt jetzt sehen.
Steven Evers

3
@HardCode Bei einem kürzlich durchgeführten Projekt haben sie uns (Auftragnehmer) nicht zu ihrem internen Unternehmensnetzwerk hinzugefügt, sondern in unsere eigene DSL-Leitung verschoben. Eine dedizierte DSL-Leitung für 3 Entwickler zu 40 US-Dollar im Monat ist ein Schnäppchen und machte es uns einfach, Aktualisierungen aus der Ferne zu übertragen, ohne die IT-Mitarbeiter in Panik zu versetzen. Wenn der Produktions-PC, auf dem unser Code ausgeführt wird, infiziert wird und abstürzt, liegt dies automatisch an uns, da wir für die Sicherheit unserer Kommunikation und unserer persönlichen Laptops verantwortlich sind. Können Sie Win-Win-Win sagen?
Evan Plaice

38

Monate der Arbeit ersparen Tage der Planung

(Nicht genug Zeit in die Planung investieren)


21
In der Graduiertenschule gab es ein Sprichwort, dass ein paar Wochen im Labor Ihnen eine Stunde Bibliothekszeit sparen können.
David Thornley

7
Jep. Als ich an einer Bachelor-Laborklasse teilnahm, in der wir unbekannte Chemikalien identifizierten, sagte der Professor zu uns: "Eine Stunde in der Bibliothek spart Ihnen vier im Labor." Ich nahm ihn ernst, und es war komisch, eine Stunde in der Woche ins Labor zu gehen und böse Blicke von den Medizinern zu bekommen, die zwölf Stunden in der Woche Amintests mit Verbindungen durchführten, bei denen es sich eindeutig nicht um Amine handelte. Und als ich einige Jahre später dasselbe Labor unterrichtete, gab ich den Schülern den gleichen Rat, und genauso wenige nahmen ihn tatsächlich an.
Bob Murphy

3
Wenn Sie nicht planen, planen Sie,

27

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

Grundsätzlich Punkt 9 zum Joel-Test .


2
Ich war an Projekten beteiligt, bei denen wir ein oder zwei Wochen verschwenden mussten, anstatt zum Beispiel eine Bibliothek für 300 US-Dollar zu kaufen. Oder wählen Sie ein Software-Tool, "weil es von" diesem oder jenem "Unternehmen" hergestellt wird, anstatt nach besseren Alternativen zu suchen. Dann machen Sie unser Leben jahrelang zur Hölle.
MetalMikester

Ich bin selbst darauf gestoßen. Die PM / Client-Überlegung war, dass wir keinen Budgetposten hatten, um Dinge für den Client zu kaufen (Kontaktänderungen waren eine Hündin), also mussten wir das Rad (erneut) neu erfinden.
Ken Henderson

24

"Wirf (genug) Körper auf das Problem" kann an einigen Stellen leider immer noch verwendet werden. Brooks Gesetz widerspricht dem aus The Mythical Man-Month , obwohl einige Erfahrung erfordern, um diese Lektion zu lernen. Im Allgemeinen kann ich das nicht aufhalten, da das Management möglicherweise der falschen Aussage über das Hinzufügen von Personen und das Nichtbezahlen eines Preises für diese Aussage glaubt.


2
+1. Oh gott ja Dies geschieht derzeit in epischem Maßstab in einem großen Projekt, in dem ich arbeite.
Bobby Tables

3
Ich arbeite mit einer Reihe von Projektleitern, Managern usw. zusammen, die alle ihre ach so wundervolle Zertifizierung als Projektmanager haben (wie auch immer es heißen mag), und NIEMAND hatte von The Mythical Man-Month gehört, bevor ich sie vorgestellt habe dazu. Meine Güte!
Bob Jarvis

2
Ich habe einmal ein großartiges Zitat darüber gehört: 9 Frauen können in einem Monat kein Baby bekommen
Richard

@ Richard Ich habe das in einer Besprechung benutzt. hat mir riesiges Vergnügen bereitet!
Tjaart

21

Tägliche Treffen :

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

9
Treffen nur, um Treffen zu haben ...
Gan

5
Tagesordnung für heute: Was steht morgen auf der Tagesordnung?
Mark C

9
Tägliche Treffen sind in Ordnung, wenn diese kurz sind. 3-minütige Stand-up-Meetings im Scrum-Stil verschwenden nicht viel Zeit, halten aber alle über die Entwicklungen aller anderen auf dem Laufenden. Lange Treffen mit zahlreichen desinteressierten Teilnehmern sind jedoch giftig.
9000

3
@ Mark C - Es mag nach einem Witz klingen, aber ich wurde tatsächlich zu Besprechungen eingeladen, um zu planen, was die Tagesordnung der nächsten Besprechung sein würde ...
Gavin Coates,

@ Gavin Coates es ist eine echte und Situation ... :)
Zzz

20

Software von der Stange kaufen, anstatt sie intern zu entwickeln.

Ich habe Erfahrung mit Enterprise-Scale-Management-Systemen, die sich sowohl auf HR- als auch auf biologische Labors konzentrieren.

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

Die Entwicklung der selbst entwickelten Lösung dauerte (<6) Monate, während an anderen Projekten parallel gearbeitet wurde und ein bereits angestellter Entwickler zum Einsatz kam.

Ich wechselte vom öffentlichen Sektor, in dem wir ein intern entwickeltes LIMS (Laborinformationsmanagementsystem) eingerichtet hatten, zu einem großen internationalen Pharmazeutikum, in dem die Implementierung einer Standardlösung über ein Jahr gedauert hatte und noch nicht abgeschlossen war.

(6 Monate, in denen ein bereits angestellter Entwickler parallel an anderen Projekten arbeitet. Also ~ 10.000. Und das schließt die mit der Standardlösung verbundenen Supportkosten nicht ein). Der wesentliche Punkt 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 hausinterne Fähigkeiten haben, würde ich es selbst bauen .


26
Ich wette, es gibt auch eine Reihe von Beispielen für das Gegenteil.
Jon Hopkins

13
Zum Kaufen oder Entwickeln müssen die richtigen Leute die Due Diligence durchführen. So einfach ist das. Denk nach bevor du handelst. (+1)
DevSolo

4
@ DevSolo: genau richtig. Die Kaufentscheidung sollte durch eine Kosten-Nutzen-Analyse gestützt werden und nicht durch eine emotionale Einstellung, die hier nicht erfunden wurde, oder die Einstellung, dass ich die Software von XXX liebe.
JBRWilkinson

9
Wenn Sie eine pauschale Aussage über Build vs. Buy treffen möchten, sollten Sie Folgendes tun: Kaufen Sie lieber Lösungen für Probleme, die nicht zu den Kernkompetenzen Ihres Unternehmens gehören. Es ist nicht immer die richtige Antwort, aber es ist eine vernünftige Standardposition und ungefähr so ​​zuverlässig, wie ein Klischee sein kann. Zu sagen, dass das Kaufen von Standard-Software eine falsche Wirtschaftlichkeit ist, ist noch nicht einmal ein nützliches Klischee. Ich habe das Gefühl, dass es Ihnen schwerfällt, E-Lösungen zu finden (was eigentlich "Unternehmen" bedeuten soll, aber "teuer" bedeutet '). Das Vorhandensein schlechter Optionen bedeutet jedoch nicht, dass es keine guten gibt.
Evadeflow

2
Ich denke, das Problem besteht darin, etwas zu kaufen und dann noch weiterzuentwickeln und anzupassen . Die Kosten für eine kleine Anpassung eines großen eingebrachten Systems können oft mehr sein als das Schreiben eines eigenen kleinen Systems, das genau das tut, was Sie wollen. Kaufen Sie also, wenn Sie so arbeiten können, wie das System, das Sie kaufen, es von Ihnen erwartet, aber kaufen und anpassen kann das Schlechte für beide Seiten bedeuten!
Ian

15

Kaufen Sie teure Produkte von der Stange, wenn die Open-Source-Alternativen besser und kostenlos sind.

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


1
Ähm, kann man das als "schlimmste falsche Wirtschaft" bezeichnen? Oder müssen Sie wahrscheinlich mehr ausarbeiten ...?
Gan

3
Ich bin mir nicht sicher, ob ich dem Beispiel der Quellcodeverwaltung überhaupt zustimmen kann. Git wurde speziell für die Lösung von Open-Source-Problemen entwickelt: Viele Entwickler, wenig zentrale Kontrolle, viele Branchen usw. Die Software "enterprisey" basiert auf verschiedenen Annahmen: Workflow usw.
PeterAllenWebb

1
@Gan: Sie denken, Open Source ist die falsche Wirtschaft, aber sie haben alles rückwärts.
Hasen

3
Ich trage zu X11 und GNOME bei und bin ziemlich kompetent in der Verwendung von Git und der Verwaltung von Gitosis-Servern. Trotzdem habe ich in diesem Sommer meine Beratungsarbeit von Git auf einen persönlich bezahlten Perforce-Server umgestellt, da viele Dinge automatisch erledigt werden, die Sie manuell mit Git erledigen müssen. Da ich dafür bezahlt werde, Code zu liefern und nicht mit der Versionskontrolle herumzudrehen, ist die Verwendung und Bezahlung der "beschissenen Versionskontrolle für Unternehmen" weitaus kostengünstiger als die Verwendung von Git.
Bob Murphy

7
Open Source im Vergleich zu kommerziellen Produkten ist meiner Erfahrung nach wirklich eine "Fall-für-Fall" -Basis.
MetalMikester

14

Verwendung "einfacher" Sprachen ohne viel Ausdruckskraft

Ja, es macht es einfacher, Programmierer zu finden, die den Code warten, aber es macht es schwieriger, gute Programmierer zu finden , die nicht nur das neueste Schlagwort lernen, mit dem sie angestellt werden. Ja, es macht den Code einzelner Bits einfacher zu verstehen, aber es macht ihn auch ungefähr so ​​starr wie ein 2x4 und erhöht das Volumen des Codes, der verstanden werden muss. Ja, es wird von einem großen Unternehmen unterstützt, aber laut Aussage des großen Unternehmens werden Innovationen nur langsam und bürokratisch durchgeführt.


4
@burnt_hand: Ich beziehe mich im Grunde genommen auf die übermäßige Risikoaversion des Managements in Bezug auf die Wahl der Sprache.
dsimcha

1
+1: Benutze einfach weiterhin C, weil "wir diese Fähigkeiten haben und das Erlernen einer neuen Sprache wie Python / Perl / PHP zu einem hohen Risiko beiträgt". Ich habe es mehr als einmal gehört. Bedeutet das, dass das Team zu dumm ist, um eine neue Sprache zu lernen?
S.Lott

1
@ S.Lott Recruitment Agents denken, Sie sind !, aber das ist eine andere Geschichte
burnt_hand

2
dh Unternehmen , die mit Java und C # bleiben und zu viel Angst , Python oder Ruby zu berühren , weil sie „Standard - Industrie“ nicht sind, die mich daran erinnert: paulgraham.com/avg.html
hasen

1
@hansen: Der Aufsatz von Paul Graham hat mich teilweise dazu inspiriert, diesen Beitrag zu schreiben. Meine andere Inspiration war die Entwicklung von Bibliotheken (einschließlich der Standardbibliothek) für die Programmiersprache D.
dsimcha

13

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.

Dose die "Mach es einfach schnell, wir werden später umgestalten" entscheidet.


4
Ich stimme zu, dass es schlechte Manager gibt, aber "das Projekt würde ohne die Entscheidungen des oberen Managements viel besser abschneiden"? Im Allgemeinen sind dies die Personen, die das Projekt sponsern. Das klingt für mich ein bisschen nach den Entwicklern, die ich getroffen habe und die das Verständnis der Technologie für wichtiger halten als das Verständnis des Geschäfts und vergessen, wer der eigentliche Kunde ist.
Jon Hopkins

2
@ Jon Hopkins Mit dem oberen Management verweise ich nicht den Kunden. Der Punkt ist, dass "schlechte Projektmanager" diejenigen sind, die Fehler nach Fehler machen und gegen eine Gruppe von Menschen vorgehen. Wer glaubst du, entscheidet sich für "Mach es einfach schnell, wir werden später umgestalten"? Lesen Sie die Antwort mit der höchsten Rate!
Amir Rezaei

ah klarer Ich entferne meine -1.
Jon Hopkins

Ich habe einen beunruhigenden Trend festgestellt, bei dem Projektmanager Zeit und Kosten vor Qualität verehren. Ich bin mir sicher, dass ich nicht der einzige bin. PMs verwenden gerne das Dreiecksdiagramm mit Kosten / Qualität / Zeit, aber Qualität erhält immer zuerst den Start. Es ist sehr traurig, und die Institutionalisierung und Erzwingung der Metriken des Projektmanagements (PMI) für etwas so Kompliziertes wie Software scheint die Dinge nur noch schlimmer zu machen.
Bernard Dy

1
@Bernard - Zeit und Kosten sind messbar. Qualität? Nicht so viel. Traurig, aber IMO wahr ...
Bob Jarvis

12

Fehlende Benutzeranforderungen

Ein wichtiger und schwieriger Schritt beim Entwerfen eines Softwareprodukts besteht darin, zu bestimmen, was der Kunde tatsächlich von ihm erwartet.

Ob Sie es glauben oder nicht, manchmal fehlt dieser Teil oder ist veraltet. Was es kostet, ist, dass man Funktionalitäten schafft, nach denen der Endbenutzer nie gefragt hat.


Ich denke das sollte ganz oben sein!
Roopesh Shenoy

8

Produktivität ist mehr wert als Kreativität

Kreativität ist im Allgemeinen schwer zu messen und meist unmöglich zu beobachten, egal wie groß die Softwareentwicklung ist. Die Produktivität kann andererseits gemessen werden (häufig schlecht) und kann beobachtet werden.

Entwickler, die in der Lage sind, mehr Codezeilen zu schreiben, um schneller auf Fragen zu antworten, sind in der Regel produktiver als diejenigen, die weniger Codezeilen verwenden, um dasselbe Problem zu lösen Es dauert länger, Code zu schreiben, aber Sie erhalten ein zuverlässigeres Produkt | verstehen das Thema gut genug, um Fragen in einfachem, leicht verständlichem | Englisch zu beantworten und Probleme kreativ zu lösen.


6

Alles unten kann schlecht sein, wenn es verwendet wird oder nicht unsachgemäß verwendet wird

  • 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


Wie ist ISO 9001 eine (falsche) "Wirtschaftlichkeit"?
Andrew Grimm

@Andrew Grimm - Die Konformität sichert ein bestimmtes Qualitätsniveau, das Risiken aufgrund schlechter Qualität (z. B. MSS-Verlust) mindert, sodass die potenzielle Wirtschaftlichkeit deutlich wird. Für kleine Abteilungen ist dies möglicherweise unangemessen, da die Gemeinkostenverluste höher sind als die potenziellen Risiken
Bobah

1
@ Andrew - meiner Erfahrung nach kommt es darauf an, wofür Sie es wollen. Wenn Sie möchten, dass die Qualität gesteigert wird, ist dies wahrscheinlich eine falsche Wirtschaft, da sie tendenziell teuer und für Software schlecht geeignet ist. Wenn Sie es als Marketing-Sache wollen oder weil es in Ihrer Branche nur erwartet wird, dann ist es möglicherweise eine gute Idee.
Jon Hopkins

5
@Andrew Grimm - Das "einzige", was ISO 9001 garantiert, ist gleichbleibende, wiederholbare Qualität. Es garantiert keine "hohe" Qualität. Wenn jedoch eine ISO 9001-Zertifizierung für den Markt erforderlich ist, in dem das Unternehmen tätig sein möchte, ist dies erforderlich.
Vatine

1
@Vatine: Was ISO 9001 garantiert, ist ein konsistenter, wiederholbarer Prozess. In einigen Bereichen, in denen durchgängige Prozesse zu gleichbleibender Qualität führen, ist dies wichtig. Es garantiert keine hohe Qualität, aber wenn ein Kunde etwas sieht, was er gut gemacht hat und weiß, dass er nach ISO 9001 zertifiziert ist, kann er auf eine ähnliche Qualität vertrauen.
David Thornley

4

Zu viele nicht abrechenbare 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 Delivery Manager (viele davon waren keine IT-Verantwortlichen!) 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 (einige von ihnen waren echte Faulenzer) auf einer Bank saßen und nichts taten. Wir hatten einen Beurteilungszyklus, in dem alle wenig oder gar keine Gehaltserhöhung erhielten (sogar wir fleißigen Programmierer, seufz), damit die Firma niemanden entlassen muss! Glücklicherweise hat das Unternehmen diese Situation erkannt und im ersten Quartal dieses Jahres das RIGHTSIZING durchgeführt!


3

Optimierung vor der Profilerstellung (auch vorzeitige Optimierung genannt).

Ich habe zu oft jemanden gesehen, der nach einer cleveren Lösung gesucht hat, die die Wartung und Lesbarkeit unnötig erschwert, weil sie schneller ist. Natürlich ist der Code nicht benchmarkiert worden (nicht einmal mit Micro-Benchmarks), so dass er schnell "schneller wird, basierend auf dem überzeugenderen Argument" über einen Codeabschnitt, der höchstwahrscheinlich die Gesamtleistung des Ganzen nicht beeinflusste Anwendung von viel.

Als solche ist es eine sehr falsche Wirtschaft, und die Art der falschen Wirtschaft, die gelegentlich sogar die erfahrenen Profis verwickelt.


3

Eingeschränkter oder kein Internetzugang

Denn natürlich werden Ihre Mitarbeiter das Internet nutzen, um Facebook-Spiele zu spielen und nicht zu recherchieren, um Antworten auf technische Fragen zu Stackoverflow zu erhalten.

In der Realität bedeutet das Internet natürlich einen enormen Produktivitätsschub, und obwohl es möglicherweise angebracht ist, einen Site-Filter für wirklich zweifelhafte Sites zu verwenden, stimmt etwas nicht, wenn die Readme-Datei von Visual Studio oder die lokalen Regierungsseiten von Telford aus bestimmten Gründen blockiert werden "Sextourismus"


2

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

Monitore mit angemessener Größe sind billig, schnell zu installieren und machen die Programmierer produktiver.


2

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.