Cómo convertirse en un mejor desarrollador de software
Cómo convertirse en un mejor desarrollador de software
Cómo convertirse en un mejor desarrollador de software Cómo convertirse en un mejor desarrollador de software

Hoy me gustaría compartir algunas ideas sobre las formas en que los desarrolladores de software pueden mejorar sus habilidades profesionales y mejorar en su trabajo. Los temas planteados aquí son universales y no específicos de ninguna pila tecnológica. La mayoría de ellos ni siquiera son específicos de TI. Estos son consejos generales sobre cómo desarrollar sus rasgos personales, mejorar la colaboración con colegas y clientes y avanzar en su carrera como desarrollador de software. Hoy quiero compartir con vosotros algunas ideas sobre cómo los desarrolladores de software pueden mejorar sus habilidades profesionales y trabajar mejor. Los temas presentados aquí son genéricos y no específicos de ninguna pila tecnológica. La mayoría de ellos ni siquiera son específicos de TI en este momento. Estas son sugerencias generales sobre cómo desarrollar sus cualidades personales, cómo mejorar la colaboración con colegas y clientes y cómo avanzar en su carrera como desarrollador de software.
Algunas de las cosas de este artículo son subjetivas y reflejan mi experiencia personal, mientras que otras han sido adoptadas y utilizadas con éxito por otros. Algunas de las cosas de este artículo son subjetivas y reflejan mi experiencia personal, mientras que otras han sido adoptadas y utilizadas con éxito por otros.
Comprender el proceso de principio a fin Comprender el proceso de principio a fin
Muchos desarrolladores piensan que el desarrollo de software se trata de codificación, y que todo lo demás son personas que intentan molestar y hacer perder su valioso tiempo. Esto no puede estar más lejos de la verdad. Antes de codificar un software, este pasa por un proceso de transformación desde una idea vaga hasta una solución cuidadosamente diseñada y lista para su implementación. Y después de introducir los últimos cambios en Git, el software se está probando, implementando, monitoreando, analizando y mejorando. La codificación es solo uno de los muchos pasos del proceso. Muchos desarrolladores piensan que el desarrollo de software se trata de codificación y que todo lo demás es que la gente pierda su valioso tiempo. Esto no podría estar más lejos de la verdad. Antes de comenzar a escribir un código de software, pasará por un proceso de transformación desde una idea vaga hasta una solución cuidadosamente diseñada, lista para su implementación. Después de enviar sus últimos cambios a Git, el software se prueba, implementa, monitorea, analiza y mejora. La codificación es sólo uno de los muchos pasos del proceso.
Entonces, ¿por qué sucede esto? Con frecuencia, especialmente cuando se trabaja en organizaciones más grandes, diferentes equipos o incluso departamentos manejan diferentes fases de los proyectos. Todo comienza con los analistas de negocios, quienes recopilan los requisitos. Luego, los requisitos se entregan a los diseñadores que producen las maquetas para los desarrolladores. Los desarrolladores codifican y entregan los resultados a los ingenieros de control de calidad. Si todo está bien, el artefacto se envía a los equipos de operaciones que lo entregan a los usuarios finales. En los departamentos, sus representantes a menudo no comprenden realmente los objetivos de los demás y esto genera malentendidos e incluso conflictos. ¿Por qué sucede esto? A menudo, especialmente cuando se trabaja en organizaciones grandes, diferentes equipos o incluso departamentos manejan diferentes fases de un proyecto. Todo comienza con un analista de negocios recopilando requisitos. Luego, los requisitos se entregan a los diseñadores, quienes generan prototipos para los desarrolladores. Los desarrolladores escriben código y entregan los resultados a los ingenieros de control de calidad. Si todo está bien, el artefacto se enviará al equipo de operaciones quien lo entregará al usuario final. El proceso se considera un conjunto de pasos discretos sin ninguna retroalimentación. Debido a la falta de comunicación entre departamentos, sus representantes a menudo no comprenden realmente los objetivos de los demás, lo que genera malentendidos e incluso conflictos.
A menudo, el proceso de desarrollo de software se trata como un conjunto de pasos discretos sin retroalimentación.
A menudo, el proceso de desarrollo de software se considera un conjunto de pasos discretos sin retroalimentación.
Para mucha gente hoy en día esto puede parecer demasiado exagerado. Con el auge de las metodologías ágiles, más empresas se alejan de un enfoque tan rígido y optan por equipos más pequeños formados por personas de especialidades mixtas. Pero incluso entonces vemos que la gente realmente no intenta comprender el trabajo de los demás. ¿Con qué frecuencia se ha sentido irritado con sus diseñadores porque quieren que implemente una casilla de verificación personalizada que requiere demasiado tiempo? Y viceversa, recibió críticas porque olvidó utilizar la fuente correcta. A muchas personas hoy en día esto les puede parecer una exageración. Con el auge de los métodos ágiles, cada vez más empresas se están alejando de este enfoque rígido y, en su lugar, emplean pequeños equipos de profesionales mixtos. Pero incluso entonces, vemos que la gente no entiende realmente el trabajo de otras personas. ¿Está constantemente molesto con sus diseñadores porque quieren que implemente una casilla de verificación personalizada que requiere mucho tiempo? O viceversa, te critican porque olvidaste usar la fuente correcta.
Muchas de estas diferencias pueden superarse simplemente prestando atención al trabajo de los demás. Siéntese con su diseñador y explíquele que implementar una casilla de verificación personalizada lleva un tiempo y que hay una biblioteca que ofrece una casilla de verificación similar diferente que puede reutilizar. A cambio, aprenda los conceptos básicos de la tipografía y comprenda por qué elegir la fuente correcta marca la diferencia. Desarrolle las mismas actitudes hacia los gerentes, analistas de negocios, ingenieros de control de calidad, especialistas en soporte y marketing. Citando a T. Huxley: Estas diferencias pueden superarse simplemente prestando atención al trabajo de los demás. Siéntese con su diseñador y explíquele que implementar una casilla de verificación personalizada llevará un tiempo y que existe una biblioteca que proporciona otra casilla de verificación similar que puede reutilizar. A cambio, aprenda los conceptos básicos de la tipografía y comprenda por qué elegir la fuente adecuada marca la diferencia. Desarrolle la misma actitud hacia los gerentes, analistas de negocios, ingenieros de control de calidad, especialistas en soporte y marketing. Citando a T. Huxley:
Intenta aprender algo sobre todo y todo sobre algo.Al aprender algo de todos, podrá anticipar sus necesidades, acortar el ciclo de retroalimentación y permitir entregas más frecuentes. Además, te ganarás mucho amor y respeto por parte de todos los demás. Al aprender de cada individuo, podrá anticipar sus necesidades, acortar los ciclos de retroalimentación y hacer que las entregas sean más frecuentes. Además, te ganarás el amor y el respeto de muchas personas.
Comprenda las necesidades de su cliente Comprenda las necesidades de su cliente
Hay una cosa importante que debes entender acerca de tus clientes: ellos no entienden la mayoría de las cosas que estás haciendo. La programación ágil y funcional o las bases de datos no relacionales son para ellos magia oscura. Incluso aquellos que siguen de cerca tu trabajo y están genuinamente interesados siguen en su mayoría a oscuras. Esto tiene un par de consecuencias. Hay una cosa importante que debes entender acerca de tus clientes: ellos no entienden la mayor parte de lo que estás haciendo. La programación ágil y funcional o las bases de datos no relacionales son magia oscura para ellos. Incluso aquellos que siguen de cerca su trabajo y están realmente interesados, en su mayoría no saben nada. Esto tiene varias consecuencias.
La cara de la mayoría de los clientes cuando hablan con desarrolladores de software.
La expresión de la mayoría de los clientes cuando hablan con desarrolladores de software.
Contratar desarrolladores de software para ellos requiere cierto grado de confianza. Las personas suelen sentirse incómodas por tener que pagar mucho dinero por algo que no entienden. ¿Recuerda la última vez que entró en un servicio de reparación de automóviles desconocido y no estaba seguro de poder confiarles su transporte? Bueno, tus clientes tienen el mismo sentimiento. Excepto que no hay un automóvil, solo hay un montón de conceptos abstractos e intangibles que se supone que de alguna manera se materializan en productos e ingresos. Cuando se trabaja con nuevos clientes, es importante ganarse su confianza. Asegúrese de que comprendan cómo opera y trate de ofrecer resultados en iteraciones más pequeñas pero frecuentes. De esa manera podrán ver el progreso de su trabajo, evaluar los resultados intermedios y brindar su retroalimentación. Contratar desarrolladores de software para ellos requiere un cierto nivel de confianza. Las personas a menudo se sienten incómodas al tener que pagar mucho dinero por algo que no entienden. ¿Recuerda la última vez que entró en una empresa de servicios de reparación de automóviles desconocida y no estaba seguro de poder confiar en el servicio que le brindaban? Tus clientes sienten lo mismo. Excepto que no hay automóviles, sólo un montón de conceptos abstractos e intangibles que de alguna manera deberían materializarse en productos e ingresos. Cuando se trabaja con nuevos clientes, es importante ganarse su confianza. Asegúrese de que comprendan cómo opera y trate de ofrecer resultados en iteraciones más pequeñas pero frecuentes. De esta manera pueden ver su trabajo en progreso, evaluar resultados intermedios y brindar comentarios.
A menudo, los clientes tienden a encontrar sus propias soluciones en lugar de compartir sus problemas. Como tienen poca idea de sus capacidades, sus soluciones a menudo son mal juzgadas y demasiado ambiciosas o poco ambiciosas. Recuerde la vieja (y tal vez ficticia) cita de Henry Ford: Los clientes suelen proponer sus propias soluciones en lugar de compartir sus problemas. Debido a que no comprenden sus capacidades, sus soluciones a menudo son mal juzgadas, insuficientes o demasiado ambiciosas. Recuerde esta cita famosa (quizás apócrifa) de Henry Ford:
Si le hubiera preguntado a la gente qué querían, habrían dicho caballos más rápidos.
En lugar de seguir la corriente e implementar silenciosamente lo que el cliente quiere, a veces es útil invitarlo a dar un paso atrás y discutir el problema que quería resolver en primer lugar. Al combinar su conocimiento del dominio y su experiencia técnica, es probable que llegue a una mejor solución. En lugar de simplemente seguir la corriente e implementar silenciosamente lo que el cliente quiere, a veces es útil invitarlo a dar un paso atrás y discutir el problema que originalmente quería resolver. Cuando combina su conocimiento del dominio con su experiencia técnica, puede obtener una mejor solución.
Tenga en cuenta que no a todo el mundo le gusta que se cuestionen sus ideas y esta táctica requiere que usted tenga algo de tacto e inspire confianza a los ojos del cliente. También necesitarás salir de tu zona de confort y sumergirte en su negocio, para poder comprender el problema y sugerir una mejor solución. Esto puede resultar un desafío si trabaja en industrias complejas como las finanzas o la atención médica. Pero si logra esto una vez, es probable que la próxima vez el cliente regrese con una mente más abierta. Recuerde, no a todo el mundo le gusta que se cuestionen sus ideas y esta estrategia requiere que usted tenga algo de tacto e inspire confianza a los ojos de sus clientes. También necesitas salir de tu zona de confort y sumergirte en su negocio para poder comprender los problemas y encontrar mejores soluciones. Si trabaja en una industria compleja como las finanzas o la atención médica, esto puede ser un desafío. Pero si puede hacer esto, es posible que el cliente regrese con una mente más abierta la próxima vez.
Elija las herramientas adecuadas para el trabajo
Si lo único que tienes es un martillo, todo parece un clavo.
A menudo, los desarrolladores que aprenden solo una tecnología se apresuran a aplicarla a cada problema que encuentran. Como era de esperar, este tipo de enfoque conduce a resultados subóptimos. En cambio, cuando afrontes un nuevo problema, haz una pausa y piensa si las herramientas que tienes a tu disposición son realmente adecuadas para este tipo de trabajo. Si tienes dudas, investiga un poco y elabora una lista de posibles alternativas superiores. Para hacerlo más fácil, compila una lista de preguntas y evalúa diferentes opciones una por una. Las preguntas pueden ser diferentes para cada evaluación, pero pueden ir del siguiente modo:
A menudo, los desarrolladores que aprenden sólo una tecnología se apresuran a aplicarla a cada problema que encuentran. Como era de esperar, este enfoque conduce a resultados subóptimos. En cambio, cuando esté trabajando en un problema nuevo, deténgase y piense si las herramientas que tiene son realmente adecuadas para el trabajo. Si tiene dudas, investigue y cree una lista de alternativas que podrían ser mejores. Para hacerlo más fácil, escribe una lista de preguntas y evalúa las diferentes opciones una por una. Las preguntas pueden ser diferentes para cada evaluación, pero pueden verse así:
-
¿Qué plataformas o dispositivos debe soportar? ¿Qué plataformas o dispositivos debe soportar?
-
¿Cuáles son los requisitos no funcionales, como el rendimiento o el uso de memoria? ¿Cuáles son los requisitos no funcionales, como el rendimiento o el uso de memoria?
-
¿Comprar una licencia es una opción o necesita algo gratuito o de código abierto? ¿Comprar una licencia es una opción o necesita algo gratuito o de código abierto?
-
¿La solución proporciona todo lo que necesita listo para usar o tendrá que escribir algo usted mismo? ¿La solución proporciona todo lo que necesita listo para usar o tendrá que escribir algo usted mismo?
-
¿Tiene alguna otra limitación, como políticas de la empresa, consideraciones legales o falta de especialistas en su equipo? ¿Tiene otras limitaciones, como políticas de la empresa, consideraciones legales o falta de especialistas en su equipo?
Responder estas preguntas debería ayudarle a estructurar las opciones en su cabeza y reducirlas a una lista corta de candidatos. Responder estas preguntas debería ayudarle a estructurar las opciones en su cabeza y reducirlas a una lista corta de candidatos.
Experimente con seguridad Experimente con seguridad
Entonces, ¿qué sucede si ninguna de las cosas que conoce se adaptan particularmente bien a su caso y desea probar algo nuevo? El hecho de que no experimentes algo no significa automáticamente que esté fuera de discusión. Simplemente significa que debes considerar algunas cosas adicionales: Entonces, ¿qué sucede si nada de lo que sabes funciona particularmente bien para ti y quieres probar algo nuevo? Sólo porque no hayas experimentado algo no significa que sea imposible. Simplemente significa que debes considerar algunas cosas adicionales:
¿Tiene suficiente tiempo para prepararse? Si el cronograma del proyecto no es estresante, puede aprender todo lo posible antes de comenzar la implementación y continuar con el resto a lo largo del camino. O al menos adopte el enfoque de “fingir hasta lograrlo” y convencer al cliente de que sabe lo que está haciendo. ¿Tienes suficiente tiempo para prepararte? Si el cronograma del proyecto no es estresante, puede aprender todo lo que pueda antes de comenzar la implementación y aprender el resto a lo largo del camino. O al menos adopte un enfoque de “finge hasta lograrlo” y haga que sus clientes crean que usted sabe lo que está haciendo.
Identifique las cosas que necesita probar primero. Adopte el enfoque de “fallar rápidamente” e identifique las cosas cruciales que necesita evaluar antes de poder concluir el experimento. ¿Tienes dudas sobre el rendimiento de un sistema? Construya un prototipo mínimo y ejecute una prueba de carga. ¿No estás seguro acerca de una biblioteca en particular o de la integración con un servicio externo? Implemente eso por separado y luego construya el resto. Comience por determinar qué se debe probar. Utilice un enfoque de “fallo rápido” para identificar los factores clave que deben evaluarse antes del final del experimento. ¿Tiene preguntas sobre el rendimiento de su sistema? Cree un prototipo mínimo y ejecute pruebas de carga. ¿No estás seguro acerca de una biblioteca específica o de la integración con un servicio externo? Implemente eso individualmente y luego construya el resto.
Tenga en cuenta que seguir este camino sigue siendo arriesgado tanto para usted como para su cliente, y deben ser conscientes tanto de los riesgos como de los beneficios potenciales. Después de todo, una investigación de dos semanas que podría ahorrar meses de trabajo a largo plazo parece un buen negocio. Incluso si el experimento falla, sólo perderás dos semanas. Cuanta más confianza tengas con tu cliente, más probabilidades habrá de que acepte algo como esto. Recuerde, hacer esto es riesgoso tanto para usted como para su cliente, y ellos deben ser conscientes de los riesgos y beneficios potenciales. Después de todo, una encuesta de dos semanas podría ahorrar meses de trabajo a largo plazo, lo que parece un buen negocio. Incluso si el experimento falla, sólo habrás perdido dos semanas. Cuanta más confianza tengas en tus clientes, más probabilidades habrá de que acepten algo como esto.
Construir sobre los hombros de gigantes Párate sobre los hombros de gigantes
Reinventar la bicicleta a menudo conduce a resultados extraños. Reinventar la bicicleta a menudo conduce a resultados extraños.
El personal de TI suele tener dos características comunes: somos inventivos y disfrutamos de nuestro trabajo. Esto parece algo bueno, pero tiene un efecto secundario incómodo: tendemos a encontrar nuestras propias soluciones a problemas que ya se han resuelto antes. Entonces, cuando nos enfrentamos a la elección de usar un marco, biblioteca o servicio o implementarlo por nuestra cuenta, tendemos a elegir lo último. Y esto nos lleva al inútil viaje de reinventar la rueda. Algunas de las creencias erróneas comunes que conducen a esto son: Las personas de TI suelen tener dos características en común: somos creativos y disfrutamos de nuestro trabajo. Esto puede parecer algo bueno, pero tiene un efecto secundario incómodo: tendemos a encontrar nuestras propias soluciones a problemas que ya se han resuelto antes. Por lo tanto, cuando nos enfrentamos a la elección de utilizar un marco, biblioteca, servicio o implementarlo nosotros mismos, tendemos a elegir lo último. Esto nos coloca en un viaje inútil para reinventar la rueda. Algunas creencias erróneas comunes que conducen a este resultado son:Implementar algo usted mismo es más fácil que aprender una solución de terceros. Si bien esta puede ser una razón perfectamente válida, es importante no simplificar demasiado la tarea en cuestión. A menudo, algo parece simple al principio pero se vuelve mucho más difícil con el progreso. Con el tiempo, podría terminar pasando mucho tiempo manejando errores y casos extremos que alguien podría haber manejado por usted. Es más fácil hacerlo usted mismo que aprender soluciones de terceros. Si bien esta puede ser una razón perfectamente válida, es importante no simplificar demasiado la tarea en cuestión. A menudo, las cosas parecen fáciles al principio pero se vuelven más difíciles a medida que avanzan. Es posible que acabe dedicando mucho tiempo a lidiar con errores y casos extremos que otra persona podría manejar por usted.
Esta solución hace más cosas de las que necesito. A menos que haya razones específicas por las que esto sea algo malo, como aumentar el tamaño del artefacto resultante, agregar vulnerabilidades potenciales o ralentizar considerablemente la compilación, esto no suele ser algo malo. Es posible que acabes necesitándolo más tarde. Por otro lado, agregar una biblioteca completa para usar solo una función puede ser excesivo. Esta solución hace más de lo que necesito. Por lo general, esto no es algo malo a menos que exista una razón específica por la cual es malo, como aumentar el tamaño de los artefactos producidos, agregar errores potenciales o ralentizar significativamente la compilación. Es posible que lo necesite más tarde. Por otro lado, agregar una biblioteca completa para usar solo una función puede ser excesivo.
Podemos hacerlo mejor. Aunque hay algunos proyectos exitosos que comenzaron con estas palabras, no suele ser así. Las soluciones de calidad de terceros son mantenidas por equipos que tienen experiencia y recursos dedicados a resolver este problema en particular. Para competir con ellos es necesario poder invertir aún más. La mayoría de los proyectos no tienen ni los recursos ni la necesidad para hacerlo. Podemos hacerlo mejor. Si bien hay algunos proyectos exitosos que comienzan con estas palabras, generalmente ese no es el caso. Las soluciones de terceros de alta calidad son mantenidas por equipos con la experiencia y los recursos para resolver este problema específico. Para competir con ellos, es necesario poder invertir más. La mayoría de los proyectos no tienen ni los recursos ni la necesidad para hacerlo.
La propiedad del código y el mantenimiento a largo plazo se convertirán en un problema. Algunas personas temen que si opta por una solución de terceros, corre el riesgo de que el proyecto en algún momento quede abandonado o inutilizable por cualquier motivo. sobre si vale la pena correr el riesgo. La propiedad del código y el mantenimiento a largo plazo se convertirán en un problema. A algunas personas les preocupa que, si optan por una solución de terceros, puedan abandonar o no poder utilizar el proyecto por una razón u otra en algún momento. El riesgo de bloqueo del producto es real y se debe considerar una posible estrategia de mitigación. Si se trata de un proyecto de código abierto, ¿es posible que lo desarrolle y mantenga usted mismo? O si es un proyecto privado ¿cuánto costará reemplazarlo? Con base en estos aportes, puede tomar una decisión consciente sobre si vale la pena correr el riesgo.
Aprenda mediante la reimplementación
Hay otro lado de esta historia. Reimplementar algo ustedes mismos es en realidad una excelente manera de aprender. Si bien escribir su propio marco para un proyecto de producción casi siempre es una mala idea, crearlo como ejercicio de aprendizaje puede resultar muy valioso. Qué mejor manera de familiarizarse con los problemas que resuelve analizando los mismos problemas. No profundice demasiado en la madriguera del conejo, una implementación cruda y simplificada será suficiente para comprender la situación. Hay otro lado de esta historia. Reimplementar tus propias cosas es en realidad una excelente manera de aprender. Si bien escribir su propio marco para proyectos de producción casi siempre es una mala idea, crearlo como ejercicio de aprendizaje puede resultar muy valioso. ¿Qué mejor manera de familiarizarse con el problema que resuelve intentando resolver el mismo problema? Sin profundizar demasiado, una implementación aproximada simplificada será suficiente para darle una idea de la situación.
Mientras lo hace, no dude en echar un vistazo a las fuentes de proyectos similares. Estudiar el código de proyectos de código abierto le permitirá beneficiarse de la experiencia de desarrolladores más experimentados. Mientras lo hace, no dude en consultar fuentes de proyectos similares. Estudiar el código de un proyecto de código abierto le permite beneficiarse de la experiencia de desarrolladores experimentados.
Trabaja en tu forma de trabajar Aprende cómo trabajas

