Der einzige Entwickler sein und seine Konsequenzen [geschlossen]

16

Ich bin der einzige Entwickler in meiner Firma. Ich programmiere (in ASP.NET 4.0, jQuery und SQL Server 2008) und pflege die Datenbank und den Webserver (win 2008 r2).

Ich genieße die Freiheit, das umzusetzen, was mir gefällt, und habe gleichzeitig das Gefühl, dass ich alles schlecht machen könnte. Ich verwende keine SDLC-Diagramme, keine Methoden wie Agile usw. Ich bearbeite mehrere kleine Projekte. Ich nutze meine Freizeit, um mit den neuesten Technologien Schritt zu halten und neue Dinge zu lernen und zu testen. Ich mache das seit 7 Jahren.

  1. Ich mache mir Sorgen, wie schwierig es für mich sein wird, mich anzupassen, wenn ich meinen Job zu einem Unternehmen wechsle, in dem mehr Entwickler an einem Projekt beteiligt sind.
  2. Da ich keinem Entwurfsmuster folge, würde es gegen mich spielen, wenn ich einen Job suche oder mich an einen neuen Job gewöhnen lasse?
  3. Gibt es noch andere Vor- und Nachteile?
bp581
quelle

Antworten:

8

Wenn Sie diese Situation mit ihren Freiheiten mögen, werden Sie es wahrscheinlich nicht mögen, irgendwohin zu gehen, wo dies als Problem angesehen wird (nachdem ich über diesen Zaun gesprungen bin, von dem ich weiß, dass ich es tue).

Tatsächlich spielt es bei zukünftigen Jobs zu Ihren Gunsten, weil Sie am Ende eine viel breitere Qualifikation haben als 90% der Leute da draußen.

Der Mangel an jemandem, mit dem er über Pro / Contra-Entscheidungen streiten kann, ist ein Problem, wie Pierre beschreibt (+1 für ihn), aber ein Kollege in einem anderen Unternehmen, der die Geduld hat, auf das zu hören, was Sie versuchen, und genug Interesse hat, eine zu haben Eine starke Meinung erfüllt diese Rolle in netter Weise, manchmal sogar besser als eine Kollegin, weil sie von außen betrachtet wird. (Ich mache das immer noch, auch wenn ich jetzt in einem größeren Geschäft arbeite. Es hilft mir, auf dem Laufenden zu bleiben, was andere tun, um ähnliche Probleme zu lösen und zukünftige Probleme im Design zu erkennen.)

Das einzige andere Problem, das ich hatte, als ich der einzige Entwickler war, war, dass es niemanden gab, der mich stützte, als es an der Zeit war, eine schlechte Richtung vom Management zu bekämpfen. Ihre Laufleistung kann variieren, aber wenn Sie der einzige Entwickler sind und das gesamte Management nicht technisch ist, kann es sehr schwierig werden zu erklären, warum Sie etwas tun sollten oder nicht und sehr hart, wenn es darum geht, ihnen ihre Ziele mitzuteilen Der letzte Traum ist nicht vernünftig zu versuchen, mit der aktuellen Technologie umzusetzen.

Rechnung
quelle
5
Das andere Problem ist, dass Sie der einzige Technikfreak sind, wenn Sie hohes Fieber und starke Übelkeit haben und der Webserver ausfällt. Man hofft, dass sie einen anderen Backup-Plan haben, als einen Laptop ins Krankenhaus zu bringen, wenn Sie von einem Bus angefahren werden.
David Thornley
1
Das ist ein Problem, aber es ist oft auch ein Problem in großen Unternehmen, wenn sie ihre Ressourcen zu dünn gestreut haben.
Bill
35

Wenn Sie alleine sind, kann niemand sagen, dass Sie falsch liegen

Sie können also für eine Weile auf dem falschen Weg sein, ohne es zu wissen.

Aus diesem Grund ermutige ich Sie, jemanden zu finden, mit dem Sie über Entwicklung sprechen können. Nicht nur online, sondern auch real und physisch.

Sie müssen Ihr Unternehmen nicht verlassen. Der einzige zu sein, hat auch einige Vorteile.


quelle
3
Dies ist ein fantastischer Rat ...
webdad3
4
Stichwort ist "Mai". Wenn sich ein Entwickler gewissenhaft bemüht, sich über die verschiedenen Technologien und Methoden und insbesondere die sie umgebenden Daten zu informieren, gibt es keinen Grund zu der Annahme, dass er unterdurchschnittliche Arbeit leisten würde. Natürlich machen sich Entwickler, die im luftleeren Raum arbeiten und sich nur an das halten, was sie wissen, wahrscheinlich zunehmend überholt.
Aaronaught
Wenn Sie hier mit Pierre einverstanden sind, können zwei Entwickler [Code oder db oder was auch immer] weitaus besser produzieren als jeder einzelne. Die Vorteile steigen mit mehr Entwicklern, aber es gibt eine abnehmende Rendite.
Jamesbtate
5

