Lo que aprendí después de dos años como desarrollador de software en Microsoft



Ahora que mi segundo año como desarrollador de software en Microsoft India está llegando a su fin, tiene sentido especular sobre lo que he aprendido en los últimos dos años.



Llegué a Microsoft justo después de la universidad, al Instituto Indio de Tecnología de Guwahati, y este trabajo fue mi primera experiencia. Con el tiempo, he crecido mucho y he aprendido muchas lecciones nuevas. En este artículo intentaré estructurar mis pensamientos sobre ellos.



Entonces, aquí hay cinco cosas que he aprendido.



1. Investigación, investigación e investigación de nuevo



"Los hechos generalmente aceptados hoy son los resultados de la investigación de ayer". Duncan MacDonald


Cuando digo investigación, me refiero a dos cosas: realizar una



investigación para identificar la causa raíz de un problema.



Casi de inmediato me di cuenta de que es muy fácil desarrollar el hábito de no entrar en los detalles de un problema y no comprender sus verdaderas causas. Y si no conoce la razón específica de la existencia del problema, casi siempre afecta cuando casi ha terminado con el problema. Casi es una palabra muy importante aquí.



Realización de investigaciones para encontrar la solución más eficaz al problema actual.



Es importante comprender que no solo queremos resolver un problema; es igualmente importante resolverlo de la manera más eficiente. Esto es lo que distingue un gran trabajo de un mediocre. Para destacar, debe dedicar un tiempo a dominar esta visión de las cosas, no solo a hacer el trabajo. Esto es lo que te da el mayor crecimiento.



Todos saben que preparar y completar las tareas con anticipación es muy importante, pero al mismo tiempo es muy fácil completarlas no por completo, especialmente si no está resolviendo uno, sino muchos problemas.



Cuando hay varias tareas en tu mente, es muy fácil comprometerse y no llegar a las profundidades de cada una de ellas. Por lo tanto, es extremadamente importante tener esto en cuenta en todo momento.



Una investigación preliminar exhaustiva nos ayuda no solo a analizar el problema de manera eficaz y encontrar sus soluciones óptimas, sino también a no perder de vista el panorama general.



Lo más importante es recordar que no se le paga por una solución rápida, sino por una solución precisa y completa a un problema.



Esto requiere investigación, investigación y más investigación .



2. Murphy lo sabía, ¡tú también deberías saberlo!



Ley de murphy:



"Si algo puede salir mal, saldrá mal".


Dos años después, conozco muy bien esta ley, ¡y es la verdad verdadera!



Lo he encontrado constantemente en todos mis proyectos, siempre es aplicable, y quienes no lo conozcan se verán obligados a averiguarlo de una manera dolorosa.



Por lo tanto, es muy importante dividir una solución grande en varias partes separadas y muy pequeñas en primer lugar. Luego, debe tomarse el tiempo para tener en cuenta las excepciones / errores que puedan ocurrir en estas pequeñas partes discretas. Al mismo tiempo, debe comprender cómo se comportarán estas partes juntas y qué excepciones / errores pueden surgir debido a sus interacciones.



Desarrollar la previsión es clave .



Pero, ¿qué puede hacer mientras desarrolla su previsión? Debe crear muchos controles y contrapesos para detectar estos problemas con anticipación.



Muchos de los problemas futuros se pueden detectar temprano con pruebas unitarias, pruebas de integración y pruebas de rendimiento . Una de las lecciones técnicas más importantes que aprendí solo cuando comencé a trabajar en la industria fue la necesidad de escribir código con cobertura de prueba . Esto ayudará no solo a mí, sino a todo el equipo, que tomará mi trabajo y lo desarrollará en el futuro.



Para detectar los problemas que no se han detectado en las pruebas, existe una infraestructura denominada entorno de preproducción., que simula el trabajo en el mundo real, es decir, en un entorno de producción . Es muy importante comprobar que su código funciona de forma fiable en el entorno de preproducción durante algún tiempo.



Pero incluso después de aplicar todos estos controles y contrapesos, aún pueden surgir problemas.



Lo más importante en este caso es aprender de estos errores y no reprocharte por ellos, porque es mucho más crítico que no surjan en el futuro.



3. Todo se puede solucionar. La pregunta importante es qué decidir primero



Trabajando en la industria del desarrollo de software, me di cuenta de algo importante: tenemos demasiadas tareas que resolver, pero el tiempo es limitado.



Por lo tanto, es perfectamente aceptable utilizar la priorización y la evaluación precisa de los componentes clave, tanto para un equipo exitoso como para un individuo. Como no resolvemos cada problema por separado, me di cuenta de que cualquier problema puede resolverse tarde o temprano, pero es necesario evaluar el tiempo que se dedicará a ello y su importancia.



