Wann schreiben Sie in der Regel selbst ein Softwaremodul im Vergleich zum Kauf eines vorhandenen Produkts?


13

Ich versuche, Ihre Entscheidungsgründe herauszufinden, wann was zu tun ist. Ich bin froh, mehr Kontext zur Verfügung zu stellen, aber ich möchte es vorerst allgemein machen.


Was ist mit Option 3, "Open Source-Bibliothek verwenden"? Das kann tatsächlich ein Kompromiss sein, weil Sie es an Ihre Bedürfnisse anpassen können.
Nathan Long

@ NathanLong: Es ist ein guter Punkt, aber ich würde erwarten, dass, wenn das OP diese Frage stellt, dies bedeutet, dass nur dieses Szenario interessant ist. Außerdem kann ein Produkt Open Source sein und dennoch kommerziell verkauft werden. Ich denke, Sie meinten "freie Software". Abhängig von der Art der Lizenz können Sie nicht notwendigerweise die Einstellungen an Ihre Bedürfnisse anpassen (wenn Sie beabsichtigen, sie weiterzuverkaufen, und wenn sie beispielsweise inkompatibel sind). In diesem Zusammenhang sind also viele verschiedene Faktoren zu berücksichtigen. (ohne zu sagen, dass es ein schlechter Vorschlag ist)
Haylem

Antworten:


17

Ich denke, es ist zu stark vereinfacht, aber dies gilt als allgemeine Richtlinie:

In einer persönlichen Umgebung

  • Habe ich Spaß daran, es zu programmieren?
  • ODER lerne ich etwas aus der Codierung?

UND:

  • Habe ich genug Zeit, um es zu codieren?

Wenn ja, dann schreibe ich lieber, als es zu kaufen.

In einem professionellen Umfeld

Wenn die Gesamtbetriebskosten des Produkts (einschließlich Entwicklungs-, Test-, Wartungs-, Support- oder sonstiger damit verbundener Kosten) höher sind als die Produktkosten und die berechnete Kapitalrendite diese Kosten nicht ausgleichen kann, sind Sie berechtigt besser dran, es zu kaufen und weiterzumachen.


1
+1 sehr wichtig, um gelegentlich selbst einiges zu verschlüsseln, da Sie sonst wie ein Internet-Klempner nur eine Sache mit einer anderen verbinden. Sie müssen auch das "etwas daraus lernen" ausbalancieren und bestimmen, ob Sie das etwas lernen wollen / müssen.
Gary Rowe

2
@ Gary Rowe: Danke. Ich muss mich dagegen sträuben, einen Witz über "Internet Plumber" und aktuelle Webtrends und den Stellenmarkt für Webentwickler zu machen. Arggghhhh, es ist allerdings sehr verlockend ...
Haylem

In einem professionellen Umfeld sind dies nicht nur die Entwicklungskosten, sondern auch die laufenden Wartungskosten und der Zeitverlust bei der Entwicklung.
Gilbert Le Blanc

1
@ GilbertLeBlanc: Stimmt, Gilbert. Ich habe irgendwie die End-to-End-Kosten gemeint, aber ich werde klarstellen, wie Sie vorgeschlagen haben, da es eigentlich um die Gesamtbetriebskosten des Produkts gehen sollte.
Haylem

9

Dinge, die für eine Kaufentscheidung in Betracht gezogen werden müssen

  • Entwicklungskosten / Kosten für Wartung vs. Produktkosten / Kosten für Wartungsvertrag: Das ist natürlich die offensichtliche Sache, aber das ist eigentlich nicht die einzige. Wenn ich die Software beispielsweise nicht nur für mein eigenes Unternehmen verwenden, sondern auch an andere verkaufen möchte, sieht die Berechnung ganz anders aus

  • Verfügbarkeit eines geeigneten Produkts. Für viele Geschäftsprozesse gibt es einfach keine Standardsoftware. Oder es ist etwas verfügbar, aber es ist nicht geeignet, da es 100 Features enthält, von denen Sie nur 3 auf etwas andere Weise benötigen, während 2 andere wichtige Features fehlen.

  • Möchte man von einem Drittanbieter abhängig werden? Gerade bei kleineren Anbietern besteht immer das Risiko, dass der Anbieter in Zukunft vom Markt verschwindet oder die Weiterentwicklung des Produkts nicht in die von Ihnen gewünschte Richtung geht. Für ein Produkt, das Sie unter Ihrer Kontrolle haben, können Sie die Entwicklungsrichtung viel besser steuern.

  • Wann brauche ich eine bestimmte Software und was geht schneller: Entwickeln Sie sie selbst oder kaufen Sie etwas, passen Sie es an, bis es zu meinen Prozessen passt, und rollen Sie es aus? Etwas aus dem Regal zu kaufen mag die schnellere und manchmal billigere Alternative sein, aber ich persönlich habe auch Szenarien erlebt, in denen die Entwicklung einer Software, die genau auf die Bedürfnisse eines Unternehmens zugeschnitten ist und zu bestehenden Geschäftsprozessen passt, so viel Zeit gespart hat, als etwas zu kaufen und mehrere zu unterrichten Hunderte von Benutzern, um ihre Arbeit auf eine neue und andere Weise zu tun, dass die Kosten für die Entwicklung vernachlässigbar waren.