Ich habe als einziger Entwickler in einem Unternehmen gearbeitet, das eine bestimmte Technologie kannte, als einziger, der die Art der Programmierung durchführte, die ich durchführte, und als Auftragnehmer in ähnlichen Situationen. (Ich habe auch in Teamumgebungen mit anderen Entwicklern gearbeitet, die verschiedene Tools kannten, und mit anderen Entwicklern, die genau das taten, was ich tat.)

Vorteile, der einzige Programmierer zu sein

  • Wie Sie bereits erwähnt haben Sie häufig die Freiheit, alle Tools oder Sprachen zu verwenden, die Sie zu lernen glauben. Sie müssen nicht immer vor Ihren Kollegen einen Fall erörtern, um die Erlaubnis zum Arbeiten mit New Technology X zu erhalten, während alle anderen die aktuelle Technologie Y verwenden.
  • Sie haben mehr Verantwortung. Im Wesentlichen fungieren Sie sowohl als Projektleiter als auch als Entwickler für jedes Ihrer Projekte. Mit Ihrer Fähigkeit, neue Dinge zu identifizieren und umzusetzen, sind Sie effektiv auch der Abteilungsleiter. (Erzählen Sie dies nicht Verkäufern. Sie lieben es, mit Entscheidungsträgern zu sprechen, und Sie haben keine Zeit, mit ihnen zu sprechen.)
  • Es ist keine Frage der Anerkennung für die geleistete Arbeit: Es sind offensichtlich Sie und Sie allein, die die Dinge geschehen ließen.
  • Sie können mehr Zeit damit verbringen, an Ihren eigenen Projekten zu arbeiten, und weniger Zeit für Besprechungen über Projekte, die im Grunde genommen von einer anderen Person durchgeführt werden (aber Sie sind als Support-Mitarbeiter, als mögliches Backup oder was auch immer dabei).

Nachteile

  • Wie David in einem Kommentar ausführt, sind Sie der einzige Entwickler. Ohne Sie wird also keine Entwicklung durchgeführt. Ich habe einmal mit meinem Bruder geprahlt, dass ich "der Typ" für ein bestimmtes Projekt bei der Arbeit war. Er beschrieb genau meine Situation für mich: Ich war gefangen. Ich konnte in dieser Firma nicht weitermachen, weil ich dieses Projekt nie loswerden könnte. (Er hatte auch Recht. Es dauerte mehrere Monate Training über einen längeren Zeitraum, bis ich es an jemanden weitergeben konnte, der es sogar einigermaßen unterstützen konnte.) Es kann schwierig sein, einen wahren Urlaub zu machen, wenn nichts kann ohne dich getan werden.
  • Pierre weist darauf hin, dass niemand vor Ort ist, der Codeprüfungen durchführt oder Best Practices mit Ihnen teilt. Sie können auf verschiedene Arten Gleichaltrige erreichen, aber nichts ist so effektiv, als einen Kollegen auf die Schulter zu tippen und sie zu bitten, sich Ihren Code 5-10 Minuten lang anzusehen.
  • In ähnlicher Weise haben Sie möglicherweise Schwierigkeiten, Erfahrungen mit neuen Tools zu sammeln. Offsite-Schulungen sind möglicherweise so selten wie Urlaubszeiten: Jemand wird sich darüber beschweren, dass es sich das Unternehmen nicht leisten kann, eine Woche lang auf Language 3.0 zu verzichten, wenn niemand da ist, der die Language 2.0-Apps am Laufen hält.
  • Der berufliche Aufstieg kann äußerst schwierig zu bewältigen sein. Möglicherweise verfügen Sie nicht über eine Position, nach der Sie streben können, und selbst eine Änderung des Titels ist möglicherweise schwierig zu erlangen, und Jahresendberichte haben keinen Bezugsrahmen. Daher wird exzellente Arbeit möglicherweise weitgehend unbemerkt bleiben, wenn es keine andere gibt Grund als, dass niemand wirklich versteht, was Sie tun.

Wenn Sie sich entscheiden, zu einer Firma zu wechseln, in der Sie als Teil eines Teams von Programmierern arbeiten würden, wird Ihre Soloerfahrung Sie wahrscheinlich nicht sehr verletzen. Ihre mangelnde Erfahrung mit Entwurfsmustern ist nicht unbedingt so wichtig wie Ihre Bereitschaft, diese zu erlernen. (Es kann Situationen geben, in denen Sie ein Interview mit einem Kandidaten mit einem ähnlichen Hintergrund führen und Erfahrung mit den Methoden haben, die das Unternehmen anwendet, aber das gilt im Grunde für alle.)

