Le parcours d'un développeur dans le cadre de la migration vers la plateforme Acumatica xRP
Note de la rédaction : Dans son article, Brian partage son point de vue unique sur son parcours pour devenir développeur Acumatica après avoir passé deux décennies en tant que programmeur « top-down ». Il offre une perspective intéressante ainsi que des conseils avisés à l’intention des autres développeurs issus du monde de la programmation « à l’ancienne » qui rejoignent la famille Acumatica, conseils qui devraient trouver un écho auprès de nombreux lecteurs de ce blog issus du monde des progiciels de gestion intégrée (ERP).

Le monde regorge de grands personnages… de grands musiciens, de grands dirigeants et, bien sûr, de grands développeurs. Quelle que soit la grandeur à laquelle vous aspirez dans la vie, personne ne naît « grand », mais tous ont un point commun : il faut bien commencer quelque part.
L'un de mes objectifs professionnels est de devenir un excellent développeur sur la plateforme Acumatica xRP. Bien que j'aie fait d'importants progrès, rien ne remplace l'expérience, et chaque jour est une nouvelle occasion d'apprendre. Fort de 20 ans d'expérience en programmation sur PROGRESS 4GL pour assurer la maintenance d'un système existant, mon passage à C# et à la plateforme Acumatica xRP a été ponctué de moments de frustration, de révélations et, oui, même d'excellence. Si vous venez de vous lancer et que vous poursuivez votre lecture pour découvrir mon parcours, j’espère que vous comprendrez que d’autres ont déjà été à votre place : savoir où trouver les meilleures ressources est essentiel, et vous POUVEZ réussir dans cette entreprise.
Les défis rencontrés lors de la transition
L'approche « top-down » n'est PAS la même chose que la programmation orientée objet… sauf quand c'est le cas
Pour comprendre mes difficultés en tant que développeur d’une certaine génération, il faut d’abord savoir que je n’ai pas grandi dans l’univers de la programmation orientée objet (POO). Mon univers était celui de la programmation descendante, où l’on commence en haut de la page et où l’on indique au programme exactement ce qu’il doit faire. Les compétences en programmation reposaient sur la maîtrise du langage et de la syntaxe, la compréhension des portées des transactions et des interfaces utilisateur relativement statiques. Lorsque je suis passé à C#, l’idée qu’une seule interaction puisse déclencher une validation et une mise à jour apparemment aléatoires avant même que l’utilisateur ait fini de remplir le formulaire m’a semblé être le CHAOS à l’état pur. Mais finalement, j’ai saisi un concept qui a changé le cours de ma transition vers la POO.
“Top-Down is NOT the same as Object-Oriented… except when it is.” What I mean here is that I finally realized that there is a structure in the chaos. Sure, an event may fire in the middle of your current code block, but there IS an order. By realizing that I can write a code block to execute “top-down” as I was accustomed: event handlers virtually exist as subroutines with an implied “if <condition> then…” within my code. Code within OOP is still “top-down” in a way, but with the ability for real-time interaction with the code to alter its behavior, thus enabling a more natural interaction with the end-user. This gave me a point of reference as a pathway towards enlightenment.
Apprendre dans un isolement quasi total
Lorsque mon employeur a décidé d’adopter l’ERP Acumatica, mon collègue s’est vu confier la gestion globale du projet et la configuration du système. Ayant passé près de 18 ans à faire évoluer notre système existant, j’ai été désigné comme nouveau développeur C# pour Acumatica. En équipe, nous avons découvert le volet applicatif du logiciel : je me suis concentré sur l’apprentissage du C# et de la plateforme Acumatica xRP, tandis que mon collègue s’est familiarisé avec les GI, les scénarios d’import/export, les événements métier, etc. Ainsi, nous avions tous deux l’application comme point de référence commun, mais nous étions chacun dans un isolement quasi total pour acquérir nos nouvelles compétences. Notre partenaire Acumatica nous a apporté un soutien considérable dès le début pour la planification et la mise en œuvre, mais je n’avais d’autre choix que de retrousser mes manches et de me mettre à étudier si je voulais apprendre à développer sur la plateforme Acumatica xRP. Je dois dire que, même si certaines ressources d’apprentissage étaient disponibles, cela a été une période à la fois particulièrement intimidante et passionnante dans ma carrière.
Essais et erreurs, et erreurs, et erreurs
On attribue à Thomas Edison cette citation : « Les résultats négatifs sont exactement ce que je recherche. Ils ont pour moi autant de valeur que les résultats positifs. Je ne pourrai jamais trouver ce qui fonctionne le mieux tant que je n’aurai pas trouvé ce qui ne fonctionne pas. » Cela résume bien mon parcours d’apprentissage, surtout au début. Je me souviens d’avoir appris suffisamment pour accomplir quelque chose, d’avoir éprouvé une grande joie face à cette réussite, puis de m’être enfoncé dans le désespoir en peinant à réitérer ce succès. Ayant passé la majeure partie de ma carrière à produire des résultats, parfois même tout en étant au téléphone avec la personne qui formulait la demande, apprendre dans un isolement quasi total m’emmenait sur des chemins qui me conduisaient inévitablement à une semaine d’essais et d’erreurs, d’erreurs, et encore d’erreurs. Je vous supplie de tirer les leçons de mon ignorance… Bien que cette approche vous enseigne des centaines de façons de ne pas faire les choses, il EXISTE une meilleure méthode. Il suffit de savoir où chercher. Heureusement pour vous, c’est justement ce qui va suivre… Continuez à lire !
Ressources trouvées
Ce n'est que le début
Si vous ne maîtrisez pas encore le C#, vous devez d'abord l'apprendre. Lorsque vous serez prêt à vous lancer, rendez-vous sur le site Web de Microsoft pour accéder à des ressources de formation gratuites.
Une fois que vous maîtrisez les bases de C#, j’ai constaté que j’apprenais plus vite en mettant en pratique ce que j’avais appris. Ne vous inquiétez pas si vous n’êtes pas encore un expert chevronné en C# : l’expérience et les échecs sont les meilleurs enseignants. Rendez-vous sur Acumatica Open University (http://openuni.acumatica.com/) pour commencer votre parcours. J’ai moi-même appris grâce à une série précédente de guides de formation et de vidéos disponibles sur Open University, mais j’ai commencé à consulter les nouveaux guides de formation qui y sont désormais proposés. La documentation mise à jour est incroyable, et même après deux ans de développement sur Acumatica, ces nouveaux supports m’apportent des informations inédites et extrêmement utiles.
La page « Intégration des nouveaux développeurs Acumatica » constitue une excellente ressource pour les nouveaux développeurs Acumatica. Elle propose un guide complet répertoriant toutes les ressources dont vous avez besoin, notamment des guides de démarrage rapide, de la documentation et des formations destinées aux développeurs.
Il faut tout un village
Une fois que vous aurez suivi les premières formations et consulté le Guide de démarrage rapide pour les développeurs, votre boîte à outils devrait commencer à se remplir de compétences qui vous permettront d’apporter des améliorations fonctionnelles significatives à Acumatica. Si nous devions simplement reproduire ce qui figure dans les guides de formation, nous serions parés ! Cependant, rien de ce que je fais ne semble jamais figurer dans les guides de formation sous la forme d’une instruction du type : « Brian, il te suffit de faire ça. » Comme il n’y avait pas d’autre développeur à qui poser des questions, j’avais besoin d’un accompagnement personnalisé, et je veux dire à un niveau que l’on ne peut pas se permettre d’acheter en heures d’assistance aux développeurs. Heureusement, il n’est pas nécessaire d’avoir les moyens pour obtenir de l’aide sur la plupart des questions de développement.
Pour éviter l'immense frustration que j'ai ressentie au début, l'essentiel est de ne pas hésiter à solliciter l'aide de la communauté dès le départ. Rendez-vous sur Stack Overflow et recherchez des mots-clés liés à votre problème. Si vous commencez votre recherche par [Acumatica], les résultats s'afficheront parmi les questions portant le tag Acumatica. Certains des excellents développeurs que j'ai appris à connaître au cours des deux dernières années ont d'abord été des contacts sur Stack Overflow. L'entreprise Acumatica et le programme Acumatica Developer MVP veillent à ce que toutes les questions portant le tag Acumatica soient vues. Obtenir une bonne réponse dépend surtout de la façon dont vous formulez votre question, mais c’est un sujet pour un autre article. Disons simplement qu’il faut inclure autant d’informations que possible, ainsi que des exemples de code, et nous en resterons là pour l’instant.
Ce n'est pas ce que tu sais. C'est QUI tu connais !
Alors que je terminais mes six premiers mois de développement, je rencontrais encore des difficultés constantes. Ayant enfin adopté StackOverflow comme source d’aide privilégiée, la communauté était bien plus restreinte qu’aujourd’hui… voire qu’il y a seulement 18 mois. Notre partenaire Acumatica m’a mis en relation avec Mark Franks, l’évangéliste de la plateforme chez Acumatica, et tous deux m’ont dit : « Va au Summit fin janvier et participe au hackathon. » Je me souviens m’être dit : « Un hackathon, hein ? Je n’ai pas encore assez de compétences pour faire quoi que ce soit ! » J’ai expliqué à Mark que j’apprenais dans un isolement quasi total et que j’avais vraiment besoin d’un moyen de mieux m’intégrer. Il a insisté : « Tu dois absolument aller au hackathon. Nous voulons des personnes issues de tous les domaines au sein des équipes, et tu y noueras des contacts qui pourront t’aider à apprendre. » – paraphrasé de mémoire (Note de la rédaction : Brian a une bonne mémoire.)
J'ai transmis ces informations à mon patron, qui m'a toujours soutenu. Sans hésiter, il m'a répondu : « Inscris-toi ! » Je vais être très clair. RIEN n’a autant accéléré mon apprentissage qu’un week-end passé à mon premier hackathon Acumatica. Ni le Summit. Ni la formation que j’ai suivie au Summit. RIEN. Le MVP de notre équipe, Joshua van Hoesen, a eu la gentillesse de répondre à mes questions et m’a apporté des éclaircissements sur des points que je ne savais même pas poser. En rentrant chez moi, je savais comment déboguer mon code avec le débogueur intégré à Visual Studio, même si mon environnement de développement se trouvait sur un serveur distant. Je n’essaie pas de vous convaincre de dépenser de l’argent pour participer au Summit et au Hackathon. Je vous dis simplement que ce tournant a transformé mon expérience, me faisant passer du statut d’« apprenti en isolement virtuel » à celui de « développeur à distance autonome ».
L'aventure continue
Ce sont les enseignants qui font les meilleurs élèves
Il y a plusieurs années, j'ai constaté que le groupe de discussion PROGRESS (PEG) avait accéléré mon apprentissage de manière exponentielle lorsque j'ai commencé à répondre aux questions posées par d'autres. Pourquoi ? Tout simplement parce que les enseignants sont les meilleurs élèves. La recherche et la diversité qui dépassent le cadre du quotidien ont la capacité intrinsèque d'enseigner davantage à celui qui répond aux questions qu'à celui qui cherche désespérément la solution qui résoudra son problème.
J'espérais revivre cette expérience d'il y a si longtemps, et le soutien de la communauté sur StackOverflow prouve que peu de choses ont changé en 20 ans. Lorsque je pose une question, j'ai besoin d'une réponse, mais je suis peu en mesure, à ce moment-là, d'aller au-delà de la simple résolution du problème qui ne fonctionne pas. Partager mes connaissances m’oblige à réfléchir au contenu de la question, à ce qui, selon moi, pourrait y manquer, à la manière dont je pourrais atteindre l’objectif, et à la meilleure façon de formuler ma réponse pour que la personne qui pose la question puisse la comprendre. Mes réponses sont-elles toujours les meilleures ? Bien sûr que non ! Je ne suis là que depuis deux ans. Mais la plupart du temps, elles aident. Les développeurs ont souvent juste besoin d’un petit coup de pouce dans la bonne direction, et nous pouvons tous répondre à une question de temps en temps.
Prenez de bonnes notes
En rentrant du dernier Summit, j’ai ressenti un profond désir de rejoindre des personnes comme Sergey Marenich et Yuriy Zaletskyy en créant un blog destiné aux développeurs. J’utilisais déjà StackOverflow pour consigner mes difficultés (à travers les questions que je posais) et j’ai réalisé que ces leçons apprises pourraient un jour aider de nouveaux développeurs. C’est ainsi qu’Acumatica.dev a vu le jour. Le principal enseignement à retenir est le suivant : quelle que soit la méthode qui vous aide le mieux à apprendre, prenez des notes. Que ce soit dans un blog, un cahier ou en documentant vos questions et vos résultats dans des publications sur Stack Overflow, trouver un moyen de revenir sur les leçons que vous avez apprises permet de consolider vos acquis. Tout aussi important, cela permet de partager cet apprentissage avec les autres afin que nous puissions tous, à terme, devenir d'excellents développeurs.
Je suis juste là pour « hacker » (hum, hum) – Hackathon, 2e édition
Fin janvier, j’ai eu la chance de pouvoir y retourner pour mon deuxième hackathon (ah oui, et aussi pour le Sommet qui a suivi). Une fois de plus, ce hackathon a été le moment fort de mon année. Si les contacts que j’avais noués lors de ma première année m’avaient aidé tout au long de l’année, j’ai pu les revoir cette année, rencontrer d’autres développeurs talentueux et même contribuer activement au projet de notre équipe. Même si j’ai beaucoup apprécié le Sommet et la session de formation consacrée aux applications cette année, le Hackathon reste pour moi l’événement phare de l’année. Le MVP de notre équipe, Fernando Amadoz, m’a aidé à dépasser mes limites habituelles en matière de développement et à élargir ma vision du monde du développement Acumatica.
Mon parcours ne fait que commencer, mais j’ai déjà parcouru un peu plus de chemin que certains d’entre vous… même si ce n’est qu’un tout petit peu. J’espère sincèrement que le récit de mon parcours, de mes difficultés et de mon chemin vers l’excellence vous encouragera, voire vous inspirera, mais surtout qu’il vous rapprochera un peu plus de ce que vous pouvez devenir : l’excellent développeur que nous savons tous que vous pouvez être.