Todas las preguntas que la gente ha hecho sobre si eres realmente lento o no es una tontería. Convertirse en un programador más rápido sin sacrificar la calidad siempre es un buen objetivo, no importa cuán lento o rápido sea. Este es mi objetivo número 1 como programador y nunca terminaré. Siempre trato de ser más rápido sin sacrificar la calidad, estoy obsesionado con eso. Esto es lo que me ha funcionado hasta ahora en el orden de la ayuda, junto con algunas ideas experimentales al final:
1) Nunca dejes de aprender: aprende todo lo que puedas sobre la programación y el uso de las computadoras en general. Encuentra áreas en las que eres débil y apréndelas. Incluso si parece completamente ajeno a su trabajo y C #, le garantizo que si lo está buscando, a menudo encontrará formas de aplicarlo a lo que hace. El aprendizaje también se trata de la experiencia, así que no solo lea cosas, sino que pruébelas y amplíe sus habilidades. Si está acostumbrado a usar Windows, pruebe Unix o viceversa. Si normalmente desea utilizar las herramientas de línea de comandos y los editores de texto de IDE, o viceversa. Si escuchas de una herramienta o tecnología de la que no has oído hablar antes o no sabes mucho, no cedas ante la tentación de seguir adelante. ¡Búscalo! No tenga miedo de pensar fuera de la caja y aprender nuevas tecnologías experimentales que otros dicen que no son prácticas;
2) Divida los proyectos: intente dividir sus proyectos en mini proyectos. Intente hacer una nueva versión todos los días o una vez cada pocos días como máximo. Pregúntese "¿Cuál es la cantidad mínima de funcionalidad que puedo liberar, y aún así liberar algo que sea útil para el usuario". Esta es una habilidad que aprenderás al hacerlo. Es posible que deba convencer a sus gerentes para que le permitan hacer esto, pero generalmente estarán contentos con los resultados con bastante rapidez. Al hacer esto, comenzará a notar que las cosas que creía que eran esenciales para su función son en realidad funciones adicionales que se pueden desarrollar más adelante. Esto le permite a usted y a sus gerentes priorizar solo las funciones más importantes en lugar de todas las funciones relacionadas con la que está trabajando. Esto le permite pensar más rápido manteniendo su mente clara y enfocada. A su vez, legítimamente programará más rápido. También es probable que sus gerentes, o al menos los gerentes de su gerente, perciban que ahora está programando incluso más rápido de lo que realmente es porque está obteniendo más lanzamientos. Otro gran beneficio de esto es que será mucho mejor para estimar cuánto tardarán en completarse las versiones, y sus gerentes lo amarán por esto. Como ya está haciendo muchas pruebas automatizadas, no debería tener problemas para realizar lanzamientos frecuentes que sean estables. Sin embargo, es posible que necesite reforzar su sistema de construcción automatizado. Recomiendo leer el libro Entrega continua en la serie Martin Fowler. Es una lectura difícil y porque es extremadamente repetitiva, pero sigue siendo muy útil. También es probable que los gerentes perciban que ahora está programando incluso más rápido de lo que realmente es porque está obteniendo más versiones. Otro gran beneficio de esto es que será mucho mejor para estimar cuánto tardarán en completarse las versiones, y sus gerentes lo amarán por esto. Como ya está haciendo muchas pruebas automatizadas, no debería tener problemas para realizar lanzamientos frecuentes que sean estables. Sin embargo, es posible que necesite reforzar su sistema de construcción automatizado. Recomiendo leer el libro Entrega continua en la serie Martin Fowler. Es una lectura difícil y porque es extremadamente repetitiva, pero sigue siendo muy útil. También es probable que los gerentes perciban que ahora está programando incluso más rápido de lo que realmente es porque está obteniendo más versiones. Otro gran beneficio de esto es que será mucho mejor para estimar cuánto tardarán en completarse las versiones, y sus gerentes lo amarán por esto. Como ya está haciendo muchas pruebas automatizadas, no debería tener problemas para realizar lanzamientos frecuentes que sean estables. Sin embargo, es posible que necesite reforzar su sistema de construcción automatizado. Recomiendo leer el libro Entrega continua en la serie Martin Fowler. Es una lectura difícil y porque es extremadamente repetitiva, pero sigue siendo muy útil. y tus gerentes te amarán por esto. Como ya está haciendo muchas pruebas automatizadas, no debería tener problemas para realizar lanzamientos frecuentes que sean estables. Sin embargo, es posible que necesite reforzar su sistema de construcción automatizado. Recomiendo leer el libro Entrega continua en la serie Martin Fowler. Es una lectura difícil y porque es extremadamente repetitiva, pero sigue siendo muy útil. y tus gerentes te amarán por esto. Como ya está haciendo muchas pruebas automatizadas, no debería tener problemas para realizar lanzamientos frecuentes que sean estables. Sin embargo, es posible que necesite reforzar su sistema de construcción automatizado. Recomiendo leer el libro Entrega continua en la serie Martin Fowler. Es una lectura difícil y porque es extremadamente repetitiva, pero sigue siendo muy útil.
3) Usa la técnica de pomodoro y adapta / cambia lo que no funciona para ti. Si combina esto con el número 2 en esta lista, obtendrá un ENORME impulso de productividad.
4) Aprende Vim. Incluso si termina utilizando estos comandos dentro de Visual Studio a través de ViEmu, o desde dentro de Eclipse a través de un complemento, o desde dentro de Emacs, obtendrá productividad. La mejor manera de aprender Vim es comenzar a usarlo y forzarse nunca a hacerlo (deshabilitarlo / volver a sus herramientas anteriores) hasta que lo haya dominado. Al principio es doloroso, pero nunca querrás retroceder, e incluso encogerte cuando tienes que trabajar sin él. Algunos dirían que esto no aumentará su velocidad por mucho. Pero más rápido es más rápido, especialmente cuando leer y modificar código es LO QUE HACEMOS, y ocasionalmente me he ahorrado mucho tiempo con esto.
5) Este último no se recomienda necesariamente ya que no estoy seguro de que sea una buena idea, y en realidad puede disminuir su productividad, pero lo superaré de todos modos. Puede intentar hacer más pruebas de aceptación y menos pruebas unitarias, o tal vez al menos asegurarse de hacer algunas pruebas de aceptación. He tenido éxito con SpecFlow, pero sospecho que hay algo mejor por ahí. Incluso escribir las especificaciones puede ser bastante técnico, por lo que es posible que desee que su gerente / cliente escriba primero una versión preliminar que cambie significativamente, o puede escribir todo usted mismo y hacer que lo lean y lo aprueben. Esto te ayudará con el número 2 de esta lista. Además, las pruebas de aceptación pueden ser más prácticas y requieren menos código que las pruebas unitarias. Esto no quiere decir que los reemplacen, diferentes herramientas para diferentes cosas.
6) Este es aún más experimental y controvertido. En realidad no lo he hecho, así que no puedo recomendarlo exactamente. Aprenda y use el Sistema de Meta Programación de JetBrains. Úselo para crear herramientas que su gerente / cliente usa para crear el software deseado por sí mismo. Incluso podría dejar de hacer pruebas unitarias y de aceptación si puede usar esto para crear herramientas que su gerente / cliente use para especificar el comportamiento de una manera muy directa y no complicada. La idea no es deshacerse del programador. Los programadores aún necesitarían agregar nuevas funciones a estas herramientas utilizadas por el cliente / gerente cada vez que ellos (las personas, no las herramientas) no puedan crear fácilmente alguna funcionalidad deseada. Creo que MPS u otras herramientas similares son el camino del futuro.