fbpx
Productivité

Programmer en solo ou en équipe ?

Programmer en solo ou en équipe ?

C’est une question légitime à se poser si l’on veut faire les bons choix et perdre le moins de temps possible. Il faut prendre en compte plusieurs aspects pour comprendre et savoir quel est le bon choix à faire.

Apprendre la programmation en solo

C’est une étape inévitable pour acquérir les connaissances nécessaires dans ce que vous voulez faire. Vous êtes obligé d’apprendre en solo vos connaissances, car personne ne pourra les acquérir à votre place. 

Un développeur doit savoir acquérir par lui même les connaissances qu’il a besoin et quand il en a vraiment. C’est dans ce cas de figure que l’on doit prendre conscience qu’il faut être un autodidacte. Et une chose est sûre : personne ne peut prévoir pour vous les connaissances dont vous aurez besoin et ce sera un travail de tous les jours. 

L’avantage d’apprendre seul c’est que vous apprenez à votre rythme et ce que vous souhaitez. Généralement dans notre contexte, l’autoformation se fait par du contenu texte (sites internet, blogs, livres) et avec du contenu audio/vidéo (formations en ligne, YouTube). Pour valider vos connaissances, vous allez les mettre en pratique tout réalisant de petits projets et/ou de petits scripts. 

Mais la faiblesse quand on est seul, c’est de ne pas garder la volonté et la motivation de finir ce que l’on commence. Vous commencez un petit projet pour valider vos connaissances, mais dans certains cas, vous n’irez pas au bout de celui-ci en vous mettant dans l’idée que vous avez réussi à valider vos connaissances ou tout simplement parce que vous avez d’autres choses à apprendre.

Apprendre la programmation en équipe

Excellent complément de votre apprentissage solo et c’est ce qui se passe généralement en cursus scolaire. 

Vous devez toujours garder en tête que peu importe qui vous êtes et votre niveau en programmation (à moins que vous ne soyez un petit génie de l’informatique), vous ne serez jamais très bon dans tous les aspects de la programmation. Il y a forcément des choses sur lesquels vous allez avoir des difficultés dans votre apprentissage ou que vous n’arriverez pas assimiler. 

Apprendre en groupe et vous allez forcément apprendre quelque chose chez l’un d’entre eux. Car là où vous avez peut-être des difficultés sur certains aspects de la programmation, quelqu’un de votre groupe aura des facilités. Supposons que vous êtes très fort en « backend » mais que vous avez beaucoup de difficultés pour programmer en « fronton », vous pourrez certainement progresser avec quelqu’un de votre groupe qui est plutôt fort en« fronton ». 

C’est un gain de temps et d’énergie considérable. Vous allez pouvoir acquérir les connaissances de quelqu’un d’autre et surtout sous son approche à lui. Cela va vous permettre de vous inspirer de cette nouvelle approche pour pouvoir acquérir la vôtre. L’explication et l’acquisition de la connaissance se fera différemment qu’en solo par exemple avec un petit schéma sur un tableau, avec des explications verbales ou encore en vous montrant directement dans sa programmation comment cela se présente. Vous allez bénéficier d’une expérience qui a déjà fait ses preuves plutôt que de connaissances théoriques.

C’est beaucoup plus enrichissant et plus interactif. Si vous avez des questions dans l’acquisition de ses connaissances, vous pourrez les poser directement et obtenir directement votre réponse.

Un autre avantage type d’enrichissement des connaissances est les projets d’équipes. Dans un cadre scolaire, vous ferez très souvent des projets d’équipes par groupe de 2 ou 3 personnes. Comme le projet est cadré (ce qui est moins le cas lorsque l’on apprend en solo), la probabilité est plus grande pour que le projet aboutisse même si vous pensez avoir validé vos connaissances, car il y aura du challenge et vous serez plus consciencieux envers les membres de votre équipe. L’aboutissement d’un projet est tout aussi important que la programmation en elle-même. C’est une source de satisfaction personnelle et cela vous permet d’acquérir d’autres compétences comme la conduite de projets par exemple.

Apprendre en solo ou en équipe ?

Les 2 sont indispensables. Le point de démarrage est toujours d’apprendre en solo, car c’est vous l’élément déclencheur. Tandis que l’apprentissage en équipe vous permettra d’approfondir vos connaissances avec une autre approche et vous bénéficiez surtout d’une interaction humaine : vous vous posez une question sur quelques choses, vous avez un contact humain précieux pour vous répondre.

