Beratung für Solo-Programmierer, deren Team in naher Zukunft erweitert wird [geschlossen]

25

Seit 4 Jahren bin ich Solo-Entwickler für eine kleine Firma. Wir haben eine Handvoll gut etablierter Produkte in einer Nischenbranche. Wir werden bald 1-2 Entwickler einstellen, und das wird wahrscheinlich die Art und Weise ändern, wie die Dinge hier funktionieren.

Obwohl ich keinen "echten" Titel habe, werde ich dieses Team "leiten". Ich möchte eine sehr gut organisierte und produktive Programmierabteilung für mein Unternehmen aufbauen. Ich habe diesen Solo-Job direkt nach dem College bekommen. Während ich als Programmierer in dieser Branche erfahren bin, fehlt mir eine Menge Erfahrung in der Teamprogrammierung. Ich habe das Gefühl, dass es entscheidend sein wird, mit dem rechten Fuß zu beginnen.

Im Moment bin es nur ich, ein paar Computer und ein SVN-Server. Ich suche nach allgemeinen Hinweisen zum Aufbau eines Teams von Grund auf.

bufferz
quelle
Eine Sache, auf die es ansonsten an guten Antworten mangelt, ist die Anleitung, wie neue Entwickler ihre neue Entwicklungsumgebung einrichten. Holen Sie sich beispielsweise dieses SDK, installieren Sie diese IDE, installieren Sie FooTest, richten Sie den YourSQL-Client ein, holen Sie sich diese Build-Skripte und stellen Sie sie hier ein, konfigurieren Sie NPM oder pip oder Maven oder Webpack oder was auch immer ... Sie sollten einen ersten Entwurf erstellen und dann Ihren ersten erstellen teste es aus und bearbeite.
user949300

Antworten:

14

Bringen Sie Ihr Haus in Ordnung und stellen Sie sicher, dass die Dinge für eine gemeinsame Anstrengung eingerichtet sind.

  • Versionskontrolle - Sie haben erwähnt, dass Sie bereits einen SVN-Server haben, was großartig ist. Stellen Sie sicher, dass Sie das Repo eingerichtet und die Projekte standardisiert organisiert haben.
  • Automatisierte Builds
  • Issue / Bug Tracking Software
  • Unit- / Integrationstests
  • Continuous Integration Server

Wenn Sie die folgenden Elemente einrichten und in Ihren Entwicklungsprozess integrieren, können Sie die Mitarbeiter viel einfacher an Bord holen, verfolgen, was gerade getan wird, und verhindern, dass die Dinge "chaotisch" werden.

Mads Hansen
quelle
Obwohl alle Antworten auf diese Frage großartig sind, kommt diese Frage dem, wonach ich suche, am nächsten. Danke Mads.
Bufferz
Ich habe eine, die ich hinzufügen möchte: Code Review. Es wird neuen Leuten helfen, das System zu erlernen, Ihnen zu helfen, die neuen Beiträge zu verstehen, und kann jeden zu einem besseren Programmierer machen. Richten Sie das System mit dem richtigen Tool und der Einstellung ein, dass es kein kontroverses, sondern ein Tool zum Lernen, Verbessern und Klären ist.
BrianH
Auch ein Wiki. Und gewöhnen Sie sich an sehr kurze Rückkopplungsschleifen. Commits werden alle fünf Minuten ausgeführt, und Sie erhalten Zusammenführungskonflikte. Sie müssen größere Refactorings koordinieren. Und haben Sie keine Angst davor, loszulassen, wenn andere schneller werden, sondern haben Sie Reviews und Ddo-Pair-Programmierung, um Abweichungen zu vermeiden. Oh, und klare Ziele setzen.
Alexander Torstling
Wenn ich darüber nachdenke, denke ich, ist es am besten, wenn jemand erfahrener ist, der Ihnen den Weg zeigt. Solocodierung und Teamcodierung sind so unterschiedlich, und die Methoden, die funktionieren, können für einen Solisten sehr kontraintuitiv sein.
Alexander Torstling
11

Stellen Sie jemanden ein, der viel kompetenter ist als Sie

... und mit Erfahrung in großen Unternehmenssoftwareprojekten.

Sie helfen Ihnen, Ihre Prozesse zu industrialisieren, und Sie werden wahrscheinlich viel von ihnen lernen.

Sie bringen ihnen Ihren Nischenmarkt bei.

Wenn Sie eine solche Person nicht finden können, empfehle ich Ihnen, an Schulungen zum Thema Teammanagement teilzunehmen. Ich empfehle Ihnen als Einstieg eine Scrum-Zertifizierung .

Gemeinschaft
quelle
6

Es mag offensichtlich sein, aber stellen Sie sicher, dass Sie denken, dass Ihnen die Arbeit mit den neuen Mitarbeitern wirklich gefällt. Versuchen Sie, ein paar Biere zu bestellen, wenn beide versuchen, das Team dazu zu bringen, sich wie eines zu fühlen.

