No escribo pruebas unitarias porque... (manual de excusas)
- Detalles
-
Publicado: Martes, 17 Agosto 2010 12:07
Siendo alguien que vive los beneficios de hacer TDD, creo profundamente en el desarrollo guiado por pruebas. Esta práctica agrega un nuevo nivel de calidad y madurez al desarrollo de software, y sin embargo todavía no es la técnica más usada en los proyectos de software. Cuando hay que elegir entre características, tiempo y calidad, siempre sufre la calidad. No queremos agregar tiempo extra para hacer pruebas, y tampoco queremos comprometer las características que vamos a entregar. Si no se pusieron como objetivo hacer TDD al iniciar el proeycto, es dificil hacerlo después.
Leer más...
Prácticas para mejorar la calidad del código
- Detalles
-
Publicado: Jueves, 03 Junio 2010 13:06
Hay muchísimas prácticas que podemos adoptar para mejorar la calidad de nuestro código. ¿Por dónde empezar? ¿Existe una lista única y completa? En este artículo veremos un pequeño listado de buenas prácticas, que nos pueden ayudar a comenzar ese largo camino que implica trabajar con más profesionalismo, mejorando los productos que desarrollamos.
Leer más...
¿Por qué un Enterprise Service Bus (ESB)?
- Detalles
-
Publicado: Miércoles, 12 Mayo 2010 03:00
Se ha hablado mucho en los últimos años sobre los ESB, los web services y el fenómeno SOA en general. Gartner pronosticó que SOA sería usado en más del 80% de los procesos de negocio y aplicaciones críticas que se desarrollen en 2010. Estamos en 2010 y mi percepción es que, al menos en España, aún no hemos llegado a esos porcentajes en lo que se refiere al despliegue de soluciones SOA. Lo que sí es cierto sin embargo es que el ascenso de SOA y los ESB como solución tecnológica parece imparable en la mayoría de organizaciones y sectores.
Leer más...
¿Sos inteligente o tonto?
- Detalles
-
Publicado: Lunes, 03 Mayo 2010 13:52
¿Cuál es la diferencia entre ser inteligente o ser tonto? Creo que podría resumirse en dos cosas: qué tan lejos en el futuro podés pensar, y qué tan rápido podés generar este pensamiento. Cuando alguien juega ajedrez, o poker, sus habilidades están determinadas por cuántas movidas puede pensar por adelantado. Cuánta historia pueden recordar, y así planificar el siguiente movimiento.
En el desarrollo de software, ¿qué tan lejos podés mirar? ¿Estás usando prácticas destructivas porque estás muy ocupado "terminando el trabajo"? ¿Estás ignorando buenas prácticas que podrían ahorrarte tiempo?
Leer más...
Las tres C de la arquitectura
- Detalles
-
Publicado: Viernes, 23 Abril 2010 17:25
En nuestro trabajo con clientes a menudo tenemos discusiones sobre la función de la arquitectura y el rol de los arquitectos. Estas discusiones ocurren porque la arquitectura no contribuye de forma visible a los objetivos organizacionales, y por lo tanto se la percibe como una molestia para los proyectos. Muchas discusiones se origina por la falta de entendimiento sobre el rol y el lugar de los arquitectos dentro de la organización. Hemos definido tres objetivos de la función de la arquitectura en organizaciones de TI: Las Tres C de la Arquitectura. Estas son: Conexión, Cohesión y Cambiabilidad. Al tomar estos conceptos como principios básicos de la arquitectura logramos enfocarnos en qué hacer y cómo posicionar a la arquitectura dentro de la organización.
Leer más...
Integración Continua para mantener el proyecto en rumbo
- Detalles
-
Publicado: Jueves, 22 Abril 2010 12:43
Hoy en día tenemos muchas herramientas que dicen limpiar de forma mágica nuestro código. Mueven, modifican, emprolijan y mágicamente resuelven todos nuestros problemas. Lamentablemente, como la mayoría ya sabe, escribir buen código lleva trabajo. No existen herramientas mágicas que puedan salvarnos (y no importa lo que nos digan los vendedores), pero si hay una herramienta que funciona muy bien para ayudarnos a mantenernos en forma.
Leer más...
Lista de comprobación para hacer TDD
- Detalles
-
Publicado: Miércoles, 31 Marzo 2010 19:02
El Desarrollo Guiado por Pruebas (o TDD) se suele describir como un ciclo de rojo-verde-refactor, que se repite continuamente, para ir agregando nuevas características o arreglar bugs. La siguiente lista de comprobación que comparte Giorgio Sironi contiene un grupo de preguntas que deberíamos hacernos a nosotros mismos mientras avanzamos por las fases de TDD, para no olvidarnos de la esencia de esta técnica.
Leer más...
Estándares de código... ¿para qué?
- Detalles
-
Publicado: Viernes, 26 Marzo 2010 14:17
Como desarrolladores, nuestro entregable es el código fuente, es lo que producimos, y por lo tanto debemos hacer que se vea bien. Pero, ¿qué significa "bien"? ¿Cómo debería verse? Podríamos armar debates interminables sobre el tema, y los resultados nos desilusionarían. No existe algo como el Mejor Estilo De Codificación.
Leer más...
El concepto de "terminado terminado"
- Detalles
-
Publicado: Viernes, 19 Marzo 2010 03:00
¿No estaría bueno si, una vez que termináramos una historia, nunca tuviéramos que volver a agarrarla? Esta es la idea detrás del "terminado terminado". Una historia no es un desparramo de código sin integrar, sin probar. La historia debe estar lista para ser desplegada.
Leer más...
¡Dejen de reportar errores! (y escriban pruebas automatizadas)
- Detalles
-
Publicado: Martes, 23 Febrero 2010 12:42
Los sistemas de gestión de errores (o "bug trackers") son cuellos de botella, y perpetúan el continuo idea y vuelta entre testers y desarrolladores, además de requerir de mucha documentación para mantenerlos.
Alberto Gutierrez comparte una interesante reflexión sobre cómo crear el mejor sistema de gestión de errores: ¡dejar de reportar errores y empezar a escribir pruebas automatizadas!
Leer más...
¿Qué es el código testeable?
- Detalles
-
Publicado: Martes, 16 Febrero 2010 14:51
¿Qué es el código "testeable"? ¿Cómo saber si mi código es testable o no? En los equipos ágiles se habla mucho sobre asegurarse de construir código testable, pero ¿qué significa exactamente? John Boal nos ayuda a definir este concepto con más precisión.
Leer más...