Behalten Sie Ruhe und wechseln Sie zu einem neuen Entwicklungsteam

Veröffentlicht: 2022-03-11

Es ist üblich, dass ein Softwareprodukt während seiner Lebensdauer von einem Entwicklungsteam zum anderen wechselt. Verschiedene Stadien des Produkts können unterschiedliche Arten von Entwicklungsteams erfordern: ein Beratungsunternehmen, das die erste Version erstellt, ein freiberuflicher Solo-Entwickler, um es zu warten, ein internes Team, um es zu skalieren, oder ein professioneller Designer, der etwas hinzufügt. Pop".

Ungeachtet dessen, wie oft dies vorkommt, finden sich viele technisch nicht versierte Gründer und Product Owner unvorbereitet und unschlüssig, wenn es an der Zeit ist, das nächste Team zusammenzustellen. Dies führt oft dazu, dass das neue Team keine schnellen Fortschritte erzielen kann, Zeit verschwendet wird und alle Beteiligten frustriert sind.

Wenn dies so klingt, als könnten Sie es jetzt oder in Zukunft sein, dann sollten Sie sich etwas Sorgen machen. Glücklicherweise werden wir die Schritte durchgehen, die Sie unternehmen können, um sich auf diese Eventualität vorzubereiten und den Übergang so reibungslos wie möglich zu gestalten.

Die Fackel weitergeben: Onboarding eines neuen Entwicklungsteams

In diesem Artikel stelle ich Ihnen eine Checkliste mit Punkten zur Verfügung, die Ihnen bei der Vorbereitung auf eine solche Änderung helfen werden. Sie werden Ihr Produkt auf einer intimeren Ebene kennenlernen und mehr Kontrolle über all die verschiedenen Dienstleistungen und Technologien erlangen, die in die Herstellung einfließen, wodurch Sie selbstbewusst und relativ leicht in ein neues Team einsteigen können.

Die Fackel an neue Entwickler weitergeben? Stellen Sie sicher, dass das neue Team nicht verbrannt wird und Sie keine Zeit mit der Brandbekämpfung verschwenden.

Die Fackel an neue Entwickler weitergeben? Stellen Sie sicher, dass das neue Team nicht verbrannt wird.
Twittern

Aber was ist, wenn Sie nicht das gesamte Team ersetzen? Solltest du dir die Mühe machen, das zu lesen?

Selbst wenn ein Teil des vorherigen Teams an Bord bleibt, haben sie möglicherweise nicht alle Antworten und Informationen, die für einen reibungslosen Übergang erforderlich sind. Obwohl sie Kontinuität und Unterstützung beim Prozess des Wissenstransfers vom alten Team zum neuen bieten können, ist es kein Ersatz dafür, dass der Product Owner die Verantwortung übernimmt und den Transfer erleichtert, wenn man sich auf etablierte Teammitglieder verlässt. Darüber hinaus kann die Nichtübernahme der Verantwortung zu Spannungen zwischen alten und neuen Teammitgliedern führen oder alte Teammitglieder mit unnötigen Aufgaben belasten, wodurch sie gezwungen werden, zu viel Zeit mit der Kommunikation mit neuen Teammitgliedern und der Lösung verschiedener Probleme zu verschwenden.

Wenn jedoch einige Teammitglieder an Bord bleiben, können sie bei Ihren Übergangsbemühungen von unschätzbarem Wert sein. Beraten Sie sich mit ihnen, halten Sie sie auf dem Laufenden und versuchen Sie, ihre Erfahrung zu nutzen, ohne sie mit zu vielen Übergangsaufgaben zu überschwemmen. Erwarten Sie nicht, dass sie die ganze schwere Arbeit erledigen! Das ist dein Job.

Lassen Sie uns also ohne weiteres eintauchen!

Sammeln Sie Dokumentation

Freiberufliche Entwickler werden oft gebeten, in eine bestehende Codebasis einzusteigen, die sie noch nie zuvor gesehen haben. Dies gilt insbesondere für Softwareingenieure von Toptal. Unser Ziel ist es immer, so schnell wie möglich auf den neuesten Stand zu kommen, damit wir beginnen können, eine positive Wirkung für unsere Kunden zu erzielen.

