Conseils pour un programmeur solo dont l'équipe s'agrandira dans un avenir proche [fermé]

25

Depuis 4 ans maintenant, je suis développeur solo pour une petite entreprise. Nous avons une poignée de produits bien établis dans une industrie de niche. Nous embaucherons bientôt 1-2 développeurs, ce qui changera probablement la façon dont les choses fonctionnent ici.

Même si je n'aurai pas de "vrai" titre, je serai "en charge" de cette équipe. Ce que je veux faire, c'est créer un département de programmation très organisé et productif pour mon entreprise. J'ai obtenu ce travail solo dès la sortie de l'université, alors même si je suis devenu compétent en tant que programmeur dans cette industrie, je manque beaucoup d'expérience en programmation d'équipe. Je pense que commencer du bon pied sera la clé.

Pour l'instant, c'est juste moi, quelques ordinateurs et un serveur SVN. Je suis à la recherche de conseils généraux sur la création d'une équipe à partir de zéro.

bufferz
la source
Une chose qui manque dans les bonnes réponses autrement est donc: des instructions sur la façon dont les nouveaux développeurs configureront leur nouvel environnement de développement. Par exemple, obtenez ce SDK, installez cet IDE, installez FooTest, configurez le client YourSQL, obtenez ces scripts de construction et mettez-les ici, configurez NPM ou pip ou Maven, ou Webpack ou autre ... Vous devez créer un premier brouillon, puis laisser votre premier embaucher tester et éditer.
user949300

Réponses:

14

Obtenez votre maison en ordre et assurez-vous que les choses sont configurées pour un effort de collaboration.

  • Contrôle de version - Vous avez mentionné que vous disposiez déjà d'un serveur SVN, ce qui est formidable. Assurez-vous d'avoir établi le référentiel et organisé les projets de manière standardisée.
  • Constructions automatisées
  • Logiciel de suivi des problèmes / bogues
  • Tests unitaires / d'intégration
  • Serveur d'intégration continue

La configuration et l'intégration des éléments suivants dans votre processus de développement facilitent considérablement la participation des personnes, le suivi de ce qui est en cours et la prévention des problèmes.

Mads Hansen
la source
Bien que toutes les réponses à cette question soient excellentes, celle-ci est la plus proche de ce que je recherche. Merci Mads.
bufferz
J'en propose un que je suggère d'ajouter: Code Review. Il aidera de nouvelles personnes à apprendre le système, vous aidera à comprendre les nouvelles contributions et peut faire de chacun un meilleur programmeur. Configurez le système avec le bon outil et l'état d'esprit qu'il n'est pas contradictoire mais un outil d'apprentissage, d'amélioration et de clarification.
BrianH
Aussi un wiki. Et habituez-vous aux boucles de rétroaction très courtes. Les commits auront lieu toutes les cinq minutes, vous obtiendrez des conflits de fusion. Vous devrez coordonner de plus grands refactorings. Et n'ayez pas peur de lâcher prise lorsque d'autres prennent de la vitesse, mais ayez des critiques et une programmation par paires pour éviter de diverger. Oh, et fixez-vous des objectifs clairs.
Alexander Torstling
En y réfléchissant, je pense qu'il est préférable que quelqu'un de plus expérimenté vous montre le chemin. Le codage solo et le codage d'équipe sont tellement différents, et les méthodes qui fonctionnent peuvent être très contre-intuitives pour un solioist.
Alexander Torstling
11

embaucher quelqu'un de beaucoup plus compétent que vous

... et avec une expérience dans les grands projets logiciels d'entreprise.

Ils vous aideront à industrialiser vos processus et vous en apprendrez probablement beaucoup.

Vous leur apprendrez votre créneau.

Si vous ne trouvez pas une telle personne, je vous suggère de suivre des formations liées à la gestion d'équipe. Je vous propose une certification Scrum en entrée.

Communauté
la source
6

Cela peut être évident, mais assurez-vous que vous aimerez réellement travailler avec les nouvelles recrues. Essayez d'organiser quelques bières quand ils commencent tous les deux à essayer de faire en sorte que l'équipe en fasse partie.

Vous devrez également les informer des normes de codage que vous suivez et de toutes les techniques courantes que vous utilisez, courantes comme répétées dans votre base de code.

