Ist das Auslagern von Code langfristig teurer? Schädigt es die Codequalität? [geschlossen]


16

Mir ist bekannt, dass ein Unternehmen das geistige Eigentum eines anständigen Softwareprodukts besitzt und mit der jährlichen Lizenzierung ein hervorragendes Einkommen erzielt. Der (nicht technische) Direktor beschwert sich jedoch über die Kosten für die Aufrechterhaltung des Entwicklungsteams, da dies einen erheblichen Einfluss auf die Gewinnspanne hat, und erwägt, die Entwicklung bestimmter Module an andere Länder auszulagern, die niedrigere Gebühren verlangen.

Ich persönlich denke nicht, dass dies langfristig eine kostengünstigere Lösung sein wird. Dies kann bei Problemen zu Kommunikationsstörungen führen. Außerdem müssen die Spezifikationen wasserdicht sein, was ohnehin mehr Zeit in Anspruch nehmen kann. Meiner Meinung nach ist Kommunikation bei der Arbeit in Teams der Schlüssel - oder gibt es eine effektive Möglichkeit, dies zum Funktionieren zu bringen?


24
Die Kosten für die Gehälter der Programmierer gehen in die Gewinnspanne eines Softwareunternehmens ein. Wer hätte das gedacht ?!
Dima

20
PHB will mehr Geld -> PHB erkennt, dass er Löhne zahlen muss -> PHB beschließt, alle für billigere Leute loszuwerden -> Unternehmen geht in die Hose. Es ist eine müde alte Platte.
Steven Evers

2
"Die Kosten für die Gehälter von Programmierern schmälern die Gewinnspannen eines Softwareunternehmens? Wer hätte das gedacht?" Und zu diesem Zeitpunkt ist es an der Zeit, dass sich das Unternehmen aus der Softwareentwicklung zurückzieht und sich auf die Softwareunterstützung eines Sterbenden konzentriert Produkt. : - /
the Tin Man

19
Es kann funktionieren, aber Sie müssen das Kernunternehmen aufgrund der erforderlichen Kommunikation im neuen Land ansiedeln. Ihr Unternehmen würde wahrscheinlich auch bei der Auslagerung dieser Position als Direktor eine Menge Geld sparen.
Dietbuddha

1
Eines der schlimmsten Beispiele sind Quark und QuarkXPress, die von 95% Marktanteil auf fast nichts gestiegen sind.
gnasher729

Antworten:


41

Ich bin sicher, dass jemand ein Beispiel dafür hat, aber ich habe es nicht gesehen.

Ich habe viele Jahre in einem Fortune 500-Unternehmen gearbeitet, in dem viele Entwicklungsprojekte ausgelagert wurden. Ich habe in diesen Jahren kein einziges Beispiel für ein ausgelagertes Projekt, das weniger kostet, als wenn wir es selbst gemacht hätten (intern).

Obwohl die Programmierraten unter unseren lagen, haben wir das ausgelagerte Team dreimal so lange geführt wie Inhouse-Teams. Dies kommt zu der zusätzlichen Zeit hinzu, die benötigt wird, um die Anforderungen detaillierter zu gestalten, als es unser internes Team benötigt, und zu der zusätzlichen Zeit, die für die Qualitätssicherung benötigt wird, da der Code nie annähernd korrekt war.


1
+1 - Meins auch ... Ich frage mich, ob alle Unternehmen das gleiche Spielbuch verwenden.
Ali

Das ist so ziemlich das, was ich erwartet hatte.
Seth

Ich habe das an meinem alten Arbeitsplatz gesehen. Am Ende gaben sie mehr Geld aus, weil sie hin und her fliegen mussten, um die Remote-Entwickler zu verwalten. Das Unternehmen führt keine eigene Softwareentwicklung mehr durch: Es werden M $ -Produkte angepasst.
Giorgio

31

Sie können es schnell haben, Sie können es billig haben oder Sie können es gut machen lassen. Sie können nicht alle drei haben, und ich würde argumentieren, dass sogar zwei von drei eine Strecke sein können.


