Tu PEUX apprendre de nouveaux tours à un vieux chien

Brian Stevens | 9 juillet 2022

Le parcours d'un développeur lors de la transition vers la plateforme Acumatica xRP

Note de la rédaction : Dans son article, Brian partage son expérience unique de développeur Acumatica après vingt ans de programmation traditionnelle. Il offre un point de vue intéressant et de précieux conseils aux développeurs qui se joignent à la famille Acumatica, issus du monde de la programmation classique. Ces conseils devraient résonner auprès de nombreux lecteurs de ce blogue, spécialistes des ERP.

Tu PEUX apprendre de nouveaux tours à un vieux chien

Le monde est rempli de personnalités exceptionnelles : de grands musiciens, de grands leaders et, bien sûr, de grands développeurs. Quel que soit l’objectif que vous voulez atteindre dans la vie, personne ne naît exceptionnel , mais tous ont un point en commun : il faut bien commencer quelque part.

Un de mes objectifs professionnels est de devenir un développeur de haut niveau sur la plateforme Acumatica xRP. Bien que j'aie fait des progrès significatifs, rien ne remplace l'expérience, et chaque jour est une nouvelle occasion d'apprendre. Après 20 ans de programmation en PROGRESS 4GL pour la maintenance d'un système existant, la transition vers C# et la plateforme Acumatica xRP a été ponctuée de moments de frustration, d'illumination et, oui, même de réussite. Si vous débutez et que vous poursuivez votre lecture pour découvrir mon parcours, j'espère que vous comprendrez que d'autres sont passés par là. Savoir où trouver les meilleures ressources est essentiel et je suis convaincu que vous pouvez réussir dans cette aventure.

Défis rencontrés lors de la transition

L'approche descendante n'est PAS la même chose que l'approche orientée objet… sauf quand elle l'est.

Pour comprendre mes difficultés en tant que développeur plus âgé, il faut d'abord savoir que je n'ai pas grandi dans le monde de la programmation orientée objet (POO). Mon univers était celui de la programmation descendante : on part du haut de la page et on indique précisément au programme ce qu'il doit faire. Mes compétences en programmation reposaient sur la maîtrise du langage et de sa syntaxe, la compréhension des portées transactionnelles et des interfaces utilisateur relativement statiques. Lorsque je suis passé au C#, l'idée qu'une simple 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, me semblait totalement chaotique. Mais finalement, j'ai saisi un concept qui a transformé 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 en isolement virtuel

Suite à la décision de mon employeur d'adopter l'ERP Acumatica, mon collègue a été chargé de la gestion du projet et de la configuration du système. Après près de 18 ans d'amélioration de notre système existant, j'ai été nommé développeur C# pour Acumatica. En équipe, on a appris les aspects applicatifs du logiciel. Je me suis concentré sur l'apprentissage du C# et de la plateforme Acumatica xRP, tandis que mon collègue se familiarisait avec les flux de trésorerie , les scénarios d'import/export , événements d'affaires , etc. Par conséquent, nous avions tous les deux l'application comme référence commune, mais nous étions pratiquement isolés l'un de l'autre 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 me retrousser les manches et de commencer à étudier si je voulais apprendre à développer sur la plateforme Acumatica xRP. Je dois dire que, malgré la présence de quelques ressources d'apprentissage, cette période a été à la fois particulièrement angoissante et stimulante dans ma carrière.

Essais et erreurs, erreurs et erreurs

On attribue à Thomas Edison cette citation : « Les résultats négatifs sont exactement ce que je recherche. Ils sont tout aussi précieux à mes yeux que les résultats positifs. Je peux seulement trouver la solution optimale après avoir trouvé celles qui ne fonctionnent pas. » Ça résume parfaitement mon expérience d'apprentissage, surtout à mes débuts. Je me souviens d'avoir acquis les bases nécessaires pour accomplir une tâche, d'avoir ressenti une immense joie face à la réussite, puis d'avoir sombré dans le désespoir en luttant pour reproduire ce succès. Ayant passé la majeure partie de ma carrière à produire des résultats, parfois même au téléphone avec le client, apprendre dans un quasi-isolement m'entraînait inévitablement sur des chemins se résumant à une semaine d'essais et d'erreurs, encore et toujours. Je vous en prie, tirez les leçons de mon ignorance… Si cette approche vous apprend des centaines de façons de ne pas procéder, il existe bel et bien une meilleure solution. Il suffit de savoir où chercher. Et justement, la suite… Poursuivez votre lecture !