8

Alles was mit Kryptographie zu tun hat. Es gibt 100.000 Möglichkeiten, das Problem zu beheben und Ihre Software ernsthaften Sicherheitslücken auszusetzen. Es gibt nur ein paar Möglichkeiten, das Problem zu beheben. Hierfür ist hohes Fachwissen erforderlich.



Es ist ein guter Punkt, obwohl ich denke, dass es viele andere Dinge gibt, die es auch wert wären, unter das Label "Mach nicht mit diesem Mist" zu fallen. Für den persönlichen Gebrauch (und solange es keine Belichtung gibt und es sich nicht um vertrauliche Daten handelt) macht es jedoch immer noch Spaß, selbst eine Aufnahme zu machen, wenn Sie mit Crypto arbeiten. Ich habe ein paar Chiffren zum Spaß und zum Selbstlernen vor ein paar Jahren neu implementiert. Viele große Probleme zu sehen, hatte viel Spaß dabei und lernte eine Tonne.
Haylem

Ich würde es vermeiden, Krypto zu kaufen. Die vertrauenswürdigen Kryptobibliotheken sind normalerweise Open Source oder Teil des Betriebssystems. Ich würde meinen eigenen Code über die meisten geschlossenen Quellbibliotheken vertrauen. Ich würde keine Bibliothek verwenden, die zumindest keine eindeutige und vollständige Beschreibung der Funktionsweise ihres Kryptocodes veröffentlicht.
CodesInChaos

@CodesInChaos Einige kommerzielle "Closed Source" -Pakete geben Ihnen den Quellcode.
Pieter B

Eigentlich denke ich, dass ein Peer-Review-Code besser ist und dass die Annahme, dass der Angreifer die Algo nicht kennt, ein Fehler ist. Aber warum verbinden Sie das überhaupt mit Kryptographie?
Ramzi Kahil

0
  • hoher zeitaufwand, vorhandenes passendes produkt >> produkt kaufen
  • persönliches Interesse an Technik oder kein Produkt vorhanden, das alle Anforderungen erfüllt >>
    entwickelt sich von mir selbst

0

Auf persönlicher Ebene entwickle ich eine seltsame Kombination aus dem, was ich möchte und dem, was interessant zu schreiben wäre.

Auf professioneller Ebene gibt @haylem einen guten Überblick darüber, wann zu kaufen und wann zu schreiben ist. Ich werde sagen, dass es ein riesiges Element gibt, das übersehen wird: Gelegenheit. Für größere Unternehmen ist es meiner Meinung nach oft sinnvoll, Kernbereiche von Geschäftsanwendungen (nicht alle Geschäftsanwendungen) individuell zu schreiben , um das Unternehmen flexibler zu machen. Mit dem Kauf von Software sind Opportunitätskosten verbunden, da Ihr Unternehmen (nicht nur Ihre IT) an die Sichtweise des Anbieters auf Ihre Domain gebunden ist.

Für die meisten Dinge spielt es keine Rolle. Ihr Buchhaltungssystem sollte besser nicht kreativ sein. Ihr Textverarbeitungsprogramm ist genauso wie das aller anderen. Aber die Dinge, die Sie dazu bringen, dass Sie besser im eigenen Haus geschrieben werden, damit es sich an das anpasst, was Ihr Unternehmen erreichen möchte.


0

