Tuesday, November 27, 2007

El papel del liderazgo en el desarrollo de software

Un nuevo vídeo de Mary Poppendieck (que a estas alturas ya debería sonaros a todos). En esta ocasión habla sobre la importancia del liderazgo en desarrollo de software, y sobre los cambios de perspectiva que se han experimentado desde la dirección clásica hasta la actualidad.
http://www.infoq.com/presentations/poppendieck-agile-leadership

Wednesday, October 24, 2007

The podcast for professional developers

Hay una web con un montón de información interesante, en formato podcast, sobre ingeniería de software.

Echad un vistazo a www.se-radio.net, especialmente al que habla sobre SCRUM.

Sunday, October 21, 2007

Refactoring

El pasado viernes en clase surgió el tema del refactoring. Si alguien tiene curiosidad en ampliar conocimientos sobre el tema puede consultar la web www.refactoring.com y el libro Refactoring: Improving the Design of Existing Code

Wednesday, October 10, 2007

Vídeos

Como muchos de los que asistís a clase ya sabréis, además de unos cuantos libros interesantes hay un recurso muy bueno para aprender más cosas sobre PGP: google video.

La gente de google organiza charlas periódicas sobre ingeniería, ciencia y otros temas. Y como pueden permitirse invitar a lo mejor de lo mejor, hay material realmente interesante.