Der Zugriff auf eine klare, gründliche Dokumentation über das Projekt kann den Onboarding-Prozess erheblich beschleunigen und Entwicklern helfen, Fallstricke zu vermeiden, die den Fortschritt behindern können.

Eine gute Dokumentation muss mindestens die folgenden Themen abdecken:

  • Einrichten einer Entwicklungsumgebung – Die erste Aufgabe für jeden Neuling besteht darin, die Anwendung auf dem eigenen Computer zum Laufen zu bringen. Der Prozess dafür variiert zwischen den Technologien. Im Allgemeinen sind Aufgaben wie das Abrufen des Quellcodes, das Einrichten der Datenbank, das Installieren von Abhängigkeiten, das Konfigurieren der Umgebung mit API-Schlüsseln und Anmeldeinformationen, das Importieren von Beispieldaten usw. erforderlich. Entwickler haben in ihren jeweiligen Bereichen eine gute Vorstellung von allem, was an diesem Prozess beteiligt ist, und sollten in der Lage sein, die Details entsprechend anzupassen.
  • Ausführen der automatisierten Testsuite – Wenn Sie sehen, dass die Tests einer Anwendung bestanden wurden, stellen Sie sicher, dass alles richtig eingerichtet wurde und dass zukünftige Änderungen keine Ihrer vorhandenen Funktionen beeinträchtigen.
  • Bereitstellen auf den Staging- und Produktionsservern – Das Aktualisieren der Live-Anwendung mit den neuesten Änderungen ist ein hochgradig skriptgesteuerter Prozess, und die Reihenfolge dieser Vorgänge sollte Schritt für Schritt so detailliert wie möglich beschrieben werden.
  • Alle anderen Informationen, die für neu eingestellte Entwickler relevant sind – Jede Anwendung hat ihre eigenen Macken. Das Aufschreiben erspart zukünftigen Teams eine Menge verschwendeter Mühe beim Debuggen von Problemen, mit denen das vorherige Team bereits herausgefunden hat, wie es damit umgeht.

Eine gute Dokumentation ist der Eckpfeiler jeder erfolgreichen Umstellung. Stellen Sie sicher, dass Ihr neues Team über alles verfügt, was es für die Übernahme benötigt.

Eine gute Dokumentation ist der Eckpfeiler jeder erfolgreichen Umstellung. Stellen Sie sicher, dass Ihr neues Team alles hat, was es braucht.
Twittern

Die Dokumentation sollte von einem Entwickler geschrieben werden, der über Erfahrungen aus erster Hand beim Einrichten der Anwendung und beim Beitragen zur Codebasis verfügt.

Bevor es zu einem Übergang kommt, fordern Sie das vorherige Entwicklungsteam auf, den Wissenstransfer zu erleichtern, indem es eine Ressource erstellt, die die oben genannten Themen berührt!

Wenn das Schreiben nicht ihre Stärke ist, bitten Sie sie, einen oder mehrere Screencasts aufzunehmen, die die Einrichtung, Bereitstellung usw. der Entwicklungsumgebung demonstrieren. Heutzutage gibt es sogar Tools wie Vagrant und Docker, mit denen ganze Entwicklungsumgebungen paketiert und an andere verteilt werden können. Anstatt jemandem Anweisungen zu geben, wie man einen Hammer baut, geben Sie ihm im Wesentlichen den Hammer selbst.

Der Lackmustest dafür, wie umfassend und effektiv die Dokumentation eines Projekts ist, besteht darin, wie schnell ein neuer Entwickler seine Entwicklungsumgebung einrichten und Ihre Anwendung ausführen kann.

Verstehen Sie Ihr Produkt

Eine hervorragende Dokumentation entbindet Sie nicht davon, die Grundlagen der Technologie Ihres eigenen Produkts kennen zu müssen. Als Eigentümer eines Softwareprodukts liegt es in Ihrer Verantwortung, Ihre Anwendung so gut wie möglich zu verstehen, auch wenn Sie nicht sehr technisch versiert sind.

Kein technischer Hintergrund? Es gibt keine Entschuldigung dafür, die Bausteine ​​Ihres Projekts nicht richtig zu verstehen. Es könnte Sie teuer zu stehen kommen.