Ressources trouvées

On ne fait que commencer.

Si vous ne connaissez pas encore le C#, vous devez commencer par l'apprendre. Lorsque vous serez prêt à commencer, rendez-vous sur le site Web de Microsoft pour accéder à des ressources de formation gratuites.

Une fois les bases du C# acquises, j'ai constaté que j'apprends plus vite en pratiquant. Ne vous en faites pas si vous n'êtes pas un expert en C# : l'expérience, et surtout l'apprentissage par l'erreur, est la meilleure des écoles. Rendez-vous sur Acumatica Open University ( http://openuni.acumatica.com/ ) pour commencer votre apprentissage. J'ai moi-même suivi d'anciens tutoriels et des vidéos sur Open University, mais je suis présentement en train de consulter les nouveaux tutoriels. La documentation mise à jour est remarquable et, même après deux ans de développement d'Acumatica, les nouveaux contenus apportent des informations inédites et très utiles.

La page « Intégration des nouveaux développeurs Acumatica » constitue une ressource précieuse pour les nouveaux développeurs Acumatica. Elle fournit une feuille de route complète vers toutes les ressources nécessaires, notamment des guides de démarrage rapide, de la documentation et des formations pour les développeurs.

Il faut tout un village

Une fois les premiers modules de formation terminés et le Guide de démarrage rapide pour développeurs suivi, vous devriez acquérir les compétences nécessaires pour apporter des améliorations fonctionnelles significatives à Acumatica. Si seulement il suffisait de reproduire le contenu des guides de formation, tout serait parfait ! Or, rien dans ces guides ne semble indiquer clairement : « Brian, il te suffit de faire ceci. Sans autre développeur à disposition, j’avais besoin d’une assistance personnalisée, et je parle d’un accompagnement complet, impossible à financer par des heures de soutien technique. Heureusement, il n’est pas nécessaire d’avoir un budget conséquent pour obtenir de l’aide sur la plupart des questions techniques.

Pour éviter l'immense frustration que j'ai rencontrée à mes débuts, il est essentiel de demander l'aide rapidement de la communauté . 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 afficheront les questions posées avec le tag Acumatica . Certains des excellents développeurs que j'ai rencontrés au cours des deux dernières années étaient d'ailleurs mes premiers contacts sur Stack Overflow. Acumatica, en tant qu'entreprise, et son programme Acumatica Developer MVP s'assurent que toutes les questions étiquetées Acumatica sont vues. Obtenir une bonne réponse dépend surtout de la clarté de votre question, mais ce sera le sujet d'un autre article. Pour l'instant, contentez-vous d'inclure un maximum d'informations et d'exemples de code .

Ce n'est pas ce que vous savez qui compte, c'est QUI vous connaissez !

Au terme de mes six premiers mois de développement, je rencontrais encore bien des difficultés. Ayant finalement adopté Stack Overflow comme principale source d'aide, la communauté était bien plus petite qu'aujourd'hui… même il y a seulement 18 mois. Notre partenaire Acumatica m'a mis en contact avec Mark Franks, responsable de la promotion de la plateforme chez Acumatica, et tous deux m'ont conseillé : « Va au Summit fin janvier et participe au hackathon . « Je me rappelle avoir pensé : « Un hackathon ? Je n'ai pas encore les compétences nécessaires ! » J'ai expliqué à Mark que j'apprenais quasiment isolé et que j'avais vraiment besoin de m'intégrer. Il a insisté : « Tu dois absolument aller au hackathon. Nous recherchons des personnes de tous les horizons dans les équipes, et tu te feras des contacts qui pourront t'aider à progresser. » Paraphrasé de mémoire (Note de l'éditeur : Brian a une excellente mémoire.)