Para responder a la pregunta de cuán importante es, asignamos una prioridad a la tarea, que puede ser un número primo que indique su importancia. También puede asignar un número para representar la cantidad de días que estimamos que tomará resolver el problema. Estos dos parámetros son muy importantes por las siguientes razones:



  • En la mayoría de los casos, el proyecto no tiene una, sino varias personas responsables. Por lo tanto, siempre es útil establecer una buena comunicación con toda la gerencia.
  • Estas opciones le ayudan a seleccionar el trabajo que optimiza el uso de su tiempo limitado.


Por lo tanto, estamos tratando de responder una pregunta importante, a saber: ¿ qué problema resolver primero?



4. La gestión de incidentes le enseña mucho más



Un incidente es una suspensión no planificada de los clientes que utilizan su servicio.



"La gestión de incidentes es el proceso más rápido posible de registro, registro y resolución de incidentes para restaurar un proceso comercial o el funcionamiento normal del servicio".


Cuando estaba en la universidad, siempre imaginé que mi trabajo sería escribir código para resolver un problema, es decir, ser creativo. Pero durante los últimos dos años, me di cuenta de que es una parte muy importante de mi trabajo estar involucrado en la resolución de incidentes con nuestro producto.



Para gestionar estos incidentes, en el equipo nos turnamos para responsabilizarnos de todo el producto. Es decir, cuando ocurre un incidente, es posible que no esté relacionado con lo que creé anteriormente.



¿Qué me han enseñado estos incidentes?



Los incidentes del pasado me hicieron darme cuenta de que es muy importante estar al tanto de en qué están trabajando los demás.



Esto no solo desarrolla en mí el hábito de buscar sus soluciones y encontrar problemas en ellas desde el principio, sino también de tomar ejemplos de ellas, así como de utilizar componentes clave en mis propias soluciones.



Estos incidentes dan como resultado un tiempo de inactividad grave para nuestros clientes / administración y, a menudo, se les da alta prioridad para resolver.



También enseñan mucho sobre las sutilezas de varios aspectos, para que podamos comprenderlos más profundamente. Dar prioridad a estos incidentes desarrolla un pensamiento rápido y les enseña a ofrecer rápidamente soluciones claras y confiables para que los clientes puedan continuar con su trabajo.



A menudo, al lidiar con este tipo de incidentes, nos enfrentamos a desafíos más grandes, que a su vez nos ayudan a comprender lo siguiente:



? ?



5.



« - - , . , . , . , », —


La colaboración dentro de un equipo es muy poderosa y mejora el trabajo individual.



Fue solo en un entorno profesional que entendí el papel que desempeña un grupo de personas con sus fortalezas y experiencia únicas para abordar y resolver un problema.



Al buscar una solución a cualquier problema, un par de ojos frescos siempre es útil. Por tanto, la cooperación sin conflictos es muy importante para superar los obstáculos.



La colaboración en Microsoft implica no solo trabajar con personas en su oficina, sino también trabajar con personas en diferentes continentes y en diferentes zonas horarias. Entonces, ¿cómo lo optimizas, especialmente cuando tienes que interactuar con alguien que nunca has visto? No conoces a esta persona ni las dificultades que tuvo que afrontar.



Además, nos enfrentamos a una situación única: debido a la pandemia de COVID-19, todos tenían que trabajar desde casa. Durante este período, el tamaño de nuestros equipos aumentó significativamente y muchos de nuestros colegas se unieron virtualmente a la organización.



La lección más importante que he aprendido de todas estas situaciones es que lo mejor es asumir siempre las buenas intenciones de los demás y comprender siempre los problemas que tienen.



Ejercer tolerancia y confianza en momentos como estos siempre ayudará a crear un buen espíritu de equipo y una cultura positiva. Gradualmente, esto afectará los resultados.



Conclusión



Creo que, en esencia, el desarrollo de software se trata de resolver problemas : aunque es bastante fácil de captar y comprender los detalles técnicos, es mucho más difícil comprender la actitud, visión y enfoque correctos para resolver un problema.



El objetivo principal de este artículo es repetir todos aquellos puntos que siempre hemos conocido pero que ignoramos constantemente. Es la conciencia constante de ellos lo que distingue al profesional del estudiante, y en los últimos dos años he podido hacer esta transición.






Publicidad



¡Ordene y comience a trabajar de inmediato! Creación de un servidor virtual de cualquier configuración en un minuto, cree su propia configuración en un par de clics.



Suscríbete a nuestro chat en Telegram .






All Articles