Kein technischer Hintergrund? Es gibt keine Entschuldigung dafür, die Bausteine ​​Ihres Projekts nicht richtig zu verstehen. Es könnte Sie teuer zu stehen kommen.
Twittern

Die folgenden Fragen sind häufig, und es sollte erwartet werden, dass Sie die Antworten kennen, ohne sie nachschlagen zu müssen:

  • Welchen Technologie-Stack verwendet Ihre Anwendung? - Es gibt viele gängige Anwendungsframeworks für das Back-End und das Front-End, und jedes neue Entwicklungsteam sollte mit den Frameworks vertraut sein, die Ihre Anwendung verwendet. Einige Beispiele für Backend-Webtechnologien sind Ruby on Rails, Node.js und Django. Einige Beispiele für Front-End-Webtechnologien sind React.js, Angular.js und Ember.js.
  • Wo wird es gehostet? - Unterschiedliche Webhoster haben unterschiedliche Bereitstellungsprozesse, die unterschiedliche Erfahrungsniveaus erfordern. In den letzten Jahren haben Cloud-Technologien eine Reihe neuer Hosting-Optionen geschaffen, und Sie müssen identifizieren, welche spezielle Sie verwenden, und beschreiben, warum sie den anderen vorgezogen wurde.
  • Wie ist der Entwicklungsprozess? - Verwendet Ihr Team ein bestimmtes Quellcodeverwaltungstool wie Git? Wenn ja, wie ist der Prozess, durch den eine neue Funktion entwickelt, getestet, genehmigt und bereitgestellt wird? Der Prozess muss standardisiert, ordnungsgemäß dokumentiert und für Neueinsteiger einfach zu replizieren sein.
  • Welche Dienste von Drittanbietern verwendet Ihre Anwendung? - Einige Anwendungen basieren auf Diensten von Drittanbietern wie Shopify. Bitte denken Sie daran, dass die Abhängigkeit von Drittanbieterdiensten allmählich zunimmt, und selbst wenn Sie derzeit keinen zusätzlichen Dienst nutzen, kann sich Ihr Projekt irgendwann später für einen Drittanbieterdienst entscheiden.
  • Auf welchen Plattformen kann Ihre Anwendung ausgeführt werden? - Ist Ihre App eine Desktop-Anwendung, Web-App, responsive mobile Website, native iOS-Anwendung, native Android-Anwendung oder etwas anderes? Läuft es auf mehreren verschiedenen Plattformen? Welche Plattform ist Ihre Priorität zu einem bestimmten Zeitpunkt? Auf welcher Plattform ist Ihr Produkt am stärksten und auf welcher am schwächsten? Stellen Sie sicher, dass Sie alle Details der aktuellen Plattformen Ihrer Anwendung kennen und sogar, auf welche Plattformen sie erweitert werden kann.

In Besitz nehmen

Der heutige Softwareentwicklungsprozess nutzt eine Fülle von Diensten und Tools von Drittanbietern. Ob Sie es wissen oder nicht, Ihre Anwendung ist keine Ausnahme.

Im Laufe der Entwicklung hat sich Ihr vorheriges Team möglicherweise in Ihrem Namen angemeldet oder sogar seine eigenen Konten verwendet, um Zugriff auf die benötigten Dienste zu erhalten. Der Wechsel zu einem neuen Team bedeutet, dass Sie die Kontrolle über jeden einzelnen der Dienste und Tools übernehmen müssen, auf die Ihre Anwendung angewiesen ist, damit Sie Ihrem neuen Team Zugriff gewähren können, ohne einen Mittelsmann hinzuziehen oder den zu jagen ursprüngliche Entwickler.