Buscar mejoras no sólo en los aspectos tecnológicos, sino también metodológicos. Al igual que el software optimizado y diseñado correctamente, un flujo de trabajo bien establecido le permitirá trabajar con menos esfuerzo y estrés y, al mismo tiempo, producir mejores resultados. Establecer un proceso de trabajo eficaz y eficiente no es una tarea fácil y existen numerosos libros y materiales disponibles sobre este tema. Pero para empezar, considere las siguientes áreas de mejora: Esforzarse por mejorar no sólo en términos de tecnología, sino también en términos de métodos. Al igual que el software optimizado y diseñado correctamente, un flujo de trabajo sólido le permitirá trabajar con menos esfuerzo y estrés y, al mismo tiempo, producir mejores resultados. Establecer un flujo de trabajo eficaz y eficiente no es una tarea fácil y existen muchos libros y materiales sobre el tema. Pero primero, considere las siguientes áreas de mejora:Metodologías de gestión de equipos y proyectos. Dado que la mayoría de nosotros trabajamos en equipos, es importante adoptar un proceso que mejore la colaboración y establezca un ritmo de trabajo común para todos. El movimiento ágil en el desarrollo de software ha dado lugar a una serie de metodologías ampliamente adoptadas, como Scrum o Kanban. Ayudan a organizar la estructura general del trabajo, pero no cubren todo. Existen otras metodologías que le ayudan a hacer estimaciones, priorizar problemas, mejorar la comunicación, etc. Deberá identificar las áreas con las que tiene dificultades y buscar las mejores prácticas que le ayuden a abordar sus dificultades. Métodos de gestión de equipos y proyectos. Dado que la mayoría de nosotros trabajamos en equipos, es importante adoptar procesos que mejoren la colaboración y establezcan un ritmo de trabajo común para todos. El movimiento ágil en el desarrollo de software ha dado lugar a muchas metodologías ampliamente adoptadas, como Scrum o Kanban. Ayudan a organizar la estructura general del trabajo, pero no lo cubren todo. Hay otras formas de ayudarle a realizar evaluaciones, priorizar problemas, mejorar la comunicación y más. Debe identificar las áreas con las que tiene dificultades y buscar las mejores prácticas que le ayuden a resolverlas.
Procesos personales. Como una orquesta, un equipo eficaz debe tener el mismo ritmo, pero eso no significa que todos deban trabajar de la misma manera. Cada persona tiene sus propias preferencias y debe trabajar de una forma que le haga más productivo. Por ejemplo, a muchas personas no les gusta que las molesten durante horas mientras codifican, pero a mí, personalmente, me gusta trabajar en períodos cortos de una o dos horas con descansos entre ellos (una versión menos estricta de la técnica pomodoro). Tampoco me gusta trabajar en casa para evitar distracciones relacionadas con el hogar y prefiero trabajar desde una oficina o una cafetería. Descubra qué funciona para usted y cúmplalo, pero también asegúrese de que sus hábitos no creen problemas a otros miembros del equipo. proceso personal. Al igual que una orquesta, un equipo eficaz debe tener el mismo ritmo, pero eso no significa que todos tengan que trabajar de la misma manera. Cada uno tiene sus propias preferencias y debe trabajar de una manera que los haga más eficientes. Por ejemplo, a muchas personas no les gusta que las interrumpan durante horas mientras codifican, pero a mí personalmente me gusta trabajar en períodos cortos de 1 a 2 horas con un descanso entremedio (esta es una versión menos rigurosa de la Técnica Pomodoro). Tampoco me gusta trabajar desde casa para evitar distracciones familiares, prefiero trabajar en una oficina o cafetería. Encuentre lo que funcione para usted y manténgalo, pero también asegúrese de que sus hábitos no causen problemas a otros miembros del equipo.
Prácticas de ingeniería. Muchas prácticas se encuentran en la frontera entre tecnología y metodología y se centran en mejorar el proceso de desarrollo real. Por ejemplo, el desarrollo basado en pruebas y el desarrollo basado en comportamiento ayudan a mantener su código base bien estructurado y probado. Las revisiones de código ayudan a reducir los defectos en el código y también a difundir el conocimiento en el equipo. La integración continua y la entrega continua garantizan un proceso de implementación más fácil y seguro. Utilice estas prácticas en combinación con otras metodologías organizativas para lograr los máximos resultados. Práctica de Ingeniería. Muchas prácticas se sitúan en los límites de la tecnología y los métodos, centrándose en mejorar el proceso de desarrollo real. Por ejemplo, el desarrollo basado en pruebas y el desarrollo basado en comportamiento ayudan a mantener el código base bien estructurado y probado. Las revisiones de código ayudan a reducir los defectos en el código y difundir el conocimiento entre el equipo. La integración continua y la entrega continua garantizan un proceso de implementación más fácil y seguro. Utilice estas prácticas junto con otros métodos organizativos para lograr los máximos resultados.
Recuerde que no existe un proceso que funcione para todos; debe probarlo en su propio entorno. Además, asegúrese de comprender el proceso completamente e implementarlo correctamente. Busque asesoramiento de equipos que ya hayan pasado por el proceso y aproveche su experiencia. No descuides el software y las herramientas materiales que te ayudarán a adoptar un proceso. hacer una evaluación de si las cosas han mejorado. Tenga en cuenta que no existe un proceso único para todos y deberá experimentar en su propio entorno. Además, asegúrese de comprender completamente el proceso e implementarlo correctamente. Busque asesoramiento de equipos que hayan pasado por este proceso y se hayan beneficiado de su experiencia. No pase por alto el software y las herramientas materiales que le ayudarán a adoptar su proceso. Obtenga un verdadero tablero Kanban y una plataforma moderna para entrega continua. Adoptar nuevos procesos requiere esfuerzo e incluso puede resultar en pérdidas de productividad a corto plazo. Dale algo de tiempo y evalúa si las cosas han mejorado.
Eliminar obstáculos Eliminar obstáculos
Hay que decir algo aparte sobre cómo abordar los obstáculos. Es un error común descuidar pequeñas molestias que pueden no parecer importantes pero que en realidad pueden tener un efecto tóxico en tu trabajo. ¿Su diseñador de producto está sentado en una habitación o edificio separado? Esto significa que se necesita un poco más de esfuerzo para venir y tener una conversación y algunas cosas no se discutirán. ¿Es difícil escribir un nuevo examen? Entonces muchas cosas no se probarán. Hay una cosa más que decir acerca de abordar los obstáculos. Es un error común ignorar pequeñas molestias que pueden parecer sin importancia pero que en realidad pueden tener un impacto perjudicial en su trabajo. ¿Los diseñadores de sus productos se sientan en una habitación separada o en un edificio? Esto significa que debes esforzarte más en hablar con ellos y algunas cosas no se discutirán. ¿Es difícil redactar un nuevo examen? Entonces muchas cosas no se probarán.Ninguna de estas cosas es particularmente peligrosa por sí sola, pero tienden a acumularse y causar graves consecuencias. Y lo malo es que a menudo no los notas hasta que ya es demasiado tarde. Especialmente cuando siempre hay peligros más graves que abordar. Recuerde la fábula sobre la rana hirviendo y la noción de normalidad progresiva. Ninguna de estas cosas es particularmente peligrosa por sí sola, pero a menudo se acumulan y causan graves consecuencias. La peor parte es que a menudo no los notas hasta que es demasiado tarde. Especialmente cuando siempre hay peligros más graves que afrontar. Recuerde la parábola de la rana hirviendo y el concepto de normalidad reptante.
Mantente alerta y lucha contra estas cosas desde la raíz antes de que te afecten. Esté atento y luche contra estas cosas hasta la médula antes de que le sucedan a usted.
Centrarse en los fundamentos Centrarse en los fundamentos
Los conceptos fundamentales son los pilares de su carrera.
La TI es una industria que avanza extremadamente rápido. Cada semana se lanzan al mercado nuevas herramientas. Ya mencioné el infame síndrome de “fatiga de JavaScript” en mi publicación anterior. Muchos desarrolladores se han sentido estresados y obligados a reevaluar su tecnología JS con cada nuevo proyecto y eso los volvió locos. De hecho, estar siempre al límite puede ser un desafío, pero hay un par de ideas que pueden hacerlo más fácil. Esta es una industria que avanza muy rápidamente. Cada semana se lanzan al mercado nuevas herramientas. Ya mencioné el infame síndrome de “fatiga de JavaScript” en mi último artículo. Muchos desarrolladores se sienten presionados a reevaluar su pila JS con cada nuevo proyecto y eso los vuelve locos. Sí, es un desafío estar siempre al límite, pero hay algunas ideas para hacerlo más fácil.
En primer lugar, céntrese en los fundamentos. Aunque las nuevas tecnologías aparecen con bastante frecuencia, los nuevos conceptos fundamentales son mucho más raros. Cuando aprenda algo nuevo, asegúrese de comprender las ideas subyacentes que conducen a esta implementación. Lo más probable es que estas ideas también se utilicen en otros proyectos y, una vez que encuentre algo similar, le resultará más fácil comprenderlo. De manera similar, las ideas de Redux llegaron a Angular, y se implementó la gestión de estado reactivo de Angular para React as MobX. Primero, concéntrese en los fundamentos. Aunque con frecuencia aparecen nuevas tecnologías, rara vez surgen nuevos conceptos fundamentales. Cuando aprenda algo nuevo, asegúrese de comprender las ideas básicas que llevaron a esta implementación. Lo más probable es que estas ideas también se utilicen en otros proyectos, lo que facilitará su comprensión una vez que encuentre algo similar. Por ejemplo, los marcos de interfaz de usuario de JavaScript modernos se basan en componentes y una vez que comprenda cómo construir aplicaciones orientadas a componentes utilizando React, podrá utilizar esta experiencia cuando trabaje con Angular. De manera similar, la idea de Redux también se introdujo en Angular, que implementa una gestión de estado receptiva para React como MobX.
Tómese un tiempo para familiarizarse con los libros clásicos sobre temas de patrones comunes en el desarrollo de software, como “Enterprise Integration Patterns” de Gregor Hohpe y Bobby Woolf, los famosos “Design Patterns: Elements of Reutilizable Object-Oriented Software” de Gang of Four o diferentes trabajos de Martin Fowler. Aunque algunas de las cosas descritas en los libros pueden estar desactualizadas, puedes usarlas para aprender cómo evolucionaron los patrones hasta hoy. Dedique algún tiempo a familiarizarse con libros clásicos sobre temas de patrones comunes en el desarrollo de software, como Enterprise Integration Patterns de Gregor Hohpe y Bobby Woolf, y el famoso libro de Martin Fowler Design Patterns: Elementos de software reutilizable orientado a objetos. Si bien parte del contenido descrito en el libro puede estar desactualizado, puede usarlos para comprender cómo evolucionó el patrón hasta donde está hoy.
En segundo lugar, no se apresure a aprender sobre todas las novedades que existen. Entiendo que es tentador seguir cada novedad que aparece en Hacker News, pero muchas de estas cosas son solo ruido. Más bien, esté atento a las cosas que han estado dando vueltas en la comunidad desde hace algún tiempo y que han madurado más allá de las exageraciones de las discusiones iniciales. No cedas ante FOMO. Si prestas al menos un poco de atención a lo que sucede, nada importante pasará desapercibido. En segundo lugar, no se apresure a aprender todo lo nuevo. Sé que es tentador seguir cada novedad que aparece en Hacker News, pero gran parte es solo ruido. En su lugar, concéntrese en cosas que han existido en la comunidad durante un tiempo y que han madurado a partir de las discusiones iniciales. No cedas al “control social”. Si al menos prestas atención a lo que sucede, nada importante pasará desapercibido.
Consejos de bonificación Consejos de bonificación