Programmer en solo dans le monde professionnel

Avant tout chose, sachez que j’ai connu les 2 expériences : travailler en étant le seul programmeur de l’entreprise et travailler avec une équipe de programmeur. Je vais vous délivrer mon expérience à ces 2 niveaux pour que vous compreniez bien ce que chaque cas de figure peut vous apporter.

J’ai commencé à programmer en solo dans mon entreprise, car j’étais le seul programmeur. Et comme je l’ai dit dans mon précédent article, c’était pour réaliser l’ERP de l’entreprise. Le challenge était au rendez-vous tant sur le projet global que sur les technologies à employer pour y arriver. Et je possédais à la sortie d’école un diplôme et de bonnes bases en PHP/MySQL ainsi qu’en HTML/CSS.

On m’a demandé de réaliser une application très interactive pour les utilisateurs avec beaucoup de JavaScript et de l’Ajax. Mais je n’en avais aucune idée de comment y parvenir, car je n’avais aucune connaissance en JavaScript et encore moins en Ajax.

Et quand vous êtes tout seul, c’est alors très compliqué à gérer. Imaginez : vous devez normalement vous renseigner sur ces technologies, acquérir la connaissance suffisante pour pouvoir les exploiter, valider vos connaissances en testant et puis mettre à profit tout ce que vous avez appris pour réaliser ce qu’on vous demande.

Malheureusement, ça ne se passe pas comme ça. Le facteur temps entre en jeu et vous devez sortir vos fonctionnalités pour « hier », surtout dans le monde de la PME. La case « valider ses connaissances en testant » devient directement mettre à profit ce que vous n’avez pas encore appris. Ce sont des enjeux professionnels et nous n’avons pas le choix que de s’y tenir. C’est une situation très déstabilisante et on pourrait être tellement dépassé par la situation qu’on ne manquerait pas de penser à abandonner.

Pour réussir, je n’ai pas eu d’autres choix que de m’investir corps et âme dans ce challenge en optimisant ma façon d’acquérir mes connaissances pour les utiliser rapidement. Le plus dur a été d’acquérir beaucoup de compétences en même temps sur un court laps de temps et cela ne s’applique pas uniquement sur les aspects techniques de la programmation. J’ai eu la chance d’être suivi et motivé par l’un de mes patrons qui était un ancien développeur. J’ai bénéficié de son expérience en matière de raisonnement et de conception logicielle pour PME comme la façon de voir et de considérer informatiquement tout ce qui est nécessaire comme un « objet ».

Vous retrouver dans ses mêmes conditions vous apportera des bénéfices utiles pour votre carrière de programmeur :

  • être pleinement autodidacte
  • être très confiant dans la résolution de n’importe lequel de vos problèmes par vous même
  • de pouvoir vous adapter rapidement à n’importe laquelle des situations

Un autre avantage de programmer en solo c’est que vous avez le contrôle à 100% de votre programmation. Vous décidez comment vous allez organiser votre projet, votre travail et le choix des outils à employer. Vous êtes donc le seul maître à bord et vous toucherez à chaque aspect d’une application, ce qui pour certaines personnes peut représenter un inconvénient, car il y a certainement des tâches que vous n’aimerez pas faire ou tout simplement que vous n’aurez pas envie de faire. Et malheureusement, vous n’aurez pas le choix si vous êtes seul. Pour ma part, je trouve cet aspect assez intéressant, car la programmation est beaucoup moins monotone et cela apporte une vraie variété au métier.

Enfin, vous devez prendre conscience que vous serez un développeur « Full-stack », un « touche à tout » en quelque sorte ! Cela veut dire que vous ne serez jamais très bon dans une partie applicative (« Back-end », « Front-end » ou base de données), mais vous serez moyennement bon dans l’ensemble de ces parties.

Programmer en équipe dans le monde professionnel

Depuis quelques années, je suis à la tête de la cellule de développement dans l’entreprise où je travaille. Nous pouvons très bien travailler chacun dans notre coin sur des projets comme en duo (voir trio). Malgré le cadre PME, nous tentons tout de même de travailler à plusieurs sur un projet afin qu’il n’y ait pas qu’une seule personne qui le connaisse, ce qui serait un point faible concernant le suivi et la vie du logiciel. 

