Trouver un article
Thèmes populaires
Les compétences techniques restent nécessaires pour exercer le métier de développeur, mais elles ne sont plus suffisantes pour faire carrière.
Les développeurs ont beau être fortement sollicités par les recruteurs, ils ne peuvent pas se reposer sur leurs lauriers. Les technologies évoluent aussi vite que les méthodes en entreprise : pour améliorer l’efficience de leurs actions, ils doivent se former en continu. Afin de dresser le panorama des compétences qui font la différence, nous avons rencontré Sandra Hurteaux (studio Kaeness), ainsi que Christophe Ollivier, Marc Boussoulade et Sami Radi (VirtuoWorks). En parallèle de leurs activités, ils forment des étudiants au sein d’IFOCOP dans le cadre du cursus Développeur d’applications mobiles et web.
“Lorsque Tim Berners Lee invente le World Wide Web en 1989, il le fait reposer sur 3 piliers, rappelle Sami Radi. Un logiciel client (le navigateur web), un logiciel serveur (le serveur web) et un protocole de communication pour les réseaux informatiques : le HTTP (HyperText Transfer Protocol). Tout l’internet, tel que nous le connaissons aujourd’hui, est bâti sur ces fondations. Toutes les technologies de développement pour le web actuel sont bâties sur cette infrastructure. Fondamentalement, un développeur web doit donc comprendre les interactions entre les logiciels clients (les navigateurs Web) et les logiciels serveurs pour pouvoir construire le web de demain sur des bases solides.”
Pour les développeurs, cette compréhension globale du fonctionnement des services web constitue une base essentielle, qu’ils souhaitent se spécialiser dans les technologies back-end, front-end ou devenir développeur full stack. Ensuite, la maîtrise du développement web repose sur l’apprentissage de nombreuses technologies : HTML, CSS, JavaScript, jQuery, PHP, MySQL, Angular, React… “Impossible de faire l’impasse sur les technologies HTML et CSS”, rappelle Sandra Hurteaux, même pour les développeurs back-end, “ne serait-ce que pour avoir un langage commun avec les intégrateurs”. Les développeurs front-end se tourneront ensuite vers le JavaScript et jQuery et vers les différents frameworks comme Bootstrap. “Il est essentiel de comprendre les possibilités d’animations CSS3 pour ne pas faire en JS ce qu’on peut faire en CSS, et réserver l’usage du JS aux interventions sur le DOM”. Christophe Ollivier et Marc Boussoulade citent également Angular et React, “des frameworks écrits en JavaScript et plébiscités pour leur capacité à réaliser des applications web riches”.
Pour interagir avec des bases de données, le PHP, MySQL voire Symfony et l’exécution de JavaScript via NodeJS sont des briques nécessaires. On peut ensuite se spécialiser dans le développement de sites basés sur des systèmes de gestion de contenus (CMS), qu’ils soient propriétaires ou opensource. WordPress n’est pas le CMS N°1 par hasard, avec 33% de parts de marché : “il offre une solution clef en main plus rapide à déployer, ce qui n’exclut pas la réalisation de solutions spécifiques adaptées aux besoins du client” selon Christophe Ollivier. “Sa richesse fonctionnelle et l’ouverture native de son API REST en font un fournisseur de données privilégié, tout comme Drupal ; des données qui seront ensuite consommées par les frameworks Ionic, React Native…”
Quelles que soient les technologies maîtrisées par les développeurs, ceux-ci doivent appréhender des notions d’algorithmique. Selon Sami Radi, “bien que les fondements théoriques de l’algorithmique soient mathématiques, l’algorithmique appliquée à la programmation est surtout l’art de savoir découper un problème en opérations élémentaires tout en ne perdant pas de vue l’objectif final du programme. Nous appliquons à notre vie quotidienne des dizaines d’algorithmes chaque jour sans nous en rendre compte. Lorsqu’on s’habille le matin, on enfile chaque vêtement dans un ordre particulier pour arriver à la tenue de notre choix. Ce qu’on appelle des rituels de la vie quotidienne sont ce que les développeurs de programmes appellent des algorithmes. Devenir développeur, c’est apprendre à faire consciemment ce que nous faisons tous intuitivement.”
Si les savoir-faire techniques sont nécessaires, ils ne sont plus suffisants. Cette évolution des compétences requises par les recruteurs est due à la structuration des équipes de développement. Les membres des équipes sont de plus en plus spécialisés. Ils sont donc amenés à davantage communiquer pour comprendre et se faire comprendre de leurs collègues, qu’ils soient développeurs back-end, front-end ou full stack, designers, spécialistes de la data ou de la gestion de projet. Cette communication est essentielle à la performance des équipes. Sandra Hurteaux cite le cas d’un product owner qui présente un projet à un client : “si les maquettes ont été réalisées par un designer et que les développeurs n’ont pas été concertés, il se peut que le projet soit irréalisable ou très coûteux”. Quelles que soient les méthodologies appliquées, une personne chargée du respect des process pourra favoriser le bon fonctionnement des équipes (un scrum master par exemple), mais chaque membre se doit d’être sensibilisé à l’importance de la communication.
La connaissance des méthodes d’organisation fait partie de ces nouvelles compétences attendues par les recruteurs dans les fonctions informatiques. Pour Marc Boussoulade, “les méthodes agiles et le cadre méthodologique Scrum maximisent les chances de réaliser des projets en adéquation avec les besoins exprimés et permettent aux développeurs de faire comprendre aux autres parties prenantes le sens et les enjeux de leur travail”. Les valeurs et les principes introduits par le manifeste agile, tout comme les rôles et les rituels du quotidien, facilitent la communication entre toutes les parties prenantes, au sein des teams de développement et entre ces équipes et leurs clients. La connaissance et le bon usage de ces méthodes impliquent l’acquisition de nouvelles compétences, désormais requises pour s’intégrer dans les services techniques.
Au-delà des capacités de communication et de la connaissance des méthodes, les développeurs doivent “cultiver une curiosité d’esprit” selon Christophe Ollivier. “Cela passe par la volonté de ne pas reproduire constamment ce qui a déjà fonctionné, mais aussi le désir de s’informer. Les langages informatiques sont régulièrement mis à jour, un développeur doit prendre le temps de connaître ces nouveautés. Au-delà de cette veille nécessaire, il est important de se former. Cela passe par une familiarité avec la documentation, mais aussi la participation à divers rassemblements (meetups, conférences…)”. Là encore, on notera l’importance de la communication entre les pairs pour monter en compétences. Sandra Hurteaux participe ainsi régulièrement à des événements sur l’UX et le SEO, et échange sur Slack avec d’autres experts sur l’évolution des technos ou les possibilités offertes par tel ou tel CMS. “Être développeur, ce n’est pas être planqué dans un garage comme le laissent parfois penser les séries américaines : être développeur, c’est faire partie d’une communauté tournée vers l’échange et résoudre des énigmes grâce aux possibilités offertes par l’usage conjoint des technologies”.
C’est marrant, mais étant développeur, je trouve cet article très creux, et ne racontant rien de bien vrai… À voir ce qu’il est dit (et donc ce que les gens interviewés ont dit):
> « Impossible de faire l’impasse sur les technologies HTML et CSS”: Bizarre, dans ma boite, les développeurs Back-end ne connaissent rien (ou presque) de l’HTML et du CSS et pourtant cela fonctionne très bien…
> « Pour interagir avec des bases de données, le PHP, MySQL voire Symfony et l’exécution de JavaScript via NodeJS sont des briques nécessaires. »: Donc Symfony semble être primordiale pour faire du PHP … Encore une fois, dans mon entreprise, pas de Framework (quelque soit la techno) et on est bien plus efficace et l’application est bien plus rapide, robuste et sécurisé qu’en utilisant un Framework… Par ailleurs, pourquoi uniquement Symfony et NodeJS ? Pourquoi pas Laravel ou même encore Zend ? Et puis, pourquoi ne parler que de PHP et Javascript ? Que fait-on de Python ? de Ruby ? De Go ? De Rust ? De ELM ? De Java ? etc… Il n’y a pas que le PHP et le Javascript pour faire du web…
Enfin, dernier point, en ce qui concerne les méthodes de travail, dans l’ensemble je suis d’accord avec vous, sauf que le point du « Scrum » ! Tous les développeurs que je connais (moi y compris), ont horreur de Scrum ! Le scrum alourdis les process, et un Scrumban est dans la majorité des cas bien plus utile et efficace !
Il est difficile pour certains de tenir une veille importante. Tous les développeurs ne veulent pas forcément penser boulot après le travail, et préfère par exemple être avec leur famille, et ne pas participer à des Meetups le soir après le travail.
Ce n’est pas mon cas, mais j’en connais un et c’est compréhensible. La question est : est-ce que les entreprises sont prêtes à ménager leurs horaires pour une veille régulière ou par exemple de la R&D?
Merci pour l’article,
Je reviens sur les remarques des commentaires ci-dessus. Je ne comprends pas comment il est possible d’avoir une application plus rapide / sécure from scratch qu’avec un framework. Ceux mentionnés sont justement faits et étudiés pour avoir une meilleure vitesse de production, des sécurités améliorées et un système plus robuste.
Alors dire qu’une application est plus sécurisée qu’avec un framework j’ai du mal à voir comment cela peut être réellement jugé.
Pareil pour le scrum. Ca alourdi souvent le processus mais les grosses boites l’utilise souvent car ça permet, in fine, un développement plus rapide et efficace.
Votre adresse email ne sera pas publiée.


En cliquant sur “S’inscrire”, vous acceptez les CGU ainsi que notre politique de confidentialité décrivant la finalité des traitements de vos données personnelles.
En cliquant sur “S’inscrire”, vous acceptez les CGU ainsi que notre politique de confidentialité décrivant la finalité des traitements de vos données personnelles.

source

Catégorisé:

Étiqueté dans :