Nous avons récemment eu l’occasion de nous entretenir avec Majid Babaei, un de nos nouveaux chargés d’enseignement dans le domaine de la technologie et de l’innovation spécialisé en essai et débogage de logiciels. Originaire de Téhéran en Iran, Majid a fait un doctorat en génie logiciel à l’université Queen’s. Avant de se joindre à l’ÉÉP, il poursuivait un stage postdoctoral dans le même domaine à l’Université Concordia.
Pouvez-vous nous dire d’où vient votre intérêt pour l’informatique et le génie logiciel?
Tout a commencé par un incident plutôt drôle malgré son aspect tragique. À 13 ans, lorsque j’ai reçu mon premier ordinateur, la première chose que j’ai faite, c’est de supprimer d’importants dossiers de mon père. J’ai tout de suite su que je devais réparer mon erreur avant que quelqu’un ne s’en rende compte! J’ai cherché une solution et je transportais même le moniteur partout avec moi (je pensais que tout y était stocké). J’ai alors remarqué qu’il y avait un responsable des bonnes et des mauvaises choses qui arrivent à un ordinateur : un logiciel. J’ai compris que les logiciels se composent de fichiers qui peuvent seulement être lus par un ordinateur. C’était ma première compréhension rudimentaire d’un logiciel et de son fonctionnement. Mon voisin Hassan et moi avons commencé à jouer avec toutes les fonctions de l’ordinateur, comme ouvrir les fichiers, les modifier et même les supprimer. C’était ma première expérience avec le génie logiciel, ce que l’on appelle aujourd’hui l’inspection logicielle et la réingénierie logicielle.
Vous avez occupĂ© plusieurs postes de recherche en informatique, dont un ici, Ă łÉČËVRĘÓƵ. Quels sont les domaines que vous trouviez les plus intĂ©ressants?
Les outils et techniques dont les praticiennes et praticiens se servent pour déboguer et essayer les systèmes logiciels m’ont toujours fasciné. Pendant mes études doctorales, j’utilisais une technique appelée ingénierie dirigée par les modèles (IDM) qui nous permettait de voir un système logiciel vaste et complexe de façon encore plus abstraite. Pour l’un de mes projets, nous avons évalué l’efficacité de l’approche IDM en matière d’essais et de débogage de systèmes répartis. Ce n’est pas du gâteau, en particulier si votre logiciel est fait de plusieurs composantes qui fonctionnent grâce à différentes machines.
Pour y remédier, nous avons pris une approche complètement différente. Au lieu d’utiliser les techniques IDM comme outil de développement secondaire pour les développeur.se.s, nous en faisons l’outil principal. Ainsi, nous pouvons dans bien des cas laisser tomber les estampilles temporelles tout en améliorant la performance et en augmentant l’efficacité du débogage et de l’essai.
Notre article a été publié à MODELS 2022 et a gagné un prix d’excellence. Notre équipe a été invitée à présenter son travail pour la deuxième année consécutive à l’ICSE 2023 à Melbourne en Australie.
Vous avez étudié dans plusieurs endroits à dans le monde, dont l’Iran, l’Allemagne et le Canada. Que pouvez-vous nous dire sur le potentiel unificateur de la technologie?
Comme l’a déclaré Rutger Bregman dans son merveilleux livre Humanité : une histoire optimiste, « pendant la majeure partie de notre histoire, nous ne collectionnions pas les objets, mais les amitiés. Pour les humains préhistoriques, rencontrer de nouvelles personnes permettait d’apprendre continuellement et d’ainsi devenir plus intelligents [que nos ancêtres du Néandertal] ». Aujourd’hui, nous sommes en mesure de nouer des amitiés au-delà de notre voisinage immédiat et des frontières, grâce à la technologie moderne.
Je suis né à Téhéran, la capitale iranienne. J’ai ensuite déménagé à Stuttgart, une ville à l’ouest de l’Allemagne, où j’ai fait ma maîtrise et travaillé comme développeur de logiciel chez Bosch Engineering Group (BEG). Malgré les différences culturelles, historiques et idéologiques, nous parlions un langage technique commun, ce qui nous a permis de demeurer productifs tout en apprenant les valeurs de la nouvelle société. Plus tard, lorsque je faisais mon doctorat au Canada, j’ai encore mieux compris cette société. En tant qu’êtres humains, nous avons tendance à fréquenter les gens avec qui nous partageons des valeurs communes. Avec les nouvelles technologies, en particulier les réseaux sociaux, nous pouvons développer des relations avec des gens que nous ne connaissons pas. Cela pose évidemment certains problèmes qui doivent être abordés convenablement, mais le pouvoir qui vient avec la constitution d’un réseau aussi vaste est inévitable.
Aujourd’hui, nous avons accès à une gamme sans précédent de technologies non raciales, apolitiques et agenrées qui nous ouvrent aux possibilités de développer de meilleures relations, de communiquer plus efficacement et de participer à des projets internationaux.
Vous êtes en collaboration active avec des entreprises de technologie, dont certaines basées à Toronto et Montréal. En quoi la collaboration avec l’industrie est-elle importante et utile pour nous apprenants.e.s?
L’expérience concrète que nous souhaitons obtenir en collaborant avec une entreprise ne nous sera pas utile si nous n’acquérons pas l’esprit de croissance. Cela nous permet de tirer le maximum de la collaboration, ce qui est crucial pour développer :
- la pensée critique : il peut être tentant de suivre les instructions de la personne qui dirige le projet à la lettre, mais en apprenant à nous exprimer lors des rencontres de groupe, nous apprenons tranquillement à jouer un rôle important qui met en lumière des aspects que nous n’aurions pas remarqués autrement.
- la résolution de problème : la capacité à résoudre chaque jour des problèmes techniques auxquels personne ne s’attend à ce que l’on trouve de solution (en particulier chez les jeunes entreprises) et, en tant que développeur.se.s en herbe, arriver immédiatement à la meilleure solution.
- La gestion du temps : passer trop de temps sur une tâche peu importante n’est pas profitable pour les entreprises. Certaines techniques, comme la matrice d’Eisenhower, sont couramment utilisées pour la gestion du temps des projets agile. Une bonne gestion du temps permet une meilleure productivité.
Quel est l’avenir de la technologie et de l’innovation selon vous et comment pouvez-vous préparer vos étudiant.e.s à ce qui s’en vient?
La technologie et l’innovation, en particulier en génie logiciel, deviennent de plus en plus automatisées, et seront peut-être même complètement autonomes dans un avenir pas si lointain. Comme David Epstein le dit dans son livre Range : le règne des généralistes : pourquoi ils triomphent dans un monde de spécialistes : « plus un problème est limité et répétitif, plus il est probable qu’il soit automatisé. » Les grandes entreprises de la technologie demanderont des spécialistes du génie d’appliquer le savoir conceptuel d’un domaine à un domaine complètement nouveau. Il est donc de plus en plus essentiel de développer les aptitudes de raisonnement conceptuel et inductif des membres du corps étudiant de l’ÉÉP lorsque l’on enseigne à ceux-ci. Nous avons déjà commencé à revamper les programmes de premier cycle pour nous assurer de satisfaire aux exigences de cours et de programmes.
Qu’espĂ©rez-vous accomplir en tant que chargĂ© d’enseignement Ă l’École d’éducation permanente de łÉČËVRĘÓƵ?
En me joignant à l’équipe de l’ÉÉP et en apprenant à connaître son public et sa culture, je me suis engagé à travailler sur trois volets de l’enseignement et de la recherche, ce qui nous aide (moi et mes étudiant.e.s) à mieux faire connaître les technologies émergentes, les sciences humaines et le développement durable. Nous espérons entre autres apporter des contributions positives et significatives sur les plans suivants :
- L’utilisation de perspectives de processus d’entreprise en conception d’application d’Internet des objets (IdO) : amener plus loin les langages de modélisation des processus d’affaires comme le BPMN pour faciliter le développement des applications IdO.
- La collaboration humain-IA : travailler sur des méthodes qui tiennent compte des caractéristiques uniques des humains pour résoudre les difficultés à former des équipes (de développement logiciel) composées d’agents humains et d’IA.
- Le développement durable en génie logiciel : aspirer à concevoir, à construire, à déployer et à maintenir des applications durables.
- L’équité, la diversité et l’inclusion (EDI) en génie logiciel : viser à proposer des méthodes qui permettent aux personnes et entreprises d’appliquer les principes et pratiques exemplaires en EDI tout au long du cycle de vie du développement.