El viaje de un desarrollador en la transición a la plataforma xRP de Acumatica
Nota del editor: En el post de Brian, él comparte su punto de vista único en su viaje en convertirse en un desarrollador de Acumatica después de pasar dos décadas como un programador "Top-Down". Ofrece una perspectiva interesante junto con algunos sabios consejos para otros desarrolladores que se unen a la familia Acumatica desde el mundo de la programación de la "vieja escuela" que deberían resonar con muchos en el mundo ERP que leen este blog.
El mundo está lleno de grandes... grandes músicos, grandes líderes y, por supuesto, grandes desarrolladores. Sea cual sea la grandeza que esperas alcanzar en la vida, nadie empieza siendo grande, pero todos tienen algo en común. Todos deben empezar en algún sitio.
Uno de mis objetivos profesionales es convertirme en un gran desarrollador de la plataforma xRP de Acumatica. Aunque he dado pasos importantes, no hay nada que sustituya a la experiencia, y cada día es una nueva experiencia de aprendizaje. Tras 20 años programando en PROGRESS 4GL para dar soporte a un sistema heredado, el paso a C# y a la plataforma Acumatica xRP ha estado lleno de momentos de frustración, iluminación y, sí, incluso de grandeza. Si acaba de empezar y sigue leyendo para conocer mi viaje, espero que comprenda que otros han pasado por lo mismo que usted: saber dónde encontrar los mejores recursos es vital y que usted PUEDE tener éxito en esta empresa.
Retos de la transición
Top-Down NO es lo mismo que Orientado a Objetos... excepto cuando es
Para entender mi lucha como desarrollador veterano, primero hay que comprender que no crecí en el mundo de la programación orientada a objetos (POO). Mi mundo era Top-Down, donde empiezas en la parte superior de la página y le dices al programa exactamente lo que tiene que hacer. La destreza en programación se basaba en el dominio del lenguaje y la sintaxis, la comprensión de los ámbitos de transacción y las interfaces de usuario relativamente estáticas. Al pasar a C#, la idea de que una interacción pudiera desencadenar alguna validación y actualización aparentemente aleatorias incluso antes de que el usuario hubiera terminado de rellenar el formulario parecía puro CAOS. Pero entonces, finalmente, comprendí un concepto que cambió el curso de mi transición a la programación orientada a objetos.
“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.
Aprender en aislamiento virtual
Cuando mi empresa tomó la decisión de adoptar Acumatica ERP, se asignó a mi homólogo la tarea de gestionar el proyecto global y configurar el sistema. Después de haber pasado casi 18 años mejorando nuestro sistema heredado, me designaron nuestro nuevo desarrollador de C# para Acumatica. Como equipo, aprendimos el lado de la aplicación del software, y yo me centré en aprender C# y la plataforma xRP de Acumatica, mientras que mi homólogo aprendió GI, escenarios de importación/exportación, eventos empresariales, etc. Como resultado, ambos teníamos la aplicación como punto de referencia común, pero estábamos virtualmente aislados para aprender nuestras nuevas habilidades. Nuestro socio de Acumatica nos proporcionó un apoyo sustancial desde el principio para la planificación y la implementación, pero no había nada más que hacer que arremangarme y empezar a estudiar si quería aprender a desarrollar en la plataforma xRP de Acumatica. Debo decir que, aunque había algunos recursos de aprendizaje disponibles, este fue un momento particularmente aterrador y emocionante en mi carrera.
Prueba y error, y error, y error
Se atribuye a Thomas Edison la frase: "Los resultados negativos son justo lo que quiero. Son tan valiosos para mí como los resultados positivos. Nunca podré encontrar lo que hace mejor el trabajo hasta que encuentre los que no lo hacen". Esto resume mi experiencia de aprendizaje, sobre todo al principio. Recuerdo que aprendía lo suficiente para hacer algo, me entusiasmaba el éxito y luego me hundía en la desesperación cuando me esforzaba por repetir ese éxito. Habiendo pasado la mayor parte de mi carrera produciendo resultados, a veces incluso mientras hablaba por teléfono con la persona que hacía la petición, aprender en un aislamiento virtual me llevaba por caminos que inevitablemente desembocaban en una semana de ensayo y error, y error, y aún más error. Te ruego que aprendas de mi ignorancia... Aunque este enfoque te enseña cientos de formas de no hacerlo, HAY una forma mejor. Sólo tienes que saber dónde buscar. Por suerte para ti, eso es lo siguiente... ¡Sigue leyendo!
Recursos encontrados
No hemos hecho más que empezar
Si aún no sabes C#, primero tienes que aprenderlo. Cuando estés listo para empezar, visita el sitio web de Microsoft para obtener recursos de formación gratuitos.
Una vez que tienes las nociones básicas de C#, he descubierto que aprendo más rápido cuando utilizo lo que he aprendido. No te preocupes si no eres un experto en C#: La experiencia y el fracaso son los mejores maestros. Dirígete a Acumatica Open University(http://openuni.acumatica.com/) para comenzar tu viaje. Aprendí de un conjunto anterior de guías de formación y vídeos en Open University, pero ahora he empezado a revisar las nuevas guías de formación que se encuentran allí. La documentación actualizada es increíble, e incluso después de 2 años de desarrollo de Acumatica, el nuevo material proporciona conocimientos nuevos y muy útiles.
Un gran recurso para los nuevos desarrolladores de Acumatica es la página Onboarding New Acumatica Developers (Incorporación de nuevos desarrolladores de Acumatica ), que proporciona una hoja de ruta completa con todos los recursos que necesita, incluidas guías de inicio rápido, documentación y formación para desarrolladores.
Hace falta un pueblo
Una vez que haya completado los primeros cursos de formación y siga la Guía de inicio rápido para desarrolladores, su caja de herramientas debería empezar a llenarse de habilidades que le permitan realizar importantes mejoras funcionales en Acumatica. Si sólo necesitáramos reproducir lo que aparece en las guías de formación, ¡estaríamos listos! Sin embargo, nada de lo que hago parece aparecer nunca en las guías de formación diciendo: "Brian, sólo tienes que hacer esto". Sin otro desarrollador en la sala al que preguntar, necesitaba apoyo personalizado, y me refiero a un volumen que no puedes permitirte comprar en horas de apoyo al desarrollador. Afortunadamente, no se necesitan bolsillos profundos para obtener ayuda con la mayoría de las preguntas de los desarrolladores.
La clave para evitar la inmensa frustración que me afectó a mí al principio es interesarse pronto por Pedir ayuda a la comunidad. Visita stackoverflow y busca palabras clave relacionadas con tu problema. Si inicias la búsqueda con [Acumatica], aparecerán los resultados de las preguntas formuladas con la etiqueta Acumatica. Algunos de los grandes desarrolladores que he conocido en los últimos dos años empezaron como contactos en stackoverflow. Acumatica como empresa y el programa Acumatica Developer MVP garantizan que se vean todas las preguntas con la etiqueta Acumatica. Obtener una buena respuesta tiene más que ver con lo bien que plantees tu pregunta, pero eso es un post para otro día. Digamos simplemente que incluya toda la información que pueda junto con ejemplos de código y dejémoslo así por ahora.
No es lo que sabes. Es a QUIÉN conoces.
Mientras cerraba mis primeros 6 meses de desarrollo, seguía luchando constantemente. Habiendo finalmente adoptado StackOverflow como mi fuente de ayuda, la comunidad era mucho más pequeña de lo que es ahora... incluso hace sólo 18 meses. Nuestro socio de Acumatica me puso en contacto con Mark Franks, el evangelista de plataformas de Acumatica, y ambos me dijeron: "Ve a Summit a finales de enero y participa en el Hackathon". Recuerdo que pensé: "Un Hackathon, ¿eh? Todavía no tengo suficiente habilidad para hacer nada!". Le dije a Mark que estaba aprendiendo en aislamiento virtual, y que realmente necesitaba una forma de conectarme mejor. Reiteró: "Tienes que ir al Hackathon. Queremos gente de todas las áreas en los equipos, y harás contactos que podrán ayudarte a aprender". - Parafraseado de memoria (Nota del editor: Brian tiene buena memoria).
Llevé la información a mi jefe, que siempre me ha apoyado. Sin dudarlo, me dijo: "¡Resérvalo!". Permítanme decir esto muy claramente. NADA acortó tanto mi curva de aprendizaje como un fin de semana en mi primer Acumatica Hackathon. Ni el Summit. Ni el curso de formación que hice en la Cumbre. NADA. El MVP de nuestro equipo, Joshua van Hoesen, tuvo la amabilidad de responder a mis preguntas y me proporcionó información sobre cosas que ni siquiera sabía que debía preguntar. Cuando volví a casa, sabía cómo depurar mi código con el depurador integrado de Visual Studio, aunque mi instancia de desarrollo estaba en un servidor remoto. No estoy intentando convencerte de que te gastes el dinero en ir al Summit y al Hackathon. Te estoy diciendo que este punto de inflexión hizo que mi experiencia pasara de "Aprendiz en aislamiento virtual" a "Desarrollador remoto capacitado".
El viaje continúa
Los profesores son los mejores alumnos
Hace años, descubrí que el grupo de correo electrónico PROGRESS (PEG) impulsó mi aprendizaje de forma exponencial cuando empecé a responder a las preguntas que otros hacían. ¿Por qué? Sencillamente, los profesores son los mejores alumnos. La investigación y la variedad más allá de la visión normal del día a día tiene la capacidad innata de enseñar más al que responde preguntas que al que está desesperado por encontrar esa pepita que solucione el problema.
Esperaba repetir mi experiencia de hace tanto tiempo, y el apoyo de la comunidad en StackOverflow está demostrando que poco ha cambiado en 20 años. Cuando hago una pregunta, necesito una respuesta pero tengo poca capacidad en ese momento para ampliar mis pensamientos más allá de arreglar lo que no funciona. Compartir mis conocimientos requiere pensar en lo que hay en la pregunta, en lo que creo que puede faltar en ella, en cómo podría lograr el objetivo y en la mejor manera de transmitir mi respuesta para que la persona que pregunta pueda entenderla. ¿Son siempre mis respuestas las mejores? Por supuesto que no. Sólo llevo dos años. Pero la mayoría de las veces ayudan. Los desarrolladores a menudo sólo necesitan un empujón en la dirección correcta, y todos podemos responder a una pregunta de vez en cuando.
Tome buenas notas
Al volver de la última Cumbre, sentí un profundo deseo de unirme a Sergey Marenich y Yuriy Zaletskyy y escribir un blog para desarrolladores. Había estado utilizando StackOverflow como medio para documentar mis dificultades (a través de las preguntas que formulaba) y me di cuenta de que esas lecciones aprendidas podrían ayudar algún día a los nuevos desarrolladores. Así nació Acumatica.dev. La clave es que, sea lo que sea lo que mejor te ayude a aprender, toma buenas notas. Ya sea en un blog, en un cuaderno o documentando tus preguntas y resultados en entradas de Stack Overflow, encontrar una forma de volver a las lecciones aprendidas refuerza lo que has aprendido. Y lo que es igual de importante, permite compartir ese aprendizaje con los demás para que todos podamos convertirnos en grandes desarrolladores con el tiempo.
I'm just here to Hack (tos, tos) - Hackathon Año 2
A finales de enero, tuve la suerte de poder volver para participar en mi segundo Hackathon (y sí, la Cumbre que le siguió.) Una vez más, el Hackathon fue lo más destacado de mi año. Aunque el primer año hice contactos que me ayudaron durante todo el año, este año pude volver a verlos, conocer a otros grandes desarrolladores e incluso contribuir activamente a nuestro proyecto de equipo. Aunque este año disfruté mucho de la Cumbre y de la sesión de formación sobre aplicaciones, el Hackathon sigue siendo para mí el evento del año. Nuestro MVP del equipo, Fernando Amadoz, me ayudó a ir más allá de mi desarrollo normal y a ampliar mi visión del mundo del desarrollo de Acumatica.
Mi viaje no ha hecho más que empezar, pero he avanzado más que algunos de vosotros... aunque sólo un poco. Mi sincera esperanza es que la historia de mi viaje, mis luchas y mi camino hacia la grandeza te anime, quizá incluso te ilumine, pero sobre todo te acerque un poco más a convertirte en el gran desarrollador que todos sabemos que puedes llegar a ser.