18

Für ein Softwareunternehmen ist das einfach nur dumm. Am ehesten könnten sie eine vernünftige Entscheidung treffen, indem sie das Unternehmen an einen anderen Ort mit günstigeren Talenten verlegen.

Ein Softwareunternehmen, das seine Softwareentwicklung auslagert, ist kein Softwareunternehmen mehr. Ich würde argumentieren, dass alle erzielten Gewinne von kurzer Dauer sind, weil Sie Ihre eigene Konkurrenz schaffen. Sobald sie feststellen, dass sie das Produkt besser kennen als Sie, stellen sie auch fest, dass sie Sie nicht mehr brauchen.


9
+1 Da dies die Regel berührt "Lagern Sie niemals Ihre Kernkompetenz aus"
Sparky

Es hängt stark von der jeweiligen Entwicklung ab. Beispielsweise lagern wir Scripting-Berichte und Dashboards aus, die die API unseres Zeitreihen-Datenbankprodukts verwenden, da wir nicht über genügend Personal verfügen, um die verschiedenen Skripts oder Kundenanpassungen im eigenen Haus durchzuführen . Outsourcing der Kernproduktentwicklung, ja, aber nicht die gesamte Softwareentwicklung ist Kernkompetenz.
Pete Kirkham

13

Meine einzige Erfahrung beim Outsourcing an ein Unternehmen in einem anderen Land wird meine letzte sein. Die Firma, die eingestellt wurde, konnte ihre Arbeit nicht rechtzeitig abschließen oder erfüllte die Spezifikationen auch nur aus der Ferne und führte dazu, dass wir das Ganze noch einmal im eigenen Haus wiederholen mussten.

Wenn Sie jedoch eine zuverlässige Firma finden, der Sie vertrauen können (dh wenn Sie von anderen Menschen gute Dinge über sie gesehen / gehört haben), lohnt es sich vielleicht.


Gab es im Vertrag keine Klauseln, die das Endprodukt spezifizierten?
snmcdonald

16
@snmcdonald: Solche Klauseln sind sehr schwer zu spezifizieren und über internationale Grenzen hinweg sehr schwer durchzusetzen. Und wenn das Outsourcing-Unternehmen einfach nicht liefert, spielt es keine Rolle, was im Vertrag steht: Sie sind durchgeknallt. Selbst wenn Sie am Ende keinen Cent dafür zahlen, haben Sie nur Ihre eigene Anstrengung und die ganze Kalenderzeit auf die Toilette geschüttet.
Bob Murphy

1
@snmcdonald Ja, das Endprodukt wurde eindeutig spezifiziert, wobei einzelne Teile nach Priorität spezifiziert wurden. Als sie uns schickten, was sie 3 Monate später getan hatten, ungefähr 2 Wochen vor der Produktfreigabe, schickten sie uns eine massiv unvollständige Version, die einige der Dinge enthielt, die wir nicht brauchten, zusammen mit sehr schlechten Implementierungen der meisten wichtig (wenn sie überhaupt da waren). Insgesamt sehr teuer und enttäuschend!
adamk

10

Der Direktor möchte einige seiner erfahrenen lokalen Entwickler durch Leute in einem fernen Land ersetzen, deren Fachwissen er nicht beurteilen kann, die überhaupt keine Erfahrung mit dem Code haben und die von niemandem, der es weiß, direkt beaufsichtigt oder betreut werden können der Code.

Ich habe das zweimal durchgemacht. In beiden Fällen versäumten es die billigen ausländischen Firmen, pünktlich in angemessener Qualität zu liefern. Als die lokalen Entwickler hörten, dass die Arbeit nach Übersee ging, fanden sie andere Jobs und warteten nicht darauf, entlassen zu werden. Während die Fachkenntnisblutung anhielt, verrutschte der Zeitplan, kritische Fehler wurden nicht behoben, Kunden wurden wütend und wechselten zu Konkurrenten, und schließlich brachen beide Unternehmen zusammen.