Los que os voy a recomendar hoy (y cuando digo recomendar quiero decir que encargaré un trabajo sobre el tema) son los siguientes:

  • Un vídeo de Mary Poppendieck (otro de los grandes nombres que deberíais conocer, buscad en amazon sobre ellas y veréis la cantidad de material) en el que habla de cómo competir basándose en velocidad:


  • Los dos siguientes hablan de SCRUM, una de las metodologías que cubrimos en el curso. En primer lugar uno sobre lecciones aprendidas en google usando scrum:


    Y en segundo lugar una introducción (una clase magistral realmente) sobre SCRUM:


    El tiempo que paséis viéndolos estará bien invertido...
  • Saturday, October 06, 2007

    The road to gold

    Ahora que empezamos de nuevo el curso es un buen momento para repasar algunos artículos interesantes que merece la pena leer.

    El de hoy es un poco antiguo, pero sigue mereciendo la pena. Se trata de una serie de 3 artículos del sitio WinSuperSite que hablan sobre la historia del desarrollo de Windows. Hay tres partes que podéis encontrar en:

    - Parte 1: los primeros años
    - Parte 2: el desarrollo de windows
    - Parte 3: Probando windows

    Como comentaba el viernes en clase, quien quiera ampliar más todavía sobre la historia del desarrollo de ese sistema operativo, puede leer Show Stopper.

    Ahí encontrará información sobre alguno de los jefes de proyecto (y por supuesto programadores) más famosos de la historia del software: David Cutler.

    Cutler era ya famoso antes de unirse a Microsoft, pero durante el desarrollo de NT dio rienda suelta a su estilo de project management extremadamente rígido y duro.

    Cutler fue elegido premiado como Senior Distinguished Engineer por la National Academy of Engineering a mediados de los 90, y tiene un título similar otorgado por Microsoft.



    Es difícil hacer una lista de los nombres que es imprescindible conocer, así que aquí tenéis los primeros de los que me he acordado:
    * Linus Torvalds, supongo que este no necesita presentación. Hay un libro interesante sobre él: Just for Fun: The Story of an Accidental Revolutionary
    * Charles Simonyi. Seguro que os suena por cosas como la notación húngara, y si eso no es suficiente, habréis usado Word en alguna ocasión, ¿verdad?
    * John Carmack. ¿Os suena el Doom y el Quake? Mirad también Armadillo Aerospace.
    * Steve McConnell, autor de libros como Code Complete, Software Estimation y Rapid Software Development, entre otros, de los que ya hemos hablado.
    * Bjarne Stroustrup. También el C++, ¿no?

    Si os interesa el tema, más información en el libro GO TO: Software SuperHeroes

    Monday, July 30, 2007

    Dos nuevos libros de pragmatic programmer

    Un par de nuevos libros que parecen tener muy buena pinta sobre PGP:

    Los dos hablan de métodos ágiles y están basados en experiencias prácticas, no los he leído pero creo que merecerán la pena...

    Thursday, January 25, 2007

    Charla CMMi

    Este Viernes a las 18:00 habrá una presentación sobre el modelo CMMi, muy interesante para la asignatura, en el salón de actos.
    Interrumpiremos la clase durante una hora para poder asisitir a la charla. Contaremos con la presencia de un experto en el tema, que nos podrá dar una visión práctica muy interesante.

    Wednesday, January 17, 2007

    Técnica de estimación: Wideband Delphi

    Estimación por grupos de expertos: Método Delphi.
    La información sobre este método la he extraído del libro de McConnell sobre estimación de software: Software Estimation, Demystifying the Black Art, que os recomiendo.
    El método wideband Delphi es una técnica de estimación estructurada en grupo. Deriva de un método creado en los 40.
    Se basa fundamentalmente en que varios expertos, tras crear estimaciones individuales, se reunen para ponerse de acuerdo en una estimación.
    Un estudio del método original decía que no se obtenían mejores resultados que con estimaciones individuales debido a las presiones políticas que se podían ejercer sobre el grupo. Así que Boehm y Farquhar crean en los 70 el Wideband Delphi como mejora del original.
    El proceso mejorado es el siguiente:

    1 - El coordinador presenta a cada experto la especificación y un formulario de estimación.
    2 - Los estimadores trabajan individualmente. (Se puede hacer esto tras el paso 3)
    3 - Se hace una reunión en la que los expertos hablan de los posibles problemas de estimación.
    4 - Los expertos rellenan las estimaciones y se las dan al coordinador de manera anónima.
    5 - El coordinador prepara un resumen de las estimaciones y la reparte a todos los expertos.
    6 - Se reunen tanto el coordinador como los expertos para ver variaciones en las estimaciones.
    7 - Los expertos votan anónimamente si aceptan la estimación media. Si alguien vota que no se vuelve al paso 3.
    8 - La estimación final es una estimación única (single-point estimate). También podría ser un rango creado durante la estimación en la que la single-point es el caso esperado (recordad lo de caso más probable, menos probable y caso esperado).


    En la imagen se muestra cómo podría evolucionar un supuesto proceso de estimación, y también cómo es el formulario de estimación: una escala en la que colocar la estimación. Hay que tener en cuenta que la escala debe ser lo suficientemente amplia para no coaccionar a los estimadores.

    ¿Es útil el método?
    McConnell dice que en 25 grupos en los que ha recogido datos, comparando datos de estimaciones hechas haciendo un promedio de los expertos respecto a usar método Delphi, se obtiene una mejora de alrededor de un 40%.
    Habla también de que muchas veces la estimación correcta (que lógicamente sólo se sabe a posteriori) no está dentro del rango original cubierto por los estimadores, y que sin embargo usando Delphi se llega, 1/3 de las veces, a incluir ese punto.

    ¿Cuándo usarlo?
    Fundamentalmente al inicio de los proyectos, cuando todavía hay mucha incertidumbre. En el área inicial del cono de incertidumbre se puede mejorar mucho con Delphi, luego cuando hay más datos será mejor cambiar a otras técnicas.
    Pero al principio puede ser útil combiar múltiples informaciones de diferentes expertos.

    Más información en Wikipedia en: http://en.wikipedia.org/wiki/Wideband_delphi

    Nuevo libro sobre estimación de software

    Al hilo de lo que venimos dando en clase en las últimas semanas, sale un nuevo libro sobre estimación de software. Parece que está centrado en el tema de puntos de función, así que puede ser muy interesante.

    Thursday, January 11, 2007

    Soñando con el código

    Es el título de un libro que habla de qué hace interesante la programación y qué no. Podéis encontrarlo en http://www.dreamingincode.com, y la verdad es que tiene muy buena pinta... Y para seguir en la línea de recomendar lectura, hay otro par de libros que merece la pena mencionar, aunque no son nuevos, ni mucho menos, sino más bien clásicos. Los dos son del mismo autor, Gerald M. Weinberg, y son An Introduction to General Systems Thinking y The Psychology of Computer Programming. Y para terminar otro nuevo: Software Creativity 2.0

    Nos quedan 3 días

    No, no es una premonición agorera algo así, es que faltan 3 clases para finalizar el curso...
    Y todavía faltan unas cuantas cosas por ver... Así que tendremos que usar las horas que faltan intensivamente. Mañana haremos un breve (muy breve) repaso de lo que hemos visto hasta ahora, e identificaremos qué falta para finalizar. Y después seguiremos con temas de planificación, métricas, y alguna otra cosa más... Y también faltan por presentar los trabajos, de hecho hay ya unos cuantos que parecen interesantes.
    Así de memoria, que me acuerde, tenemos los siguientes:
    - Uno sobre las herramientas de VersionOne: http://www.versionone.net
    - Algo sobre subversion, uno de los controles de versiones más utilizados: http://subversion.tigris.org
    - También, si no recuerdo mal, uno sobre Clearcase, uno de los grandes en SCM: http://www-306.ibm.com/software/awdtools/clearcase
    - Google code, de este puedo decir poco...
    - Extreme programming (un tema muy interesante... a ver qué hacéis)
    - Accurev: otro SCM, pero este muy, muy innovador: www.accurev.com
    - Seapine

    Y no sé si se me olvida algo!!