J'ai partagé l'information avec mon chef, qui m'a toujours soutenu. Sans hésiter, il m'a dit : « Inscris-toi ! » Je tiens à être clair : RIEN n'a autant accéléré mon apprentissage qu'une fin de semaine à mon premier Hackathon Acumatica. Ni le Summit. Ni la formation que j'y ai suivie. RIEN . Joshua van Hoesen , le MVP de notre équipe, a eu la gentillesse de répondre à toutes mes questions et m'a apporté un éclairage précieux sur des points que je n'aurais même pas pensé aborder. De retour à la maison, je savais déboguer mon code avec le débogueur intégré de Visual Studio, même si mon environnement de développement était hébergé sur un serveur distant. Je ne cherche pas à vous convaincre de dépenser de l'argent pour aller au Summit et au Hackathon. Je vous dis simplement que ce moment décisif a transformé mon expérience : d'« Apprenant isolé » à « Développeur à distance autonome ».

Le voyage se poursuit

Les enseignants forment les meilleurs élèves

Il y a des années, j'ai découvert que le groupe de discussion PROGRESS Email Group (PEG) a considérablement accéléré mon apprentissage, dès que j'ai commencé à répondre aux questions des autres. Pourquoi donc ? Tout simplement parce que les enseignants sont les meilleurs élèves. La recherche et la diversité des sujets abordés, au-delà du quotidien, ont le pouvoir intrinsèque d'enseigner davantage à celui qui répond aux questions qu'à celui qui cherche désespérément la solution miracle.

J'espérais revivre cette expérience d'il y a si longtemps, et le soutien de la communauté Stack Overflow prouve que peu de choses ont changé en 20 ans. Quand je pose une question, j'ai besoin d'une réponse, mais je suis incapable, à ce moment-là, d'aller au-delà de la simple résolution du problème. Partager mes connaissances implique de réfléchir au contenu de la question, à ce qui pourrait y manquer, à la manière d'atteindre l'objectif et à la meilleure façon de formuler ma réponse pour qu'elle soit comprise. Mes réponses sont-elles toujours optimales ? Bien sûr que non ! J'ai seulement deux ans d'expérience. Mais la plupart du temps, elles sont utiles. Les développeurs ont souvent juste besoin d'un petit coup de pouce, et on peut tous répondre à une question de temps en temps.

Prenez de bonnes notes

De retour du dernier sommet, j'ai ressenti un profond désir de rejoindre des développeurs comme Sergey Marenich et Yuriy Zaletskyy et de créer un blogue dédié. J'utilisais Stack Overflow pour documenter mes difficultés (via les questions que je posais) et j'ai réalisé que ces leçons pourraient un jour aider de nouveaux développeurs. C'est ainsi qu'est né Acumatica.dev. L'important, c'est de prendre des notes, peu importe l'outil qui vous permet d'apprendre le mieux. Que ce soit dans un blogue, un calepin ou en documentant vos questions et vos résultats sur Stack Overflow, retrouver facilement les leçons apprises renforce vos acquis. De même, et c'est tout aussi important, ça permet de partager ce savoir avec d'autres afin qu'on puisse tous devenir d'excellents développeurs.

Je suis juste là pour pirater (tousse, tousse) – Hackathon Année 2

Fin janvier, j'ai eu la chance de participer à mon deuxième Hackathon (et bien sûr, au Sommet qui a suivi). Encore une fois, le Hackathon a été le clou de mon année. J'avais déjà établi des contacts lors de ma première participation, ce qui m'a été utile tout au long de l'année. Cette année, j'ai eu le plaisir de revoir ces personnes, de rencontrer d'autres développeurs talentueux et même de contribuer activement au projet de notre équipe. Malgré le plaisir que j'ai pris au Sommet et à la formation sur l'application, le Hackathon reste pour moi l'événement phare de l'année. Fernando Amadoz , notre joueur par excellence, m'a aidé à repousser mes limites en matière de développement et à élargir ma vision de l'univers du développement Acumatica.

Mon parcours ne fait que commencer, mais j'ai déjà un peu d'avance sur certains d'entre vous. J'espère sincèrement que le récit de mon parcours, de mes difficultés et de ma quête d'excellence vous encouragera, voire vous éclairera, et surtout vous rapprochera un peu plus de votre objectif : devenir le développeur exceptionnel que nous savons tous que vous pouvez être.

Auteur du blog

Brian est le développeur principal de SETECH Supply Chain Solutions, LLC. SETECH fournit des solutions sur mesure basées sur les meilleures pratiques pour améliorer la disponibilité des matériaux indirects tout en réduisant le coût total de possession pour leurs clients.

Recevez des mises à jour de blog dans votre boîte de réception.