Sie müssen sie auch auf alle Codierungsstandards aufmerksam machen, die Sie befolgen, und auf alle gängigen Techniken, die Sie verwenden, wie in Ihrer Codebasis wiederholt.

Schließlich sollten Sie alle in der Lage sein, sich in den Prozess einzubringen und zu verbessern ... vorausgesetzt, Sie befolgen andere Ratschläge und stellen jemanden ein, der die Fähigkeiten besitzt, Ihre zu ergänzen.

Kevin D
quelle
4

Da mir ein richtiger Titel fehlt, werde ich dieses Team "leiten".

Machen Sie nicht den Fehler, Ihr Verlangen / Ihren Ehrgeiz, "verantwortlich" zu sein, in die Quere kommen zu lassen. Wenn Ihr Unternehmen Entwickler mit mehr Erfahrung als Sie anstellt, sind die neuen Mitarbeiter möglicherweise besser für die Teamleiterrolle geeignet als Sie.

Ihr wahrer Wert für das Team und das Unternehmen ist Ihre genaue Kenntnis der derzeit implementierten Produkte.

Stephen C
quelle
4

Dies ist der Situation, in der ich mich vor einigen Monaten befand, sehr ähnlich. Der beste Rat, den ich geben kann, ist, die typische Hybris des Programmierens fallen zu lassen und die Besten der Besten einzustellen, die sich Ihr Unternehmen leisten kann.

Ich war eine Weile "verantwortlich", aber ein Teammitglied mit mehr Erfahrung stieg auf und ich gab gerne meine administrativen Aufgaben auf, damit ich das tun konnte, was ich am besten konnte, indem ich Qualitätscode schrieb. Ich bin immer noch ein Mentor für das Team, wie Sie sein werden.

Wenn Sie in dieser Situation das tun, was für das Unternehmen am besten ist, werden Sie belohnt.

Scott
quelle
4

Es wird hitzige technische Diskussionen geben: Neue Programmierer haben Vorurteile, sie haben ein paar Methoden kennen gelernt, und wenn sie mit einer neuen Methode konfrontiert werden, die sie nicht verstehen, werden sie zuerst denken, dass dies keinen Sinn ergibt und geändert werden muss . Programmierer, die jahrelang alleine gearbeitet haben, sind wahrscheinlich defensiv in ihrer Arbeit, und auch ihre Arbeit wird aufgrund der Anzahl der Probleme, die sie gelöst haben, ohne Dinge mit anderen Leuten zu besprechen, etwas eigenwillig.

Seien Sie sich dieser Vorurteile bewusst, begrüßen Sie den neuen Input, seien Sie nicht zu defensiv und treffen Sie keine voreiligen Entscheidungen, um alles zu ändern.

Die Arbeit in einem Team hat viele gute Seiten, insbesondere die Überprüfung Ihres Codes durch einen Kollegen. Bestehen Sie darauf für alle Teammitglieder, einschließlich Sie selbst von Anfang an.

RemcoGerlich
quelle
2

Als leitender Entwickler benötigen Sie einen Manager, der sich mit den Personalrichtlinien Ihres Unternehmens befasst. (insbesondere Gegenstände wie Urlaubsansprüche, Krankenstandsverfahren und Disziplinarverfahren, obwohl ich hoffe, dass Sie es nie brauchen werden)

Abhängig von den Fähigkeiten und Fertigkeiten der neuen Mitarbeiter, mit denen Sie beginnen, einige Aspekte Ihrer aktuellen Arbeit zu delegieren, benötigen Sie nun die Zeit, um Prioritäten zu verwalten und Zeitpläne zu erstellen.

Eine gute Quelle für einfache und grundlegende Managementfähigkeiten, was und wie professionell zu tun ist, ist http://www.manager-tools.com . Sie führen regelmäßig Podcasts zu Management- und Karriereberatung durch, ganz zu schweigen von einem umfangreichen Katalog an Material für Sie.

GrumpyMonkey
quelle
1

Viele der zur Verfügung gestellten Tipps sind exzellent, ich möchte nur ein paar aus meiner Erfahrung in einer ähnlichen Position hinzufügen.

  1. Beteiligen Sie sich an den Einstellungsentscheidungen und haben Sie keine Angst davor, Kandidaten zu vetieren, die dies nicht tun. Sie müssen eng mit dem Team zusammenarbeiten, das Sie gegenüber Ihren Kunden und dem Management vertritt.
  2. Bauen Sie mit Ihren Teammitgliedern eine Kultur der Ehrlichkeit auf und erwarten Sie von ihnen Ehrlichkeit, insbesondere in schwierigen Situationen.
  3. Lernen Sie zu delegieren und konzentrieren Sie sich dann auf Lösungen und nicht auf Prozesse.
Eric Kigathi
quelle
0

Das Buch Brownfield Application Development in .Net enthält einige Ideen, die meiner Meinung nach helfen sollten. Ein Teil des Ratschlags besteht darin, die Dinge so einzurichten, dass sie für alle Teammitglieder und für alle Zeiten wiederholbar sind.

Tangurena
quelle