Im Folgenden finden Sie eine Liste der verschiedenen externen Tools oder Dienste, die Ihre Anwendung möglicherweise verwendet:

  • Verwaltung der Quellcodeverwaltung – GitHub, Bitbucket, Gitlab
  • Webhosting – Heroku, EngineYard, Digital Ocean, Bluehost, Amazon Web Services
  • Datei-Hosting – Amazon Web Services (S3)
  • DNS-Anbieter – GoDaddy, DNSimple, Hover
  • Entwicklungsdienste - NewRelic, FileStack, Segment, Bugsnag (und unzählige andere)
  • Zahlungsdienste - Stripe, Braintree, PayPal
  • Blogging-Dienste – WordPress, Tumblr, Ghost
  • E-Commerce-Lösungen – Shopify, Squarespace
  • Analytics / Tracking - Google Analytics, Mixpanel, Kissmetrics
  • E- Mail-Marketing: MailChimp, ständiger Kontakt

Fragen Sie Ihr scheidendes Entwicklungsteam, welche anwendbar sind. Bitten Sie für alle Dienste, die dem Entwicklungsteam gehören, darum, das Eigentum an Ihnen zu übertragen. Wenn dies nicht möglich ist, bitten Sie sie, Ihnen beim Erstellen eines eigenen neuen Kontos zu helfen, und stellen Sie sicher, dass die Anwendung Ihr Konto anstelle ihres Kontos verwendet. Dies sollte nichts weiter erfordern, als einige Konfigurationseinstellungen für Ihre Anwendung zu ändern.

Stellen Sie selbstverständlich sicher, dass jeder Entwicklungsvertrag Ihre Interessen vom ersten Tag an schützt und einen reibungslosen Übergang gewährleistet, egal was passiert.

Zugriff gewähren

Mit einem soliden Verständnis des Ökosystems Ihrer Anwendung und dem Besitz aller verschiedenen Tools und Dienste, die Ihre Anwendung verwendet, sind Sie jetzt in der Lage, dem neuen Team oder der Person vollen Zugriff zu gewähren.

Bei den meisten Diensten können Sie Ihrem Konto einen Mitarbeiter hinzufügen und ihm eine bestimmte Zugriffsebene gewähren. Es ist in Ordnung, hier konservativ zu sein . Viele Gründer, insbesondere Einzelunternehmer, ziehen es vor, ihren Entwicklern vollen Administratorzugriff auf ihre Dienste zu gewähren und sie alles erledigen zu lassen. Dies hat den negativen Nebeneffekt, dass Sie nicht auf dem Laufenden bleiben, was, wie wir gelernt haben, den Übergang in der Zukunft erschweren kann.

Sollten Sie Ihren Entwicklern volle Administratorrechte gewähren? Es liegt an Ihnen, und die meisten Menschen haben mit diesem Ansatz kein Problem. Sie müssen jedoch immer vorausplanen und sicherstellen, dass sich Ihre Entscheidung nicht negativ auf ein neues Entwicklungsteam auswirkt. Wenn Sie dies in den frühen Phasen des Projekts nicht tun, kann dies in der Zukunft ärgerliche Folgen haben.

Verwalten der Übergabe

Jetzt, da Sie alle Grundlagen abgedeckt haben, müssen Sie die Übergabe von einem Team zum nächsten verwalten. Hier sind einige grundlegende Tipps für den Umgang mit dem eingehenden und dem ausgehenden Team.

Stellen Sie sicher, dass Sie die technischen und persönlichen Aspekte Ihrer Projektübergabe richtig verwalten. Sorgen Sie dafür, dass sich Ihr neues Team wie zu Hause fühlt, und verärgern Sie Ihr altes Team nicht.

Stellen Sie sicher, dass Sie die technischen und persönlichen Aspekte Ihrer Projektübergabe richtig verwalten. Fühlen Sie sich in Ihrem neuen Team wie zu Hause.
Twittern

Ankommendes Team

  • Erwartungen setzen – Das neue Team sollte Ihre wichtigsten Ziele kennen, damit es sich in die richtige Richtung konzentrieren kann. Ebenso wichtig ist es, Ihre eigenen Erwartungen an das, was das neue Team sofort erreichen kann, zu managen.
  • Checken Sie oft ein - Lassen Sie das neue Team nicht untergehen oder schwimmen. Sie möchten oft nachsehen, um sicherzustellen, dass sie alles haben, was sie brauchen, und nicht das Gefühl haben, dass sie für sich selbst sorgen müssen. Versuchen Sie, dies ohne Mikromanagement zu tun. Stellen Sie sicher, dass sie wissen, dass Sie da sind, um sie zu unterstützen und zu helfen, wenn sie es brauchen, aber üben Sie keinen unnötigen Druck auf sie aus.
  • Seien Sie geduldig – Entwickler brauchen Zeit, um sich an eine neue Codebasis zu gewöhnen. Verstehen Sie, dass es einige Zeit zum Lernen geben wird, bevor das neue Team das Tempo des vorherigen erreichen kann.

