Inhouse versus Software-Entwicklungsumgebung [geschlossen]

13

In der Branche wird zwischen einer "Inhouse-Entwicklungsumgebung", in der die Softwareentwickler Code schreiben, der vom Unternehmen selbst verwendet wird, und einer geeigneten "Softwareentwicklungsumgebung", in der Software für den Verkauf / Vertrieb entwickelt wird, unterschieden zur Öffentlichkeit.

Ein offensichtlicher Unterschied zwischen beiden ist unter anderem, dass ein auf Softwareentwicklung ausgerichtetes Unternehmen in der Regel einen Softwareentwicklungszyklus einhält, z Machen Sie die Dinge lockerer, da sie selbst die Endbenutzer sind und immer etwas reparieren können, was nicht richtig gemacht wurde.

Als Student habe ich (wie die meisten anderen Studenten) erwartet, dass ich in einer Software-Entwicklungsumgebung arbeite. Am Ende habe ich meine erste Stelle bei einer Firma bekommen, die eher intern operiert.

Manchmal frage ich mich, ob mir die umfassende Erfahrung in der Softwareentwicklung entgeht. Gibt es eine Grundlage für dieses Gefühl? Soll ich versuchen, einer geeigneten Software-Entwicklungsumgebung beizutreten?

Isaac Kleinman
quelle
9
Ich denke, Sie sind über das Generalisieren hinaus. Die verwendeten Methoden haben nichts mit internen Produkten zu tun, im Gegensatz zu kommerziell verkauften Projekten. Ich habe an einem ausgelieferten Produkt gearbeitet, das sehr ad-hoc entwickelt wurde, und dabei viele der Best Practices ignoriert. Ich habe auch an internen Projekten mit detaillierten Spezifikationen, Testsuiten und einer Vielzahl von Methoden zur Qualitätskontrolle gearbeitet.
Thomas Owens
Beide Fragen, die Sie gestellt haben, können nur von Ihnen selbst beantwortet werden.
Leo
6
Meiner Meinung nach hat Ihr Problem nichts damit zu tun, das Unternehmen In-House vs. Software zu verpassen. Sie scheinen unter einer unstrukturierten Entwicklungsumgebung zu leiden und keinen starken Mentor zu haben, der Sie dabei unterstützt, Best Practices zu befolgen.
maple_shaft
1
Unabhängig davon, ob die Software für den Verkauf oder für den internen Gebrauch entwickelt wurde, wird sie als "Softwareentwicklung" bezeichnet. Kommerziell könnte ein besserer Begriff sein als das, was Sie als "Softwareentwicklung" bezeichnen.
Caleb
1
Sie verbinden zwei Dimensionen der Softwareentwicklung - Ad-hoc- und strukturierten Entwicklungsprozess sowie Inhouse- und Produktentwicklung. Der Grad von jedem kann unabhängig variieren.
Sean McMillan

Antworten:

13

Nach meiner Erfahrung ist die Unterscheidung zwischen "In-House" und "Distributable Product" falsch.

Es gibt Unternehmen, die ihren Softwareentwicklungsprozess ernst nehmen und solche, die dies nicht tun. Unabhängig davon, ob sie "im Haus" oder "maßgeschneidert" oder "Schrumpffolie" sind, werden sie in der Regel weniger berücksichtigt (wenn sie jedoch "Schrumpffolien" -Anbieter sind, werden sie wahrscheinlich nicht im Geschäft sein, wenn sie keinen Prozess haben lange).

Sie sollten nach einem Ort suchen, der die Entwicklungsstandards aufweist, die Sie suchen. Wenn Sie ein Interview führen, müssen Sie diese Fragen stellen, um sicherzustellen, dass der Ort in dieser Hinsicht (wie auch in anderen) Ihren Wünschen entspricht.

Oded
quelle
Ich habe etwas Ähnliches geschrieben, als du gepostet hast. +1 nur für den letzten Satz, obwohl es alle gültigen Punkte sind.
Thomas Owens
@ThomasOwens - Ja, ich habe Ihren Kommentar zu der Frage nach dem Posten meiner Antwort gesehen und auch eine Antwort von Ihnen erwartet;)
Oded
10

