¿Cuánto debería importarme la calidad a expensas de la velocidad al crear software?

“Calidad” puede ser un término cargado. ¿Te refieres a permitir errores en tu código? No vayas tan lejos. ¿Estamos hablando de que el código no se puede mantener? No vayas tan lejos tampoco.

Pero hay ciertos aspectos de la programación que probablemente deberían omitirse para que el producto salga por la puerta. Tal vez hay opciones sobre cómo resolver un problema que, en un mundo ideal, podría abordarse mejor como un parámetro de configuración para que el usuario pueda elegir la mejor manera de ejecutar el código en su entorno. Pero suponga que tener estas opciones no es parte de la definición de su producto. Elija una opción, codifíquela y saque el producto por la puerta.

Tengo la intención de sacar el producto por la puerta porque cuanto antes salga, antes podrá ganar dinero. Y si el producto está haciendo dinero, podrá conservar su trabajo. OK, eso es un poco dramático, pero ese es el punto final: estás escribiendo software para ganar dinero y cuanto más demores tu lanzamiento, menos ganarás.

Quizás descubra más tarde que ese código opcional es una característica importante. Genial, agrégalo en ese momento. Pero mientras tanto, no perdiste el tiempo en una función que posiblemente nadie usaría, y sacaste el producto por la puerta.

La calidad lleva tiempo para crear, y el tiempo es dinero. Por lo tanto, su trabajo como desarrollador es bombear el código lo más rápido posible sin sacrificar la calidad .

Solo recuerde, casi siempre es más rápido tomarse su tiempo y hacer algo bien la primera vez, que hacerlo a través de algo con la intención de volver a arreglarlo adecuadamente más tarde.

Depende de la aplicación, pero si usted u otra persona planea mantener este software por un tiempo, está desperdiciando una gran parte de su tiempo futuro si simplemente prepara algo rápidamente ahora. Por lo tanto, definitivamente recomendaría tomarse el tiempo para organizar el software de una manera comprensible, a menos que sea algo rápido que esté escribiendo para un uso único. Del mismo modo, al depurar, tenga en cuenta que podría ser más fácil detectar errores ahora cuando el código aún está fresco en su cabeza, que dentro de un año cuando algo va mal pero no recuerda cómo funciona el código.

En términos de otros tipos de calidad, como cuántas funciones hay, creo que puede ser bueno comenzar de manera simple y hacer que algo funcione rápidamente para que no te atasques mucho antes de poder probar mucho. Pero esto realmente depende de la aplicación también.

Prioridades

Si tienes tiempo para construirlo bien, hazlo.

Construirlo correctamente significa construir con alta calidad, muchos comentarios, buena cobertura de prueba, facilidad de ampliación, etc. etc.

Si no tienes tiempo para hacerlo bien, te equivocaste.

Eso significa que es hora de la verdad y tomarás atajos.

Cuando tiene que hacer esto, siempre debe tener en cuenta el tiempo necesario para regresar y hacerlo bien, de lo contrario terminará en una pesadilla de codificación.

El código incorrecto no solo no está optimizado, lleva toneladas de tiempo descubrirlo, tiende a ser voluble, difícil de modificar y extender, y requiere mucho más tiempo para trabajar.

More Interesting

Cómo comenzar con proyectos que otros tienen código

¿Por qué los ingenieros continúan adoptando idiomas que no están estrictamente escritos?

¿Qué curso de evaluación de software es mejor para obtener más oportunidades de trabajo?

C # (lenguaje de programación): ¿Por qué Microsoft no contratará a algunos desarrolladores sólidos de la comunidad node.js / Python / Ruby y hará de Mono una versión completamente abierta y compatible oficialmente de .NET?

¿Cuáles son algunos casos de uso bueno y malo para modelos de concurrencia como subprocesos, actores y STM (Software Transactional Memory)? ¿Cuándo debo elegir uno sobre el otro?

Viniendo de un entorno de Operaciones, ¿es difícil obtener un papel haciendo DevOps? ¿Alguien sabe de personas que vienen de Operaciones / Soporte a Devops?

En el mercado laboral de la ingeniería de software, ¿qué piensan los empleadores sobre los certificados profesionales de las mejores universidades?

¿Cómo obtienes un trabajo de programación o una pasantía si eres estudiante de segundo año de CS pero no tienes experiencia? ¿Cómo elige un proyecto y establece objetivos para él?

¿Hay programadores que escriben código prácticamente libre de errores?

¿Bill Gates creó el mejor software de todos los tiempos?

¿Qué distribución de Linux es tan estable como Mac OS X?

En Boston, ¿Ruby on Rails se está volviendo menos popular que Django? Si es así, ¿por qué?

¿Existe una herramienta UML mejor que la estrella UML?

¿Cómo podría impulsar mi carrera como ingeniero de sistemas integrados en India?

¿Cómo se organizan las bases de código en GitHub?