Ya hemos hablado mucho en este artículo, pero hay algunos otros puntos que me gustaría resaltar antes de terminar. Estos pocos consejos se centran más en tus rasgos personales que en los profesionales, pero sigo creyendo que tienen un gran impacto en tu vida laboral. Hemos cubierto mucho en este artículo, pero antes de terminar, me gustaría resaltar algunos puntos adicionales. Estos consejos son más personales que profesionales, pero sigo creyendo que pueden tener un gran impacto en tu vida laboral.### Compartir el conocimiento Compartir conocimiento A menudo la gente piensa que acumular conocimientos valiosos los hará indispensables. Tener personas como esta en su equipo lo expone al “factor bus” y puede ponerlo en una situación difícil si dicha persona abandonara el proyecto. Si usted es una de estas personas, considere que además de hacerlo indispensable, su experiencia también lo hace no promocionable y “no vacacional”. Es posible que se pierda otras oportunidades profesionales en su organización porque está atado a este rol. En su lugar, comparta el conocimiento con sus colegas, si es posible, delégueles parte de su trabajo y utilice esta colaboración para construir cosas aún mejores además de su trabajo. La gente suele creer que almacenar conocimientos valiosos los hará indispensables. Tener una persona así en su equipo lo expone al “factor bus” y puede causarle problemas si dicha persona abandona el proyecto. Si eres una de estas personas, considera que además de hacerte indispensable, tus habilidades profesionales también te harán no elegible para ascensos y “no podrás tomarte tiempo libre”. Es posible que se pierda otras oportunidades profesionales dentro de la organización porque está atrapado en este rol. En su lugar, comparta sus conocimientos con sus colegas, delégueles partes de su trabajo si es posible y utilice esa colaboración para construir algo más grande además de su trabajo.
No te culpes a ti mismo ni a los demás
Recuerdo que hace mucho tiempo tuvimos un incidente en un proyecto que fue por mi error. Logramos recuperarnos del incidente bastante rápido y recuerdo que el cliente me dijo: Recuerdo que hace mucho tiempo nos pasó algo en un proyecto y fue culpa mía. Nos recuperamos del incidente muy rápidamente y recuerdo que el cliente me dijo:
No se juzga a un equipo por cómo se desempeña cuando todo va según lo planeado, sino por cómo opera cuando la mierda llega al fanático.
No importa lo bueno que seas, a veces las cosas salen mal y en esos momentos es importante poder mantener la calma y manejar la situación con dignidad y respeto mutuo. Una vez apagado el incendio, no se concentre en encontrar al chivo expiatorio. Esto no le ayudará a evitar errores en el futuro, pero generará miedo y dudas en toda la empresa. Mejore su sistema o flujo de trabajo para evitar este problema en el futuro. No importa lo bueno que seas, a veces las cosas salen mal y en esas situaciones es importante mantener la calma y manejar la situación con dignidad y respeto mutuo. Una vez que se apague el fuego, no se concentre en encontrar un chivo expiatorio. Esto no le ayudará a evitar errores en el futuro, pero llenará de miedo y dudas a toda la empresa. En su lugar, realice una autopsia conjunta con todas las partes afectadas. Concéntrese en la causa del problema, descubra por qué ocurrió y luego piense en formas de mejorar su sistema o flujo de trabajo para evitar este problema en el futuro.
No seas idiota No seas idiota
La comunidad de desarrolladores es algo curioso. Por un lado, vemos a muchas personas motivadas y de mente abierta que contribuyen a la comunidad trabajando en proyectos de código abierto, dando discursos en conferencias o escribiendo artículos. Por otro lado, nos encontramos con personas que trollean nuevas ideas, faltan al respeto a los recién llegados y demuestran un comportamiento grosero con todos los que los rodean. No seas una de esas personas. Sé amable y difunde el amor. La comunidad de desarrolladores es algo curioso. Por un lado, vemos muchas personas activas y abiertas que contribuyen a la comunidad a través de proyectos de código abierto, hablando en conferencias o escribiendo artículos. Por otro lado, también nos encontramos con personas que desprecian nuevas ideas, faltan el respeto a los recién llegados y se comportan de manera grosera con quienes los rodean. No seas esa persona. Sea amable con los demás y difunda el amor.
Muchos consejos profesionales se pueden resumir en sólo cuatro palabras.
Concluyendo Concluyendo
Lo mejor de nuestro trabajo es que no tiene límite. Siempre hay nuevos caminos que recorrer y dragones que matar. Ya sea que esté recién comenzando su viaje o sea un profesional experimentado, tenga en cuenta estas cosas. Deberían ayudarle a encontrar su camino y convertirse en un mejor desarrollador con cada paso que dé. Lo mejor de nuestro trabajo es que no hay límites. Siempre hay nuevos caminos que tomar, siempre nuevos dragones que matar. Ya sea que recién esté comenzando su carrera o sea un profesional experimentado, tenga en cuenta estas cosas. Deberían ayudarle a encontrar su propio camino y convertirse en un mejor desarrollador en cada paso del camino.
¿Tiene algún consejo diferente para compartir con los demás? ¡No dudes en publicarlo en los comentarios e iniciar una discusión! ¿Tiene alguna sugerencia diferente que pueda compartir con otros? ¡No dudes en publicarlos en los comentarios e iniciar una discusión!
¿Estás interesado en aprender sobre desarrollo web o mejorar aún más tus habilidades? Consulte devtrails.io para obtener una colección de guías útiles que le ayudarán a entender el desarrollo web. ¿Estás interesado en aprender sobre desarrollo web o mejorar aún más tus habilidades? Echa un vistazo a los devtrails. El conjunto de guías útiles de io para ayudarle a orientarse en el desarrollo web.
Artículo de: https://medium.com/devtrailsio/how-to-become-a-better-software-developer-dd16072c974e
What to read next
Want more posts about Translation?
Posts in the same category are usually the best next step for reading more on this topic.
View same categoryWant to keep following #Translation?
Tags are useful for related tools, specific problems, and similar troubleshooting notes.
View same tagWant to explore another direction?
If you are not sure what to read next, return to the homepage and start from categories, topics, or latest updates.
Back home