A la redacción y gracias a Pablo me llega el siguiente tema interesante del que hago una traducción:
- Analítico – estructurado, claro, pensamiento crítico, solucionador de problemas
El software tiene que ver con la descomposición estructural y funcional. Pienso que el punto central de la inteligencia es ser analítico, por naturaleza, nutrido o forzado por la voluntad. La persona analítica considera una pregunta o un problema desde múltiples ángulos y elegirá el mejor enfoque general para luego descomponer el problema en sub-problemas. - Abstracto – capaz de comprender la abstracción y los patrones
El software es complejo, no se puede entender solo leyendo cada una de las líneas de código. Se entiende por medio de examinar su estructura, construir una teoría de cómo está modelado el código y entonces se puede verificar y cambiar el modelo. - Preciso – La habilidad de expresar algo de manera concisa y exacta
Algunos desarrolladores solo pueden explicar las cosas por medio de usar ejemplos, pero no por medio de los conceptos y patrones que yacen debajo de estos. Esto es aceptable, pero puede causar tropiezos porque quien procede asi tiene menor probabilidad de reconocer, comprender y aplicar patrones a niveles micro y marco del código. Un desarrollador que puede ser preciso al hablar (no necesariamente rápido o impresionante) desarrollará código más preciso y también podrá explicar mucho más fácilmente una técnica o requerimiento a otro desarrollador. - Establece prioridades y es práctico – la habilidad de reconocer lo que se debe hacer contra lo que se podria hacer
A menudo, los productos serán absolutamente exitosos si se entregan a tiempo. Un desarrollador práctico hace lo que se necesita, dejando listos algunos puntos de conexión y comentarios que sientan las bases preliminares del trabajo del día siguiente.El ser práctico también se manifiesta por el deseo de cumplir, completar y finalizar; nos dirige, nos anima a denifir lo que es éxito, nos ayuda a asignar prioridades sobre el camino y permanecer en ellas, enfocarnos en completar las tareas antes bien que «enchapar de oro» (entiéndase, poner bonito solo lo visible o exterior). - Idealista – el deseo de hacer las cosas bien.
Un desarrollador que es solo pragmático (práctico), puede ser en ocasiones perezoso. No solo desarrolla la funcionalidad de hoy, y aunque solo codifica el codigo de hoy, no piensa en el desarrollador que tendrá que mantener el código mañana. En cambio, el desarrollador idealista en realidad se preocupa sobre todas las calidades de lo que entrega y por ello:- Se asegura que los demas entiendan los requerimientos.
- Considera y posiblemente documenta los casos de prueba antes de que se escriba una línea de código.
- Escribe código claro y lo comenta adecuadamente. Continuamente «refactoriza» código de tal forma que el código común se concentra en métodos compartidos y luego en clases base o «helpers».
- Escribe pruebas unitarias para proteger a otros desarrolladores o «testers» de errores.
- De forma regular efectua pruebas «a mano» cuando las pruebas automáticas no son prácticas.
Si quieren leer la versión en inglés vayan aqui.