Ver por etiquetas

Difícil demostrar con números las ventajas de Pair Programming
ElBruno ha escrito un interesante artículo en su blog titulado “ [#ALM] DEMOSTRANDO CON NÚMEROS PORQUÉ ES CONVENIENTE REALIZAR PAIR PROGRAMMING ” en el que, mediante lo que considero un ejercicio de razonamiento, intenta demostrar el incremento que esta práctica puede generar en la productividad de un equipo con una configuración ficticia, aunque bastante común, de 2 Devs. Srs. y 4 Devs. Jrs.  Recomiendo su lectura (y además, es condición necesaria para entender de que se habla en esta entrada...
Management deficiente (I)
Introducción La historia del software está plagada de ejemplos de proyectos que fracasaron estrepitosamente, estos por lo general han excedido el presupuesto estimado, el esfuerzo estimado y el  tiempo estimado en muchas veces y si bien parece que la industria viene haciendo avances importantes en estos problemas, aún hoy es común ver u oír de proyectos que fallan de manera espectacular. Voy a introducir solo algunas de las razones de por qué esto sigue sucediendo, de cómo puede solucionarse...
Integración continua con Open Source en el mundo .Net
Actualmente tengo a cargo un proyecto en el que somos 13 desarrolladores en distintos lugares de Argentina y en Colombia. Por esta razón, lo primero que pensé es en armar un servidor de integración continua. Cuando lo planteé, la condición fue que no debía requerir licencias de software (salvo la de Windows). No tenía mucho tiempo para esta tarea así que fui a lo conocido: CruiseControl.Net, Subversion, MSBuild, NUnit, Wix, TortoiseSVN y un sin fin de scripts, xslts y herramientas propias. Hasta...
¿Cada cuanto se rompe el build?
En mi proyecto, luego de concientizar al equipo sobre la importancia de mantener el build siempre saludable, hemos pasado de tener un 71% de commits correctos a un 95% en solo 17 días. Sé que el número es bueno, y probablemente se deba a que la base de código no es grande, no obstante me gustaría saber si alguien tiene sus números para compartir. Otros puntos que estarían bueno saber son si usan TFS o alguna otra herramienta que no esté integrada, el tamaño del equipo de desarrollo, promedio de commits...
Ruidos y señales en nuestra industria
Voy a tomar prestado las palabras señal y ruido del campo de las telecomunicaciones para explicar una situación que nos afecta de cerca. Entendamos la palabra señal , en el contexto de esta entrada, como el mensaje, lo importante, lo esencial y como ruido lo indeseable, lo molesto, lo que encarece y entorpece al mensaje. La señal, o el mensaje en este caso, que deseamos transmitir, por lo general todos los que hemos estado en esto durante algún tiempo (y que nos hemos equivocado terriblemente una...
Otro ejemplo de DSL en el mundo real
Desarrollo un sistema para la planificación, ejecución y seguimiento de encuestas en el que uno de los requerimientos es poder crear encuestas de manera sencilla y veloz. Además las mismas deben seguir un workflow (algo informal) de revisión. Otro dato importante es que el cliente diseña encuestas que van desde aquellas con solo algunas pocas preguntas hasta esas otras que nos tienen todo un domingo respondiendo acerca de alguna ginebra o algún nuevo centro comercial. Para rematar debo decir que...
Resultados con TDD en Microsoft, IBM, HP y Ericsson
Las recientes experiencias en la industria confirman que para obtener mejoras sustanciales mediante pruebas unitarias es necesario incorporar TDD (Test-Driven Development) como práctica integral del desarrollo. Aunque TDD no es una práctica nueva, solo experiencias recientes en Microsoft, IBM, HP y Ericsson comprueban la efectividad y factibilidad de ésta en proyectos reales y de reputación mundial. Los números de los resultados en realmente asombrosos. Les recomiendo leer las siguientes publicaciones...
Como fracasar con las pruebas unitarias
Hace poco gravé un pequeños video en el que explicaba una realidad que he visto en muchos proyectos respecto de las pruebas unitarias. En síntesis lo que comentaba era que en esos proyectos, los beneficios de las pruebas unitarias no eran visibles mientras que los costos sí lo eran. En problema aparente era la calidad de las pruebas, pero en realidad, el problema de fondo es la estrategia de hacer las pruebas luego de terminado el código. Por lo general, los programadores escriben piezas de código...
¿Cuantas líneas de código son 9 líneas con TDD?
En mi último post presentaba una métrica (verdaderamente muy mala) sobre mi productividad en un proyecto realizado completamente utilizando TDD de manera estricta. Esta mostraba aproximadamente 9 LOC/Hs. Al mismo tiempo, y como las pruebas y el código los escribí interactivamente, escribía 11 LOC/Hs de pruebas. Esto hace un total de 19 LOC/Hs. Ahora bien, cada 2 o 3 pruebas el código era refactorizado para eliminar duplicaciones, del mismo modo que luego de observar un patrón común en un conjunto...
TDD y Yo
Hace poco comencé un nuevo desarrollo y decidí grabar algunos videos de los cuales solo publiqué los primeros tres. Sucede que el hecho de saber que alguien me estaba mirando me hacía prestar mayor atención a mis palabras que al código que debía escribir. No obstante a ello, continué grabándome para tomar el tiempo y estudiarme. La primera parte de ese desarrollo está completado y estos son los números: 66 pruebas unitarias. 15 clases. (solo 4 centrales, el resto son datacontracts, excepciones y...
¿Te ves como un verdadero profesional?
Tanto se los he dicho que ya están empezando a darse cuenta de que realmente no entienden las necesidades del negocio. Al parecer ellos se meten en la programación desde chiquitos y el mundo se les achica tanto que no comprenden que hay compromisos asumidos y que el cliente está esperando el producto. Pero bueno, yo sigo explicándoles y varios lo entienden bien pero hay un par que verdaderamente no parecen estar muy convencidos. Lo peor de todo este asunto es que cada vez trabajan más lento y cada...
[Productividad] Parálisis por Emails
El correo electrónico es una de las herramientas más importantes de trabajo, todos tenemos un cliente de correo que chequeamos varias veces al día ya sea en nuestro trabajo o en nuestros hogares. Es tanto un medio de comunicación como un sistema para recibir alertas y recordatorios, todos los sistemas se comunican con nosotros mediante correo electrónico, " se te ha asignado un nuevo ticket ", " quedan 3 días para renovar las licencias ", " inscríbete para el curso de seguridad...