Es ist, wie so ziemlich jede andere Antwort sagt, eine Kosten-Nutzen-Entscheidung:

  • Was kostet es mich in Mannstunden, Material usw., wenn ich dieses Projekt einem Entwickler im eigenen Haus oder einem externen Auftragnehmer zur kundenspezifischen Entwicklung übergebe? (In der Regel hoch; ein erfahrener Entwickler, der seinen Teil der Gemeinkosten sowie das Gehalt und die Sozialleistungen berücksichtigt, kostet Sie ungefähr einen Cent pro Tag. Je nach finanzieller Situation kann dies ein bisschen mehr oder weniger sein.)
  • Was kostet es mich, das bekannte Produkt von der Stange zu kaufen? (Hängt vom Produkt ab. Programme für den allgemeinen Gebrauch wie Texteditoren sind in der Regel günstig und sogar kostenlos, während spezielle Programme wie Produkte für die Schaltungspfadgestaltung Millionen kosten können.)
  • Welche Vorteile bringt mir eine maßgeschneiderte Lösung? (In der Regel passt eine benutzerdefinierte Lösung besser zu Ihrem Unternehmen und kann daher mehr davon automatisieren oder zumindest digitalisieren.)

Es kommt darauf an, ob die Kosten einer maßgeschneiderten Lösung, die durch die Vorteile ausgeglichen werden, geringer sind als die Kosten des Standardprodukts.

Es sind auch Opportunitätskosten zu berücksichtigen. Verstehen Sie, dass diese nicht in den tatsächlichen Kosten für Entwicklung oder Kauf enthalten sein dürfen, sondern dass Sie sie in der ganzen Welt berücksichtigen müssen. Wenn Ihre internen Entwicklungsmitarbeiter an diesem einen Projekt arbeiten, arbeiten sie an keinem anderen Projekt. Das bedeutet, dass ein anderes Projekt auf der Liste, das Sie jeden Tag Geld kostet, wenn es nicht erledigt wird, eine höhere Priorität haben kann, die Sie veranlasst, die kundenspezifische Entwicklung einzustellen oder sogar abzubrechen und das Standardpaket zu wählen. Wenn Sie dieses Projekt jedoch nicht durchführen, bedeutet dies, dass Ihre internen Mitarbeiter auf ihren Händen sitzen, sind die Entwicklerkosten gesunken. Sie bezahlen Ihre Entwicklungsmitarbeiter unabhängig davon, ob sie arbeiten oder nicht, und es kostet Sie insgesamt weniger, wenn Sie sie optimal einsetzen.


0

Ich gehe davon aus, dass Sie in einem professionellen, kommerziellen Kontext nachfragen und dass es sich eher um einen Großteil Ihres Systems als um eine einzelne Bibliothek handelt.

Make or Buy vs. Make or Customize

Es gibt Situationen, in denen Ihre Organisation ein Standardprodukt verwenden kann. Zum Beispiel würden nur wenige Leute ihre eigene Textverarbeitung schreiben - sie benutzen MS Word, OpenOffice oder was auch immer. Gleiches gilt für Tabellenkalkulationen. Beachten Sie, dass Sie Ihr Textverarbeitungsprogramm möglicherweise mit Ihren eigenen Vorlagen oder Makros "anpassen", aber die Leute denken, dass es nicht angepasst wird. Das ist nur "Verwenden" des Textverarbeitungsprogramms, wie sie es sehen.

Es könnte möglich sein, kompliziertere Systeme auf die gleiche Weise zu verwenden, vom Webshop bis zum ERP-System. Aber irgendwann werden Ihre Designer oder die Mitarbeiter der Geschäftsentwicklung eine Änderung wünschen, die nicht im Standard enthalten ist. Vielleicht eine Neugestaltung der Checkout-Seite oder eine neue Methode zur Berechnung von Rabattangeboten.

Wenn Sie das von Anfang an wissen, ist Ihre Entscheidung wirklich Treffen oder Anpassen . Nur kaufen ist keine Option mehr. Und auch wenn es derzeit keine solchen Anforderungen gibt, erwarten Sie, dass Ihre Kollegen sie später einbringen?

  • Dürfen Sie das System anpassen, ohne Ihr Firmenlogo an den richtigen Stellen hochzuladen?
  • Wie schwierig ist es, und kann es von Ihren Mitarbeitern durchgeführt werden oder müssen Sie es an den Verkäufer vergeben? Beachten Sie, dass es Unternehmen gibt, deren gesamtes Geschäftsmodell darin besteht, Premium-Services für eine von ihnen entwickelte freie Software bereitzustellen.
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.