Suite au passage à l’improviste d’Abdel dans les bureaux de mon ancien employeur dans le cadre de son émission dédiée à la recherche d’emploi, TéléBruxelles a diffusé cette courte séquence consacrée au métier de développeur d’applications mobiles.
L’équipe de tournage a pris les développeurs en otage durant une journée chargée et il fut difficile de se concentrer avec des caméras sous le nez. Bien que la séquence soit consacrée aux développeurs, c’est un commercial qui est interviewé. Il montre des applications amusantes à Abdel mais on apprend finalement peu de choses sur le métier en dehors des stéréotypes habituellement véhiculés (“des geeks qui ne rigolent pas”). C’est pourquoi je vous propose d’apporter plus d’informations sur le sujet, exerçant moi-même ce métier.
Comme le dit Dimitri dans le reportage, un développeur d’applications est avant tout un informaticien. Mais informaticien est un terme trop générique qui désigne de nombreux métiers différents à ne pas confondre: administrateur réseau, ingénieur système, technicien de maintenance logicielle, assembleur de PC ou même encodeur de données. Pour être plus précis, le développeur d’applications est avant tout un analyste-programmeur. Son métier requiert une solide formation en programmation logicielle, avec un minimum de deux ou trois ans d’études. Avant de se lancer dans cette formation, il est toujours utile de faire un test d’une ou deux semaines de cours et d’exercices pratiques pour déterminer si on est fait(e) ou non pour ce métier. J’ai eu l’occasion de rencontrer des gens qui ne manquaient pas de motivation et de passion pour l’informatique mais n’avaient pas l’esprit taillé pour comprendre les concepts logiques de base de la programmation tels que le calcul booléen ou la récursivité. Si vous sentez que vous luttez contre votre mode de pensée, mieux vaut s’arrêter à temps que se forcer et finir par jeter l’éponge plus tard. D’autres qualités importantes pour ce métier sont la capacité à identifier la source d’un problème et la patience. Beaucoup de patience, surtout au début !
Il n’est pas rare de voir des formations accélérées de 6 mois ou 1 an promettant de faire de vous un développeur X ou Y sans aucune connaissance préalable mais ceci est loin d’être suffisant. Ce genre de formation vous permettra peut-être de devenir utilisateur passif d’un ou deux langages de programmation de haut niveau, qui représentent en quelque sorte la face visible de l’iceberg, mais la clé pour être vraiment compétent(e) dans ce métier est de connaître les rouages internes du fonctionnement des machines qui n’ont pas fondamentalement changé entre le PC de 1985 et le smartphone de 2015.
Avoir de bonnes connaissances générales et pas trop spécifiques en programmation et architecture logicielle est très important pour être en mesure de s’adapter aux nouvelles technologies qui changent à une vitesse folle, en particulier dans le domaine du mobile. Les systèmes d’exploitation de nos smartphones sont mis à jour chaque année et demandent aux développeurs un travail d’apprentissage ininterrompu. Je n’ai moi-même suivi aucun cours de technologies mobiles durant mes études. J’ai appris cela plus tard dans le cadre professionnel mais aussi en dehors. Être curieux/se et autodidacte est donc une qualité essentielle dans ce métier, surtout si votre employeur n’a pas prévu de vous accorder le temps et les moyens nécessaires pour vous mettre efficacement à jour chaque année. Quels que soient les langages de programmation pratiqués pendant vos études, ne vous attendez pas à arriver en terrain connu lorsque vous commencerez à étudier une nouvelle plate-forme mobile. En particulier, votre capacité à programmer en Java ne vous donnera qu’un avantage minime pour l’apprentissage d’Android; c’est un faux choix de facilité. Chaque plate-forme mobile moderne a ses avantages et ses inconvénients et il faut savoir rester ouvert(e) à toutes les technologies, surtout quand on manque d’expérience.
Par rapport à la programmation d’applications “traditionnelles” (pour serveurs ou PC de bureau), la programmation sur smartphones et tablettes exige plus de rigueur. Bien que ces appareils évoluent beaucoup, leurs ressources restent limitées et la fluidité de l’interface graphique est capitale. Une application qui reste figée sur un smartphone est encore plus frustrante pour l’utilisateur que sur PC, et le smartphone est le moins puissant des deux. Il ne faut pas non plus négliger les propriétaires d’appareils d’entrée de gamme. Optimiser la consommation d’énergie est également un défi intéressant, les applications mal conçues étant la cause numéro 1 de la décharge prématurée de nos précieuses batteries. Aimer l’optimisation fera certainement de vous un meilleur développeur mobile.
Le côté positif de ces évolutions incessantes dans le monde du mobile est qu’on ne s’ennuye pas à répéter continuellement un rituel mémorisé: on est sans cesse invité(e) à expérimenter et le métier est moins routinier qu’il n’y paraît. Les développeurs (de tous domaines) ne sont pas moins sociaux que la moyenne comme le véhiculent souvent les clichés. Par contre, ils doivent être capables de se concentrer intellectuellement pendant de longues périodes pour pouvoir exercer leur travail. Ils sont parfois obligés de s’isoler “dans leur bulle” pour pallier au stress, à un environnement trop bruyant ou à des interruptions trop fréquentes. Le télétravail est également une bonne option pour se mettre dans un état propice à la concentration, même si la proximité directe avec ses collègues permet de communiquer plus efficacement afin de résoudre ses problèmes.
Le développeur travaille seul ou en équipe. Il produit du code qui est quotidiennement sauvegardé et synchronisé avec ses collègues. Il travaille souvent avec un système de gestion des tâches et des bugs à corriger. Il est important de documenter correctement le code afin d’éviter toute surprise et faciliter la maintenance future. Le meilleur code est concis, bien découpé, et facilement compréhensible par tous et non uniquement par celui ou celle qui l’a écrit. À chaque fois qu’il termine une tâche, le développeur doit tester le résultat de son code avant de le soumettre. Dans le monde du mobile, il est nécessaire de tester les applications sur les différentes générations d’appareils et de systèmes d’exploitation que l’application supporte officiellement. Il faut aussi vérifier que l’affichage de celle-ci est adapté à toutes les tailles d’écran. Ceci vaut également pour les iPhones qui se déclinent aujourd’hui en 4 tailles d’écrans différentes alors qu’il n’y en avait qu’une par le passé.
Une application ne naît pas uniquement du seul travail des développeurs: ceux-ci sont aidés dans leur tâche par des chefs de projet, des infographistes, et plus rarement des ergonomes. Plus qu’un simple exécutant, le rôle du développeur est aussi de participer à l’élaboration du cahier des charges afin de valider techniquement les demandes du client, ainsi que d’adapter ces demandes pour prendre en compte les besoins des utilisateurs de l’application et les conventions de la plate-forme. Le développeur a donc souvent, directement ou via le chef de projet, un rôle de conseiller auprès du client car il est le plus à même de savoir à quoi va ressembler le produit fini. En d’autres termes, c’est lui l’expert et il doit être capable de communiquer son savoir, ne fût-ce que pour ne pas se retrouver dans une impasse face à des demandes non réalistes. La vidéo humoristique qui suit illustre ce principe par l’absurde mais vous donnera néanmoins une bonne idée de ce qu’un développeur peut ressentir lors de certaines réunions.
Après avoir lu tout cela, vous vous rendez vite compte que le travail du développeur n’est pas de tout repos. Il est le pilier central de tous les projets logiciels, a beaucoup de responsabilités et doit beaucoup se concentrer. Il est donc important qu’il soit traité à sa juste valeur, que son environnement de travail soit agréable, qu’il ait assez de congés pour être en mesure de “déconnecter” régulièrement et que son salaire soit adapté. Il est courant pour un développeur de changer souvent d’emploi, que ce soit pour varier les projets, accroître son expérience ou améliorer sa situation. Un bon développeur reste aujourd’hui une denrée rare.
Le métier de développeur est majoritairement pratiqué par des hommes, ce qui est dommage. C’est un métier scientifique qui n’a en soi rien de plus masculin qu’un autre. Il était d’ailleurs considéré comme un métier de femmes aux débuts de l’informatique avant que la tendance ne s’inverse dans les années 1980. À présent, des organisations telles que Women who Code ou Google avec l’initiative Made with Code tentent de rééquilibrer la balance via des campagnes d’information. La sensibilisation à l’informatique auprès des filles et garçons doit commencer dès le plus jeune âge, afin de combattre efficacement les préjugés. À cet égard, je félicite CoderDojo, un club d’informatique bénévole qui initie les jeunes dans le monde entier à la programmation, dont l’antenne belge majoritairement néerlandophone remporte un franc succès.
Comme pour la plupart des métiers, le plus important est d’être passionné(e). Il n’y a rien de plus satisfaisant que de voir son application prendre vie sur un smartphone. C’est en quelque sorte un travail de création, qui a donc une composante artistique. Cela vous tente et vous pensez avoir les qualités requises ? Lancez-vous ! Votre imagination est la seule limite.