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?
quelle
Antworten:
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.
quelle
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.
quelle
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.
quelle
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.
quelle