Finalement, vous devriez tous être en mesure de contribuer au processus et de vous améliorer ... en supposant que vous suivez d'autres conseils et embauchez quelqu'un ayant les compétences nécessaires pour compléter le vôtre.

Kevin D
la source
4

Faute d'un vrai titre, je serai "en charge" de cette équipe.

Ne faites pas l'erreur de laisser votre désir / ambition d'être «en charge» vous gêner. Si votre entreprise embauche des développeurs avec plus d'expérience que vous, les nouveaux employés peuvent être beaucoup plus adaptés que vous au rôle de chef d'équipe.

Votre véritable valeur pour l'équipe et l'entreprise est votre connaissance intime des produits tels qu'ils sont actuellement mis en œuvre.

Stephen C
la source
4

C'est très similaire à la situation dans laquelle j'étais il y a quelques mois. Le meilleur conseil que je puisse donner est de laisser tomber l'orgueil typique d'être programmeur et d'embaucher le meilleur des meilleurs que votre entreprise puisse se permettre.

J'étais "en charge" pendant un certain temps, mais un membre de l'équipe avec plus d'expérience est intervenu et j'ai volontiers abandonné mes fonctions administratives pour pouvoir faire ce que je fais le mieux, écrire du code de qualité. Je suis toujours le mentor de l'équipe comme vous le serez.

Si vous faites ce qui est le mieux pour l'entreprise dans cette situation, vous serez récompensé.

Scott
la source
4

Il va y avoir des discussions techniques animées: les nouveaux programmeurs ont un parti pris, ils ont expérimenté quelques façons de faire les choses et lorsqu'ils sont confrontés à une nouvelle façon qu'ils ne comprennent pas, ils vont d'abord penser que cela n'a aucun sens et doit changer . Les programmeurs qui ont travaillé seuls pendant des années sont susceptibles d'être défensifs à propos de leur travail, et leur travail sera également quelque peu idiosyncrasique, en raison du nombre de problèmes qu'ils ont résolus sans discuter avec d'autres personnes.

Soyez conscient de ces préjugés, faites bon accueil à la nouvelle contribution, ne soyez pas trop défensif et ne prenez pas non plus de décisions précipitées pour tout changer.

Il y a de nombreux avantages à travailler en équipe, en particulier à faire réviser votre code par un collègue. Insistez sur cela pour tous les membres de l'équipe, y compris vous-même dès le début.

RemcoGerlich
la source
2

En tant que développeur senior, vous aurez besoin d'un chapeau de gestionnaire et commencez à regarder les politiques RH de votre entreprise. (en particulier des éléments tels que le droit aux vacances, les procédures de congé de maladie et le processus disciplinaire bien que j'espère que vous n'en aurez jamais besoin)

Maintenant, en fonction des compétences et des capacités des nouveaux employés, commencez à déléguer certains aspects de votre travail actuel, vous aurez besoin de temps pour gérer les priorités et planifier.

Http://www.manager-tools.com est une bonne source de compétences de gestion simples et de base sur ce qu'il faut faire et comment de manière professionnelle . Ils font des podcasts réguliers sur la gestion et les conseils de carrière, sans oublier un important catalogue de matériel pour vous.

GrumpyMonkey
la source
1

Beaucoup des conseils fournis sont excellents, je voudrais simplement en ajouter quelques-uns de mon expérience dans un poste similaire.

  1. Impliquez-vous dans les décisions d'embauche et n'ayez pas peur d'opposer votre veto aux candidats qui ne le sont pas. Vous devrez travailler en étroite collaboration avec l'équipe et elle représentera votre auprès de vos clients et de la direction.
  2. Établissez une culture d'honnêteté avec les membres de votre équipe et attendez-vous à leur honnêteté, surtout lorsque les situations sont difficiles.
  3. Apprenez à déléguer puis à vous concentrer sur les solutions et non sur les processus.
Eric Kigathi
la source
0

Le livre Brownfield Application Development in .Net contient quelques idées qui devraient aider. Une partie des conseils est de savoir comment configurer les choses afin qu'elles soient répétables entre les membres de l'équipe et dans le temps.

Tangurena
la source