Entsprechend wird Ihre mangelnde Erfahrung in einem Team durch Ihre Fähigkeit, viele Hüte zu tragen, ausgeglichen. Es gibt einige Entwickler, die gute Teamplayer sind, aber niemals die Fähigkeit entwickeln, ein Projekt zu verwalten. Sie haben bereits gezeigt, dass Sie das tun können.

Ich würde empfehlen, dass Sie als Einzelentwickler einige Zeit mit dem Lesen von Tools und Techniken verbringen, die von ähnlichen Entwicklern verwendet werden. Selbst wenn Sie sie nicht selbst verwenden, sind Sie sich dessen bewusst, dass sie existieren, und Sie können darauf verweisen sie während eines Interviews, auch wenn sie nur sagten: "Ja, ich habe ein wenig über MVC-Frameworks gelesen, aber ich habe sie selbst nicht verwendet." Tun Sie, was Sie können, um mit anderen Entwicklern in Kontakt zu bleiben: Besuchen Sie lokale Benutzergruppentreffen, lesen und kommentieren Sie Blogs (oder behalten Sie eines Ihrer eigenen bei), versuchen Sie, von Zeit zu Zeit an Workshops teilzunehmen, sehen Sie sich Webinare und ähnliches an. (Sie könnten auch Websites wie lynda.com für Inhouse-Schulungen in Betracht ziehen: Diese sind nicht so gut wie eine einwöchige Konferenz an einem anderen Ort, aber Sie können die Videos zu Ihrer eigenen Zeit ansehen und nicht alle in Panik versetzen, weil Sie es sind nicht im Büro.)

Dave DuPlantis
quelle
2

Ihre Programmierkenntnisse verschlechtern sich mit jedem Tag, an dem Sie sich in einer solchen Situation befinden. Codierung ist der einfachste Teil der Arbeit eines Programmierers.

Die Kommunikation / Zusammenarbeit mit einem Team zur Implementierung einer Lösung ist unendlich schwieriger. Diese Fähigkeiten können nur dadurch geschärft werden. Auch wenn Sie Teil eines Teams sind, versuchen die meisten Mitglieder, mit den Technologien Schritt zu halten, so wie Sie es sind. Daher sind die Chancen, dass das Team etwas Großartiges findet, umso größer.

Bitte nimm das nicht als Angriff auf dich persönlich. Ich bin auch ein Einzelprogrammierer, suche aber so schnell wie möglich ein Team.

Matt
quelle
Allein zu entwickeln bedeutet, dass Sie auf den „Kartonprogrammierer“ verzichten, der oft ein nützliches Werkzeug ist. Grundsätzlich bedeutet, dass jemand anderes ein Problem häufig erklären muss, dass sich die Lösung in der Mitte der Erklärung befindet (bevor die andere Seite die Möglichkeit hat, Vorschläge zu machen)
Phil Lello,
0

Ich stimme mit @Pierre 303 Antwort 100%. Ich möchte auch hinzufügen, dass Sie es auf sich nehmen sollten, sich die richtigen Praktiken beizubringen. Vielleicht hilft auch eine Zertifizierung.

Ja, wenn Sie den Job wechseln, wird es schwierig ... Nicht nur, wenn es Prozesse gibt, an die Sie derzeit nicht gewöhnt sind, sondern auch mit Persönlichkeiten. Programmierer sind bekanntermaßen wettbewerbsfähig. Damit müssen Sie sich jetzt nicht befassen. Aber Sie werden, wenn Programmierer> = 1

Es hört sich so an, als hättest du einen guten Auftritt ... Ich würde daran festhalten.

Nur meine 2 Cent.

webdad3
quelle
0

Ich denke, Sie vermissen die Tatsache, dass die meisten Standards / Praktiken, die Sie in einem großen Entwicklungshaus finden, leicht auf Ihre Situation angewendet werden können. Das Vornehmen dieser Anpassungen an einem Ein-Personen-Team wurde bereits in SO behandelt. Suchen Sie ein bisschen nach Anleitungen:

Wie wende ich agil auf persönliche Projekte an?

Jeff Swensen
quelle
Gibt es einen Link, um das vollständige Beispielprojekt mit allen Methoden wie SDLC, Agile ... usw. zu finden?
bp581
Lassen Sie sich nicht zu sehr auf Worte wie "Agile" und "Scrum" ein; Ihre nur formalen Definitionen der Methoden, die erfolgreiche Teams bereits verwendeten. Sie sind jedoch nützlich, wenn Sie nicht das Glück haben, an einem Ort zu arbeiten, an dem dies ein natürlicher Bestandteil der Umwelt ist.
Phil Lello