Abgehendes Team

  • Sammeln Sie den gesamten ausstehenden Code – Stellen Sie sicher, dass der gesamte Quellcode in das Haupt-Repository eingecheckt ist und dass Sie den Status dessen kennen, was bereitgestellt wurde und was nicht. Das neue Team muss genau wissen, wo es ansetzen und mit der Arbeit beginnen soll. Ich selbst habe eine Situation erlebt, in der ich für ein Team übernommen habe, das Code bereitgestellt hatte, ohne ihn in das Haupt-Repository zu stellen. Dies führte zu Fehlern, Doppelarbeit und Kopfschmerzen, die leicht hätten vermieden werden können, wenn das scheidende Team den Quellcode in einem konsistenten Zustand belassen hätte.
  • Aktualisieren Sie ihre Zugriffsebene – Wenn Sie sich im Guten getrennt haben, möchten Sie ihnen vielleicht den Zugriff auf Ihren Code und/oder Ihre Bereitstellung überlassen. Viele Teams helfen in der Übergangsphase gerne aus, bis das neue Team voll übernehmen kann. Wenn dies nicht der Fall ist, ziehen Sie in Betracht, den Zugriff herunterzustufen oder zu widerrufen, um versehentliche Probleme oder Konflikte mit dem neuen Team zu vermeiden.
  • Danke ihnen für ihre Arbeit – Übergänge können hektisch sein. Während Sie mit dem neuen Team beschäftigt sind, vergessen Sie nicht, Ihrem scheidenden Team für seinen Beitrag zu Ihrem Projekt zu danken.

Fazit

Jeder Übergang im Leben kann beängstigend sein und die Ungewissheit mit sich bringen, ob er klappen wird oder nicht, Angst vor dem Unbekannten und so weiter. Der Übergang zu einem neuen Entwicklungsteam ist nicht anders, aber Sie können und sollten Schritte unternehmen, um ihn zu erleichtern. In den meisten Fällen erfordert es nur ein wenig langfristige Planung.

Ein besseres technisches und nicht-technisches Verständnis Ihres Softwareprodukts, des Entwicklungsprozesses und aller Dinge, die in den Prozess einflossen, wird dazu beitragen, den Übergang von einem Team zum nächsten so nahtlos und schmerzlos wie möglich zu gestalten.

Das Beste ist, dass Ihr neues Team Sie respektieren und Ihnen dafür danken wird, dass Sie auf dem neuesten Stand sind! Sie sparen ihnen wahrscheinlich Zeit und Mühe, was auch bedeutet, dass Sie Geld sparen. Außerdem gilt: Je früher das neue Team erkennt, dass es auf hohe professionelle Standards besteht, desto besser. Die Chancen stehen gut, dass sie diese Praktiken auch nach der Übernahme des Projekts weiter implementieren und so auch den nächsten Übergang reibungslos gestalten.

Sehen wir uns also die wichtigsten Punkte an, die jeder Übertragung des Eigentums an Ihrem Softwareprodukt vorausgehen sollten:

  • Sammeln oder erstellen Sie so viel Dokumentation wie möglich über Ihre Anwendung, die Entwicklungsumgebung und den Bereitstellungsprozess.
  • Kennen Sie Ihr Produkt in- und auswendig.
  • Behalten Sie die Kontrolle über alle Drittanbieterdienste und Abhängigkeiten Ihrer Anwendung und haben Sie die Benutzernamen und Passwörter für alles.
  • Bereiten Sie sich darauf vor, Ihrem neuen Team Zugriff auf alles zu geben, was es für den Einstieg benötigt.
  • Seien Sie proaktiv und überlassen Sie nichts dem Zufall oder dem scheidenden Entwicklungsteam.
Verwandte: So verwalten Sie Ihr Remote-Entwicklerteam nicht