jueves, 23 de octubre de 2008
Agiles 2008
No dejo de felicitar a los organizadores, speakers, voluntarios, y todos los que estuvieron allí.
Me conmovió la emoción al final de Martín Salías, lo que refleja el nivel de compromiso, esfuerzo y expectativas que todo esto tenía para ellos.
Algunas impresiones
Tengo varias ideas dando vueltas en mi cabeza... todavía no he podido asentarlas, pero voy a tratar de volcar algo aquí.
Una impresión que tengo, es que esto no es una movida de unos pocos locos e improvisados. Realmente el nivel y solidez de lo expuesto, y cierta coherencia general en algunos temas, hace pensar que esto es más serio de lo que muchos piensan.
De nuevo: no hay modelo unificado
Otra impresión es que no hay tampoco una idea unificada en algunos temas... como todo hay ideas que confluyen, pero también distintas corrientes de pensamiento y puntos de vista. Esto se vio claramente en el panel final... donde entre los panelistas hubo algunas diferencias. De todos modos esto me parece que enriquece y además que nos recuerda ideas como "esto no es la solución final"... o de nuevo "no hay bala de plata"... y también "no hay nada escrito para lo que hay resolver, hay que buscar la solución".
Proceso de cambio
También observé que estamos en el medio de un proceso de cambio. Venimos de ciertas estructuras tradicionales, con recetas extraídas de otros contextos. El nuestro (Desarrollo de Software) es una especialidad que, a pesar de haber transcurrido medio siglo, es relativamente nueva (no podemos ni compararnos con la antigüedad en las profesiones de los médicos, abogados, ingenieros, artistas, etc), con lo cual es esperable pensar que aún tenemos mucho por madurar. Somos parte de una "profesión en vías de desarrollo". Al mismo tiempo, el mundo ha cambiado muchísimo, en particular en los últimos años.
No obstante, algunas cosas no han cambiado tanto. Somos humanos, y nuestra esencia se mantiene. Algunas de las ideas expuestas, nos recuerdan eso y lo importante que eso es.
Como en todo proceso de cambio, hay incertidumbre. Veo eso en muchos aspectos. Es difícil saber qué pasará, difícil saber que cosa es correcta y que no, difícil ubicar cada cosa en su lugar, todo esto cuesta trabajo, esfuerzo y una constante revisión de nuestra forma de pensar y actuar. Por lo tanto, es esperable que este proceso sea largo.
Esas raras ideas nuevas
De la charla inicial de Mary Poppendiek, vimos que estas nuevas ideas ágiles... en realidad no son tan nuevas, ni tan raras. En un brillante repaso de hitos y conceptos de la historia del desarrollo de software... vimos que muchas de las ideas que se están aplicando ahora... fueron aplicadas hace 10, 20, 30 años atras!!!
Debe ser por eso, que algunos conceptos... son tan naturales. Aunque hemos incorporado una cultura tan anti-natural, que nos cuesta despojarnos de ella para volver a ser "nosotros".
Para terminar, les dejo esta pregunta....
¿Estamos protagonizando el cambio?
Hasta la próxima.
lunes, 13 de octubre de 2008
Libros, Riesgos, etc
Les cuento un poco en que ando respecto de la lectura. Gracias a la magia de Amazon, estoy leyendo los siguientes libros:
- Pro C# 2008 and .Net 3.5 Platform, Andrew Troelsen: Un librito de tapa dura, de 1370 páginas, ideal para llevar en el subte D a las 9 de la mañana. Debe pesar más de 1 kilo, pero bien vale su peso. Se puede leer de todo en él, aunque algunos temas como "Web Services", los pasa de largo (y tambien, no alcanza para meter todo en un solo libro). De algunos temas se los trata a nivel introductorio, especialmente los temas nuevos. Hay un capítulo acerca de WCF y supongo que por eso se pasaron de largo los Web Services.
- Waltzing with Bears, Tom DeMarco & Timothy Lister: Una joyita. Del escritor de PeopleWare (del cual comentan mucho y yo apenas lei sólo algunos capítulos hace algunos años... que mal). El tema del libro es: "Manejo de riesgos en proyectos de software". Después les comento más de este librito. Comparado con el bodoque de C#... este no llega a las 200 páginas, pero les aseguro que vale cada página que tiene. Este si lo podés llevar en el subte (y dale con el subte)
- Pragmatic Unit Testing, in C# with NUnit, Andrew Hunt y David Thomas with Matt Hargett: De este no puedo hablar mucho porque poco leí hasta el momento.. puedo decirles que es un tema que me tiene agarrado y no me suelta.. después les hablo un poco más.
- Tengo por ahí algunas lecturas, entre las más destacadas "Foundation of programming", un ebook que se puede bajar gratis (y legalmente gratis, digo) de la web. Interesante compendio de buenas prácticas de programación con C#. También un par de ebooks de Agile patterns y Adopción de Scrum.
¿Riesgos? Nooooo va a andar todo bien...
Bien, hablando de este librito de los riesgos, y cuando digo "librito" lo hago cariñosamente, le tengo aprecio. Son esos libros que te dan gusto leer y sentís que le sacás el jugo. Tiene algunos conceptos y frases memorables. Para citar alguna:
"Risk management is project management for adults".
De lo que habla es que, a esta altura, si estamos manejando un proyecto (y seguramente debe referirse a cualquier proyecto, no sólo de software), si no estamos haciendo algo con los riesgos.. entonces somos adolescentes jugando a manejar proyectos. No podemos ponernos una venda en los ojos y darle pa'frenchi como si no hubiera riesgos; los riesgos están, y hay que enfrentarlos. Nada de esconder la cabeza como un avestruz, sepamos dónde están los riesgos y definamos una estrategia ante ellos.
Hay una actitud muy positiva y valorada, que es la de "puedo hacerlo". El manejo de riesgos no va contra esa actitud, pero tomar un proyecto complejo, en circunstancias complicadas, y prometer que estará listo para una fecha que de antemano se sabe es imposible de cumplir, no nos va a llevar muy lejos.
La idea es conocer los riesgos, y tomar decisiones, en donde en algunos casos puede dar lugar a decir "ok, sé que tengo todo en contra pero apuesto a que esto funcione. Tengo confianza en tal y tal". Eso es distinto, en todo caso tendremos dentro nuestro a "un jugador empedernido" que se juega hasta la coronilla pero no un "cabeza de avestruz" que mete la cabeza en la boca del león... sin saber ni querer sabre donde se mete.
Sobre esto hay tela para cortar.... cuando avance más con el libro les cuento.
Architectum Forum en Microsoft
Este architectum forum fue hace un mes largo ya, pero aprovecho que comente algo de unit testing para repasar algunos temas.
Sólo pude presenciar un medio día, pero el que estuve fue muy interesante. Se hablaron de algunos productos de Microsoft, como son Visual Studio Team System, TFS (Team Foundation Server, si la memoria no me traiciona), y Rosario (el codename del próximo Team System).
Hicieron algunas demostraciones y la verdad que me llevé buenas impresiones.
- Testing: Sí, con VSTS se pueden crear unit test en forma automática. También mostraron test de carga y tomados de una fuente de datos.
- Code Analysis: Se puede saber el porcentaje de cobertura de los tests y analizar el código. Se validan reglas (las cuales se pueden configurar) y con eso se llega a un número, un indicador de calidad de código.
- Validaciones: Una facilidad que me pareció piola es que se puede validar esas reglas.. al hacer checkin del código. Es decir, si el fuente que subo, si bien compila y funciona, no cumple con alguna de las reglas que el team defina como excluyentes... no puedo subir el fuente. Es como si no compilara.
- Manejo de fuentes mejorado: Bueno, el viejo amigo Source Safe.. cumplió con creces su cometido. Pero ahora necesitamos, y desde hace rato, algo mejor. El manejo de branches es algo que desde el open-source SVN viene haciendo hace tiempo y es sumamente importante. Pues bien, el manejador de fuentes de TFS tiene eso.
- Respecto de TFS, trae un SharePoint y permite administrar proyectos completos, con documentación versionada, items, issues, etc. Todo personalizable.
- Rosario: Prometen mejoras más profundas en esta nueva versión... veremos que pasa.