Sie können diesen Artikel lesen

http://www.joelonsoftware.com/items/2007/12/04.html

von Joel Spolsky, der sich genau mit Ihrer Frage befasst.

Ich befand mich in einer Position, an der ich in den letzten beiden Jahren arbeiten musste - an einem mittelgroßen Softwareprodukt, das verkauft wurde, und an einer hausinternen Software. Aus dieser Erfahrung kann ich Ihnen sagen, dass es Unterschiede zwischen diesen beiden Plattformen gibt, aber die Situation ist nicht so schlimm, wie Joel es beschrieben hat.

Zum Beispiel muss der Großteil unserer internen Software nur in einer sehr eingeschränkten Umgebung ausgeführt werden. Viele Tools, die nur mit einer bestimmten Tabellenkalkulations- oder Datenbankversion, mit einer bestimmten Netzwerkumgebung, mit einer begrenzten Anzahl von Benutzern, ohne Installationsroutine usw. arbeiten. Dies erleichtert und beschleunigt die Entwicklung im Vergleich zu den neuen Funktionen, die in eingeführt wurden Unser Versandprodukt. Andererseits bedeutet das nicht, dass mein Code für die "Inhouse" -Programme eine geringere Qualität aufweist oder eher "beiläufig" geschrieben ist.

Doc Brown
quelle
6

Vor langer Zeit las ich ein Buch über Agiles Projektmanagement (ich wünschte, ich könnte mich an den Titel erinnern), in dem der Autor Systeme anhand ihres Toleranzniveaus für Systemfehler unterschied. Die Toleranz für Fehler kann sehr hoch sein - beispielsweise ein Dienstprogramm, das von anderen Entwicklern verwendet wird (wo Fehler lediglich eine Unannehmlichkeit darstellen), oder sehr niedrig - beispielsweise ein System, auf dem Astronauten lebenserhaltend arbeiten (wo ein Fehler auftreten kann) lebensbedrohlich sein).

Der Standpunkt des Autors war, dass die Entwicklungsmethode (und die Formalität) auf die Fehlertoleranz (oder Kritikalität) des Systems abgestellt werden musste. Ich halte diese Unterscheidung für die wichtigste, im Gegensatz zur Unterscheidung zwischen Eigenentwicklung und Software für den allgemeinen Vertrieb.

Stellen Sie sich ein Krankenhaus vor, in dem firmeninterne Entwickler Patientenakten-Systeme bauen, die sich auf die Qualität der medizinischen Versorgung auswirken könnten. In diesem Fall wäre der interne Shop wahrscheinlich strenger als eine Website-Beratung, die Webprodukte für die breite Öffentlichkeit erstellt.

Sam Goldberg
quelle
3

Ich habe für Softwarehäuser, Marketingagenturen, Mobiltelefontelefone und Banken gearbeitet. Eine Sache, die ich sagen möchte, ist die Unternehmenskultur und -branche, die den Grad der angewandten Prozesse bestimmt. Das rigoroseste, langsamste, restriktivste und getestetste Umfeld, das ich je erlebt habe, war die Eigenentwicklung für eine Bank. Am lockersten war eine Marketingagentur.

Ich würde empfehlen, aus dieser Erfahrung zu lernen und daraus Ihre zukünftige Richtung für Ihren nächsten Job zu bestimmen. Die Softwareentwicklungsbranche ist keine Wissenschaft, ihre Kunst / Wissenschaft daher die Variation und Unterschiede von Unternehmen zu Unternehmen. Es ist wichtiger, dass Sie lernen, Dinge in Bezug auf Ihren Code richtig zu machen. Obwohl es nützlich ist, sich die Fehler oder das Fehlen von Prozessen im Kopf zu merken, können Sie bei Ihrem Manager bessere Prozesse implementieren.

Nickz
quelle