Es gab auch seltsame Probleme mit der Kommunikation, den Erwartungen und der Kultur. Zum Beispiel hat ein ausländisches Team nicht viel Code eingecheckt oder nicht sofort auf E-Mails geantwortet. Es stellte sich heraus, dass der lokale IT-Manager einen Bonus dafür erhielt, die Kosten niedrig zu halten, sodass er das gesamte Büro über eine langsame Internetverbindung verfügte. Ein anderes Mal haben QA-Tester der Dritten Welt routinemäßig mehrere völlig unterschiedliche Fehler in denselben Fehlerbericht aufgenommen. Ihr Manager hatte Angst, dass ihm die Käfernummern ausgehen könnten.

Einige Teams an günstigen Orten sind in Ordnung. Nach allem, was ich höre, scheint Red Hat ein sehr kompetentes Team in Peking zu haben. Aber sie hatten bereits jahrelange Erfahrung mit Menschen, die über Telearbeit aus der ganzen Welt arbeiteten, bevor sie damit begannen, und die Leute in Peking sind Red Hat-Angestellte, keine Outsourcing-Unternehmen.


9

Ja - Sie bekommen, wofür Sie bezahlen.

Wenn Ihre Markt- und Entwicklungsbedürfnisse nicht so einfach sind, können sie meiner Erfahrung nach jedem Entwickler mit einer möglichen Sprachbarriere per E-Mail erklärt werden, und zwar so einfach, dass selbst ein Entwickler, der nicht wirklich in das Unternehmen investiert ist, immer noch Erfolg haben kann Wenn Sie ein Qualitätsprodukt herstellen, wird Ihr Produkt darunter leiden .

Ich habe in einem Unternehmen gearbeitet, in dem wir ein großes lokales Entwicklungsteam hatten, und unser Produkt litt darunter, dass das Managementteam mehr Geld und Mühe in den Verkauf gesteckt hat. Weil so viel Aufwand in den Verkauf gesteckt wurde, schien es, als machten wir es "gut" - aber es bedeutete, Einnahmen zu erzielen, für die wir weiterhin Geld und Ressourcen in den Verkaufsprozess investieren mussten.

Wir hatten ein entferntes Team, aber wir haben sie vollständig in das Unternehmen integriert und sie haben auf der gleichen Ebene teilgenommen wie unsere lokalen Teams. Nur so kann es funktionieren . Ich war der lokale Teamleiter für sie und wir flogen regelmäßig vor Ort mit ihnen zusammen. Wir gaben ihnen Firmenhemden und Jacken, genau wie die örtlichen Mannschaften. Nach allem hat es uns vielleicht 20-30% gespart. Wenn Sie ein System zusammenstellen, das versucht, die Kosten um mehr als das zu senken, leidet Ihr Produkt entsprechend.


3

Wenn Sie mit einem Qualitäts-Outsourcing-Team zusammenarbeiten und das Management bereit ist, Akzeptanzkriterien zu kommunizieren und durchzusetzen.

Dann liegen die Kosten in etwa in der Höhe eines selbst entwickelten Produkts.

Sie können auch die gleiche Qualität erhalten, wenn Sie Glück haben.

Ich bin vielleicht ein bisschen voreingenommen, weil mein Unternehmen ein internes Entwicklungspersonal hat und keine Produktentwicklung ausgelagert hat. Ich vermute, dass die Erfahrungen mit Integrationspartnern, die die Entwicklung ausgelagert haben, etwas mit dieser Entscheidung zu tun haben.


3

Meiner Erfahrung nach ist das Outsourcing eines Projekts nicht die beste Lösung, um bessere Margen zu erzielen.

Bei der Arbeit war so etwas im Gange, und wie auch andere sagten, haben wir das Ganze noch einmal gemacht und das, was sich auf einem Produktionsserver befand, gewartet. Fazit: Es hat doppelt so viel gekostet.