Notre équipe est constituée de profil hétérogène bien que pour chacun d’entre nous nous sommes des profils dits « Full Stack ». Tout le monde maîtrise chaque partie applicative (« Back-end », « Front-end » ou base de données), mais bien entendu certains sont plus à l’aise en « Back-end » alors que d’autres le sont plus sur le « Front-end ». Chacun de nous sait faire la partie de l’autre et chacun excelle plus qu’un autre dans l’un de ces domaines : complémentaires et flexibles.

On bénéficie ainsi de la plus-value de chacun des collaborateurs grâce à leur expérience et leur savoir. C’est donc une excellente opportunité d’acquérir facilement et très rapidement de nouvelles connaissances pour enrichir ses compétences. Je délivre mon savoir continuellement jour après jour à chacun de mes collègues et ils font de même envers moi de façon totalement transparente.

Ce qui est très appréciable dans une équipe de développeurs c’est la façon de penser et l’approche à un problème donné qui est totalement différente d’une personne à une autre. Le fait qu’un problème peut être abordé de diverses façons différentes est quelque chose de très enrichissant et de très instructif. Et cela même si vous avez déjà une solide expérience.

Ce qui est sûr c’est que si vous intégrez une équipe de développeurs avec une méthodologie déjà bien en place alors vous obtiendrez plusieurs avantages. Si l’on se situe d’un point de vue d’un projet, ce sera la rapidité de réalisation de celui-ci. C’est indéniable : sur de très gros projets, vous serez toujours plus rapide à arriver au bout de celui-ci à plusieurs que si vous étiez en solo.

Au niveau du travail, vous bénéficiez d’une entraide non négligeable. Quand vous êtes en solo, vous ne pouvez compter que sur vous-même (et sur le web lorsque vous recherchez une solution à un problème). En équipe, c’est très différent, car vos collègues peuvent être à votre disposition pour vous aider à surmonter un problème, jusqu’à vous faire gagner énormément de temps si l’un d’eux a directement la solution et qu’il vous l’apporte sur un plateau. Car d’expérience, on reste souvent bloqué sur des problèmes très anodins et c’est l’une des causes principales de pertes de temps pour un développeur.

Le fait qu’une application soit développée en équipe plutôt qu’en solo assure une certaine pérennité à celle-ci. Un client sera beaucoup rassuré de voir que son application est gérée par plusieurs personnes au lieu d’une.

Mais sachez qu’il n’y a pas que des avantages à travailler en équipe. Si vous tombez dans une équipe qui est mal équilibrée et qu’il n’y a pas d’ambiance saine et collaborative alors l’expérience peut être décevante. Imaginez par exemple que vous êtes le nouveau de l’équipe avec une expérience de débutant et que vous êtes entouré de profil sénior, vous pourrez alors vite vous retrouvez à traiter de petites tâches que personne ne veut faire et vous deviendrez le larbin de services. C’est assez rare, mais cela peut arriver.

Il peut y avoir également des tensions quant aux dispatches des tâches sur l’ensemble des membres, séniors ou non. Certains peuvent être plus gourmands que d’autres sur la réalisation des tâches en se focalisant que sur les tâches qui peuvent leur apporter de la valeur en termes d’expérience.

En fait pour en tirer le meilleur bénéfice, vous devez être une équipe soudée, qui s’écoute mutuellement et qui est pour le partage équitable de l’ensemble des tâches à réaliser sur un projet

Que faut-il choisir ?

Cela dépend de chacun. Si je devais remonter le temps et choisir entre l’un ou l’autre, je ne saurais pas vraiment me décider. Même si je reste convaincu que travailler en équipe est plus enrichissant et permets de bénéficier de l’expérience de chacun des membres (vous hackez votre apprentissage), la programmation solo vous apportera d’autres compétences que vous ne pourrez pas obtenir en équipe (ou vous les obtiendrez avec beaucoup plus de temps). L’idéal selon moi serait de faire un mix des 2 si c’est possible. Vous pouvez très bien travailler sur des projets personnels (en solo donc) à côté de votre travail professionnel qui lui sera plutôt en équipe.

3 Commentaires

  1. mediavisium
  2. hugor

Laisser un Commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.