BABYBETTEN vs. Custom / Build vs. Buy: Entscheidungsbaum und Best Practices
Hintergrund:
Ich arbeite in einem Unternehmen mit einer großen SAP-Investitionen, und wir haben auch Dutzende von großen .NET-Systeme (meist intern für engineering-Systeme), und Java-Plattformen (meist für externe web-Anwendungen). Als solche haben wir eine große Entwicklung-shops auf ABAP, C#, und Java EE.
Frage:
Kurz, Wir brauchen einen besseren Weg, um zu bestimmen, Wann Commercial, Off-The-Shelf (COTS) - software verwendet werden sollte und Wann sollten wir nutzen unsere eigenen Entwickler.
Kriterien:
Möchte ich bauen einen Entscheidungsbaum auf Basis von best practices helfen bei dieser Frage.
Auf dem höchsten Niveau, Jeff Atwood ' s post fasst es gut zusammen: Der Beste Code ist Kein Code Auf Allen
Ein wenig tiefer, würde ich mag, um zu sehen, Kriterien wie:
Ist ein COTS-system zur Verfügung, erfüllt die meisten Anforderungen?
(Wenn ja, ein COTS-system kann eine gute option sein: (Vermeiden Sie das Rad neu erfinden))
- Wenn ja, gibt es eine voll ausgesetzt API
verfügbar? (Dies ist notwendig, um
integration /Anpassung) - Wenn dem so ist, ist der Quellcode verfügbar?
(Dies ist notwendig, um Tiefe
integration /Anpassung)
Ist das system entwickelt, um ein Kerngeschäft Funktion /einen Wettbewerbsvorteil verschaffen ?
(Wenn dem so ist, kundenspezifische Entwicklung kann eine gute option sein: Siehe Joel Sposky ist: In Defense of Not-Invented-Here-Syndrom)
- Wenn dem so ist, wird die kundenspezifische Entwicklung ermöglichen
für die Wiederverwendung von code in der Zukunft /andere
Systeme? (Es gibt viele Vorteile
um die Wiederverwendung von vorhandenen code)
Was die TCO für die benutzerdefinierte Anwendung oder die COTS-Produkt?
Gibt es zeitliche Einschränkungen, die nicht erfüllt werden konnten mit der kundenspezifischen Entwicklung?
(Wenn ja, ein COTS-system kann eine gute option sein)
- Könnte man zusammenfassen, was die eigentliche Frage ist, bitte?
- Behoben. Hoffentlich wird jeder Zustimmen, dass die Frage mehr leicht hebt sich nun.
- fertig! Ich fügte hinzu, die Zusammenfassung am Ende
- Ich denke, dass wir mit Füßen getreten bearbeitet.
- Hoppla, du hast Recht - ich mag deins besser 🙂
- Schauen Sie sich meine Version an, ich drehte mich wieder um, macht es Ihre Frage, die sich abheben und fügt hinzu, was Ihre Kriterien explizit. /me will, SO würde man eine bessere version control system.
- Die gute Nachricht ist, dass das geruckel bei der Bearbeitung gehalten hat, Ihre Frage auf der Titelseite für eine gute Zeit. 😀
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin mir nicht ganz sicher, was Sie Fragen, aber ich dachte ich würde Kommentar auf ein paar Dinge, die ich gesehen habe entstehen COTS-versus eigene Entwicklung Entscheidungen über die Jahre:
Wird es Zeit richtig zu analysieren alle COTS-Systemen für die EIGNUNG. Sowohl aus Anforderungen Perspektive und eine technische. Wie viel custom-dev hätte man statt der Analyse?
Hüten Sie sich vor den KINDERBETTEN Verkaufsgespräch die Versprechen, die der Mond auf einem Stock. Es gibt viele von Ihnen. Auffällige Präsentationen von ja-Männer, die sich bieten, um jedem Bedarf gerecht wird, um das Geschäft. Die gefährlichste Falle tappen versprochen wird Funktionalität, die sich nicht in ein Kinderbett vorhanden, aber Sie werden für Sie mehr als oft nicht, der Verkäufer hat ja gesagt Sie, ohne auch herauszufinden, ob es möglich ist, für Ihr Produkt, um es zu tun.
Prüfung für unit-tests in die KINDERBETTEN und auch, was die Entwicklung von Methoden, die Sie verwenden. Gute Indikatoren für die Qualität. Ein cowboy-Entwicklung der Praxis, Mangel an tests und Dokumentation Wartbarkeit Kopfschmerzen in der Zukunft.
Vorsichtig sein, wenn die COTS Verkäufer nicht geben viel von info über die technischen Aspekte des Produktes.
Wenn Ihr gewünschtes system ist relativ einfach, dann ist dein COTS-Wahl auch relativ einfach sein. Aber wenn es ein großes, Komplexes system würden Sie vermutlich bieten Sie es aus für RFP (request for proposal) und das zu tun, sind Sie gehen zu müssen, um eine umfassende und korrekte Spezifikation der Anforderungen. Wird die Zeit zum erzeugen von Anforderungen für die RFP aus Wiegen, eine benutzerdefinierte dev agile Lösung? Sie gehen zu müssen, zu nageln, diese Anforderungen unten super eng, um sicherzustellen, dass die COTS-system liefert, und das wird eine Menge Zeit und Mühe.
Ich persönlich würde nie in Betracht, ein BABYBETT, es sei denn:
Schließlich, ich Stimme mit Joel ' s Aussage: Wenn es ein core-business Funktion-machen Sie es selbst, egal was.