Meine Meinung zu diesem Thema ist, dass Sie Ihre Investition möglicherweise wegwerfen, wenn Sie überlegen, die Entwicklung des Margen-Outsourcings zu beeinflussen. Wenn Sie darüber nachdenken, hängt der Produkterfolg davon ab, ob alles wie erwartet funktioniert. Wenn Sie also das Entwicklerteam wechseln, können die Dinge hässlich werden.


1

Gut geplante / durchgeführte Open-Source-Software könnte Ihre Antwort sein, da sie sehr profitabel sein kann und die Wartung etwas an eine Community delegiert wird, aber es gibt kein Erfolgsrezept. Der beste Rat, den ich geben kann, ist, mehrere Vorträge über Open Source und seine Spielereien zu empfehlen:

Und vielleicht auch:

Die Sache mit Open Source ist meiner Meinung nach, nicht nur für Sie, sondern für alle etwas Wertvolles und Interessantes zu schaffen. Die Macht von Open Source liegt in den Gemeinschaften.

Wenn Ihr Vorgesetzter / Ihre Firma die Software nur ungern öffnen möchte, isolieren Sie einfach die Besonderheiten Ihrer eigenen Geschäftslogik und Ihres Know-hows. Also, was würden Sie tun:

  1. Inkubieren Sie ein Open Source-Projekt mit Ihren Ressourcen
  2. Bauen Sie eine Community auf
  3. ???
  4. Gewinn =)

Ja, ich meine es ernst und "???" beinhaltet alle Strategien, die Sie verfolgen möchten, nachdem Sie genügend Interesse geweckt haben. Mit heutigen Tools wie Github und Twitter können Sie das Wort leichter verbreiten, aber denken Sie daran, dass Ihr erster Eindruck interessant genug sein sollte.

Wenn Sie Open Source nicht wirklich wollen ( was Sie als Geschäftsmodell verstehen müssen, bevor Sie es implementieren, wenn Sie erfolgreich sein wollen ), können Sie es immer als Service starten, um das Carsonified-Video zu überprüfen, aber das impliziert eine ganze Menge viele andere Dinge für Ihr Unternehmen.

Open Source zu sein oder es als Service zu starten, ist letztendlich eine Möglichkeit, das Projekt auf lange Sicht nachhaltig zu machen.


1

Ich erinnere mich nicht an den Autor dieses Zitats, aber es trifft den Nagel.

" Locker gekoppelte Teams, die an eng gekoppelten Komponenten zusammenarbeiten, scheitern unvermeidlich. "

Outsourcing = lose gekoppelte Teams.

Der Versuch, die Kosten durch geografische Aufteilung der Arbeiten an voneinander abhängigen Komponenten zu senken, schlägt immer fehl.

Andererseits könnte es meiner Erfahrung nach funktionieren, einen ganzen Teil des Software-Portfolios zu verschieben, was bedeutet, dass es mit reduzierten Kosten in guter Qualität entwickelt werden kann.


Wie beantwortet dies die gestellte Frage?
gnat

Im Kern der Frage geht es wirklich um Outsourcing = lose gekoppelte Teams. Der Versuch, die Kosten durch geografische Aufteilung der Arbeiten an voneinander abhängigen Komponenten zu senken, schlägt immer fehl. Andererseits könnte es meiner Erfahrung nach funktionieren, einen ganzen Teil des Software-Portfolios zu verschieben, was bedeutet, dass es mit reduzierten Kosten in guter Qualität entwickelt werden kann.
Maros Urbanec

1
@ MarosUrbanec - Ihr Kommentar sollte Teil Ihrer Antwort sein. Das Zitat an sich ist nicht stark genug, um als Antwort für sich zu stehen.

1
@MarosUrbanec +1 Tolles Zitat, ich habe deinen Kommentar zum Hauptteil der Antwort hinzugefügt, um sie antwortähnlicher zu machen.
Tulains Córdova
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.