Le parcours d'un développeur dans sa transition vers la plateforme xRP d'Acumatica
Note de l'éditeur : Dans cet article, Brian partage son point de vue unique sur son parcours pour devenir un développeur Acumatica après avoir passé deux décennies en tant que programmeur "Top-Down". Il fournit une perspective intéressante ainsi que des conseils avisés pour les autres développeurs qui rejoignent la famille Acumatica depuis le monde de la programmation " à l'ancienne ", qui devraient trouver un écho auprès des nombreux lecteurs de ce blog dans le monde de l'ERP.
Le monde est plein de grands... de grands musiciens, de grands dirigeants et, bien sûr, de grands développeurs. Quelle que soit la grandeur que vous espérez atteindre dans la vie, personne ne commence comme un grand, mais ils ont tous quelque chose en commun. Tout le monde doit 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 des progrès significatifs, rien ne remplace l'expérience, et chaque jour est une nouvelle expérience d'apprentissage. Avec 20 ans de programmation sur PROGRESS 4GL pour soutenir un système hérité, le passage à C# et à la plateforme Acumatica xRP a été rempli de moments de frustration, d'illumination, et oui - même de grandeur. Si vous débutez et que vous lisez la suite pour découvrir mon parcours, j'espère que vous comprendrez que d'autres sont passés par là, qu'il est vital de savoir où trouver les meilleures ressources et que vous POUVEZ réussir dans cette entreprise.
Les défis de la transition
Top-Down n'est pas la même chose qu'Object-Oriented... sauf quand c'est le cas.
Pour comprendre mon combat 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 monde était celui de la programmation descendante, où l'on commence en haut de la page et où l'on dit au programme exactement ce qu'il doit faire. Les compétences en matière de programmation reposaient sur la maîtrise du langage et de la syntaxe, sur la compréhension de la portée des transactions et sur des interfaces utilisateur relativement statiques. Lors du passage au C#, l'idée qu'une interaction puisse déclencher une validation et une mise à jour apparemment aléatoires avant même que l'utilisateur n'ait fini de remplir le formulaire ressemblait à du CHAOS pur et simple. Puis, 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 l'isolement virtuel
Lorsque mon employeur a pris la décision d'adopter l'ERP Acumatica, mon homologue s'est vu confier la tâche de gérer l'ensemble du projet et de configurer le système. Ayant passé près de 18 ans à améliorer notre ancien système, j'ai été désigné comme notre nouveau développeur C# pour Acumatica. En tant qu'équipe, nous avons appris le côté applicatif du logiciel, et je me suis concentré sur l'apprentissage du langage C# et de la plateforme Acumatica xRP, tandis que mon homologue a appris les IG, les scénarios d'importation et d'exportation, les événements commerciaux, etc. En conséquence, nous avions tous les deux l'application comme point de référence commun, mais nous étions tous les deux isolés virtuellement pour apprendre nos nouvelles compétences. Notre partenaire Acumatica nous a apporté un soutien substantiel dès le début pour la planification et la mise en œuvre, mais il n'y avait rien d'autre à faire que de retrousser mes manches et de commencer à étudier si je voulais apprendre à développer sur la plate-forme Acumatica xRP. Je dois dire que, bien qu'il y ait eu quelques ressources d'apprentissage disponibles, ce fut une période particulièrement effrayante et excitante de ma carrière.
Essai et erreur, et erreur, et erreur
On attribue à Thomas Edison la phrase suivante : "Les résultats négatifs sont exactement ce que je veux. Ils ont autant de valeur pour moi que les résultats positifs. Je ne peux jamais trouver la chose qui fait le mieux le travail tant que je n'ai pas trouvé celles qui ne le font pas". Cela résume mon expérience d'apprentissage, surtout au début. Je me souviens d'avoir appris suffisamment pour faire quelque chose, d'avoir ressenti une grande excitation dans ce succès, puis d'avoir sombré dans le désespoir alors que je m'efforçais de répéter ce succès. Ayant passé la majeure partie de ma carrière à produire des résultats, parfois même en étant au téléphone avec la personne qui en avait besoin, l'apprentissage dans un isolement virtuel me conduisait sur des chemins qui débouchaient inévitablement sur une semaine d'essais et d'erreurs, d'erreurs et d'encore plus d'erreurs. Je vous prie de tirer les leçons de mon ignorance... Bien que cette approche vous enseigne des centaines de façons de ne pas faire, il existe une meilleure façon de procéder. Il suffit de savoir où chercher. Heureusement pour vous, c'est la prochaine étape... Lisez la suite !
Ressources trouvées
Nous ne faisons que commencer
Si vous ne connaissez pas encore le langage C#, vous devez d'abord l'apprendre. Lorsque vous serez prêt à vous lancer, rendez-vous sur le site web de Microsoft pour obtenir des ressources de formation gratuites.
Une fois que vous avez acquis les bases du langage C#, j'ai constaté que j'apprenais plus rapidement lorsque j'utilisais ce que j'avais appris. Ne vous inquiétez pas si vous n'êtes pas un pro chevronné du C# : L'expérience et l'échec sont les meilleurs professeurs. Rendez-vous sur le site de l'Acumatica Open University(http://openuni.acumatica.com/) pour commencer votre voyage. J'ai appris à partir d'un ensemble précédent de guides de formation et de vidéos sur Open University, mais j'ai commencé à examiner les nouveaux guides de formation qui s'y trouvent maintenant. La documentation mise à jour est incroyable, et même après deux ans de développement sur Acumatica, le nouveau matériel fournit de nouvelles informations très utiles.
Une excellente ressource pour les nouveaux développeurs Acumatica est la page Onboarding New Acumatica Developers qui fournit une feuille de route complète pour toutes les ressources dont vous avez besoin - y compris les guides de démarrage rapide, la documentation et la formation pour les développeurs.
Il faut un village
Une fois que vous aurez suivi les premières formations et 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 n'avions qu'à reproduire ce qui se trouve dans les guides de formation, nous serions prêts ! Cependant, rien de ce que je fais ne semble apparaître dans les guides de formation en disant "Brian, tu dois juste faire ceci". En l'absence d'un autre développeur dans la salle, j'avais besoin d'une assistance personnalisée, et j'entends par là un volume que vous ne pouvez pas vous permettre d'acheter en heures d'assistance aux développeurs. Heureusement, il n'est pas nécessaire d'avoir les poches pleines pour obtenir de l'aide sur la plupart des questions des développeurs.
La clé pour éviter l'immense frustration qui m'a frappé très tôt est de s'intéresser très tôt à la demande d'aide de la communauté. Rendez-vous sur stackoverflow et recherchez des mots-clés en rapport avec votre problème. Si vous commencez la recherche par [Acumatica], vous obtiendrez les résultats des questions posées avec le mot-clé Acumatica. Certains des grands développeurs que j'ai appris à connaître au cours des deux dernières années ont commencé par des contacts sur stackoverflow. Acumatica en tant qu'entreprise et le programme Acumatica Developer MVP garantissent que toutes les questions étiquetées Acumatica sont vues. Obtenir une bonne réponse dépend davantage de la façon dont vous posez votre question, mais c'est un sujet pour un autre jour. Disons simplement que vous devez 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 vous savez. C'est QUI vous connaissez !
Alors que je terminais mes 6 premiers mois de développement, je me débattais encore constamment. Ayant finalement adopté StackOverflow comme source d'aide, la communauté était beaucoup plus petite qu'elle ne l'est aujourd'hui... même il y a seulement 18 mois. Notre partenaire Acumatica m'a mis en contact avec Mark Franks, le Platform Evangelist d'Acumatica, et tous deux m'ont dit : " Allez au Summit à la fin du mois de janvier et participez au Hackathon". Je me souviens avoir pensé : "Un hackathon, hein ? Je n'ai pas encore assez de compétences pour faire quoi que ce soit !" J'ai dit à Mark que j'apprenais dans un isolement virtuel et que j'avais vraiment besoin d'un moyen de mieux m'intégrer. Il a répété : "Il faut vraiment que tu participes au hackathon. Nous voulons des gens de tous les domaines dans les équipes, et tu te feras 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 l'information à mon patron, qui m'a toujours soutenue. Sans hésiter, il m'a dit : "Réservez-le !". Permettez-moi de le dire très clairement. RIEN n'a raccourci ma courbe d'apprentissage autant qu'un week-end à mon premier hackathon Acumatica. Pas le sommet. Pas le cours de formation que j'ai suivi au Sommet. RIEN. Le MVP de notre équipe, Joshua van Hoesen, a eu la gentillesse de répondre à mes questions et il m'a éclairé sur des points que je ne savais même pas qu'il fallait demander. Lorsque je suis rentré chez moi, je savais comment déboguer mon code avec le débogueur intégré de Visual Studio, même si mon instance de développement se trouvait sur un serveur distant. Je n'essaie pas de vous convaincre de dépenser de l'argent pour aller au Summit et au Hackathon. Je vous dis que ce tournant m'a fait passer du statut d'"apprenant en isolement virtuel" à celui de "développeur à distance habilité".
Le voyage continue
Les enseignants font les meilleurs élèves
Il y a quelques années, j'ai découvert que le groupe de discussion PROGRESS (PEG) a propulsé mon apprentissage de manière exponentielle, car j'ai commencé à répondre aux questions que d'autres se posaient. Pourquoi ? Tout simplement parce que les enseignants sont les meilleurs élèves. La recherche et la variété au-delà de la vision quotidienne normale ont la capacité innée d'enseigner à celui qui répond aux questions plus qu'à celui qui cherche désespérément la pépite qui résout le problème.
J'espérais renouveler mon 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 n'ai guère la possibilité, à ce moment-là, d'élargir ma réflexion au-delà de la réparation de ce qui ne fonctionne pas. Pour partager mes connaissances, je dois réfléchir à ce que contient la question, à ce que je pense qu'il manque dans la question, à la manière dont je pourrais atteindre l'objectif et à la meilleure façon de transmettre ma réponse pour que la personne qui la pose puisse la comprendre. Mes réponses sont-elles toujours les meilleures ? Bien sûr que non ! Je n'ai que deux ans d'expérience. Mais la plupart du temps, elles sont utiles. Les développeurs ont souvent besoin d'un coup de pouce dans la bonne direction, et nous pouvons tous répondre à une question de temps en temps.
Prendre de bonnes notes
En revenant du dernier sommet, j'ai ressenti un profond désir de rejoindre Sergey Marenich et Yuriy Zaletskyy dans la rédaction d'un blog de développeur. J'avais utilisé StackOverflow pour documenter mes difficultés (via les questions que je posais) et j'ai réalisé que ces leçons apprises pourraient un jour aider les nouveaux développeurs. C'est ainsi qu'est né Acumatica.dev. Ce qu'il faut retenir, c'est que quelle que soit la manière dont vous apprenez le mieux, vous devez prendre de bonnes notes. Que ce soit dans un blog, un carnet de notes ou en documentant vos questions et vos résultats dans des messages sur Stack Overflow, trouver un moyen de revenir aux leçons que vous avez apprises renforce ce que vous avez appris. Tout aussi important, cela permet de partager cet apprentissage avec d'autres afin que nous puissions tous devenir d'excellents développeurs avec le temps.
Je suis juste là pour hacker (toux, toux) - Hackathon Year 2
Fin janvier, j'ai eu la chance de pouvoir revenir pour mon deuxième Hackathon (oh, et oui, le Sommet qui a suivi.) Une fois de plus, le Hackathon a été le point culminant de mon année. Alors que j'avais noué des contacts la première année qui m'ont aidé tout au long de l'année, j'ai pu les revoir, rencontrer d'autres développeurs formidables et même contribuer activement à notre projet d'équipe cette année. Même si j'ai apprécié le sommet et les sessions de formation sur les applications cette année, le Hackathon reste l'événement de l'année pour moi. Le MVP de notre équipe, Fernando Amadoz, m'a aidé à aller au-delà de mon développement normal et à élargir ma vision du monde du développement Acumatica.
Mon voyage ne fait que commencer, mais je suis plus avancé que certains d'entre vous... même si ce n'est qu'un peu. J'espère sincèrement que l'histoire de mon parcours, de mes luttes et de mon chemin vers la grandeur vous encouragera, peut-être même vous éclairera, mais surtout vous rapprochera un peu plus du grand développeur que nous savons tous que vous pouvez être.