Lo quiero todo, todo y todo… o la triste realidad del triángulo de la gestión de proyectos

Resulta que esta mañana me he levantado graciosito y no se si como resultado del aburrimiento, de la pila de días de descanso vacacional que llevo, o de los cubatas del Cebolla Rock, me he propuesto hacer un experimento. Me he ido al concesionario de BMW más cercano, he buscado a uno de esos aseados y sonrientes y le he dicho…

Buenos días, me gustaría comprar un 750i, blanco, que le gusta a mi mujer de eso color, aunque a mi me parece un poco taxi. Taxi, un 750i, ni aunque le ponga lucecita verde hombre, ha dicho el comercial. Ya que estamos, no lo vamos a mirar, he seguido yo… póngamelo con llantas de 20’’, como no y todos los extras, lo quiero todo, todo y todo… si si el paquete M también, como no, yo soy un joven, dinámico y profesional, no puedo ir por el mundo sin el paquete M, faltarías más.

¿No sería interesante añadir también la garantía extendida? Por su tranquilidad, ya sabe. Ha dicho el comercial. Y claro, pues yo he pensado… como no se me habrá ocurrido, póngalo, póngalo. Quizás no lo use pero que le vamos a hacer, nunca se sabe lo que puede pasar.

Y la bola de caravana, ¿no la necesitará usted?… Hombre, yo no tengo caravana, pero ya que lo comentas, y como nunca se sabe, a lo peor me da por cambiar el pueblo por un camping… venga vale, total, molestar tampoco molesta.

Y claro, seguro que un profesional, joven, dinámico, con paquete M y toda la zarandaja es una avezado ciclista, de los de mountain bike molona, de esos de los de gafas Oakley, maillot, culotte, zapatillas y pedales automáticos ¿no? Seguro que necesita el exclusivo portabicicletas de BMW para pasear, digo transportar sus bicis. Pues no, he dicho yo, eso si que no, que yo hace mucho que deje la bici y soy de pelota mano y tal y cual. Hombre, recuerde que nunca se sabe, ha dicho el comercial, y se lo dejo a precio de risa, a añadido. Así que he pensado, por si acaso, con portabicis, ¿voy a saber yo más que el comercial?.

Ya solo nos quedan dos detalles menores. Empecemos por el plazo de entrega. El comercial a empezado a farfullar no se que de disponibilidad, que si las opciones retrasan no se que y no se cual. Yo he pensado, coño, aquí el cliente soy yo ¿no? y le he dicho… a ver si yo lo entiendo todo, pero me lo tienes para dentro de dos semanas, son fiestas del pueblo y tengo que fardar. El comercial no ha dicho ni mu, es más me ha dicho, que quizás lo tenga un poco antes.

El segundo tema menor, el precio. Aquí yo he tomado la iniciativa que para algo soy el cliente ¿no?. Para esto tengo treinta mil euritos, entiendo que tengo que poner otros dos cientos, por la llantas, pero esto es lo que hay. Me han dicho que en la india hay unos concesionarios que lo hacen más barato y mejor, eso sí, por evitarme el papeleo que sino te iba a comprar al ti el BMW Rita… la cantadora.

Entonces me he despertado. Claro. ¿Por qué estas cosas solo nos pasan en el mundo del software? La historia no se sostiene, claro está, pero cambiad BMW por aplicación de software, y dar sudores fríos el pensar realismo que se añade. ¿Alguno de vosotros le suena? 😉

Hace mucho, mucho tiempo, que se describió el famoso triangulo o tetraedro de hierro de la gestión de proyectos (hay gente que cree que la calidad también es un factor sobre el que podemos gestionar, yo soy de los que piensan que la calidad no es algo con lo que se pueda especular, la calidad no es opcional, y la marca el cliente, no nosotros).

Triangulo de gestión de proyectos

La idea es que de los tres aspectos: alcance, coste, y plazo, el cliente puede manejar dos grados de libertad. El otro, lo maneja la gestión del proyecto. Esta es en esencia una idea de equilibrio básico entre las partes de un proyecto. Es problema es que a menudo este equilibro se rompe. Incluso hay un antipatrón que describe esta situación. Diferentes metodologías dan diferentes respuestas a este problema, en un próximo post, comentaré la solución que propone Scrum. De hecho el propósito de este post, es comentar el dichoso triangulo de una manera un poco amena, como prolegómeno a dicho post.

Por cierto, ya tengo mi BMW, ha llegado seis meses tardes, no es blanco, y le faltan algunos detalles menores. Eso si, cuatro ruedas y volante tiene. Os dejo una fotito, para daros envidia. No es lo que esperaba, pero esa es otra historia…

 BMW

¿Qué es lo que hace que cuando se habla de software la realidad se torne tan anómala? ¿Por qué creéis vosotros que es tan difícil mantener el equilibrio descrito en el triangulo de la gestión de proyectos en la realidad? ¿Que factores hacen que salte por los aires tan a menudo en los proyectos? Y no, no vale el argumento fácil: ¡es que los comerciales…! 😉

Truco: Liberar espacio tras la actualización a Windows 7

He realizado dos actualizaciones a Windows 7, una desde Windows Vista a la RC y otra desde la RC de Windows 7 a la RTM. Las dos han sido un éxito absoluto, a pesar que el segundo camino de actualización, de RC a RTM, no esta oficialmente soportado.

En el caso de la primera, de Vista a RC, lo que más me sorprendió en su momento fue la gran cantidad de espacio de disco duro que recuperé. No tengo muy claro el por que pero el actualizar de Vista a Windows 7 me liberó 8 Gb de disco duro de manera inmediata. Evidentemente esto no ocurrió de la RC a la RTM.

Esto no es todo, el truco que os voy a contar no va a permitir liberar más espacio aun tras una actualización a Windows 7. El hecho es que una actualización a Windows 7 deja mucha ‘morralla’ tras de sí. Principalmente copias de seguridad de archivos descartados durante la migración y una gran cantidad de información de logeo de las operaciones realizadas durante la actualización.

Para recuperar ese espacio debemos ejecutar el asistente para la liberación de espacio en disco.

Clean up system files

El detalle más importante es pulsar en el botón Clean up system files, sino no podremos seleccionar la opciones que vemos en la siguiente imagen:

Clean up Windows 7 discarded files and upgrade logs

Seleccionando Files discarded by Windows upgrade y Windows upgrade log files liberaremos, en mi caso, 1,96 Gb, un cifra nada despreciable. Decir que esta cifra, según mi varia de máquina a máquina y es aun mayor cuando la actualización es desde Vista a Windows 7.

¡Espero que os sirva!

Truco: Actualizando Windows 7 RC a la versión final (RTM)

En teoría, no es una situación soportada el actualizar una instalación de Windows 7 Release Candidate (RC) a la versión final o RTM (Release To Manufacturing). Si lo intentamos encontraremos una pantalla, que impide continuar con la instalación, como esta:

W7 RC to RTM compatibility report

Gracias a dios, hay un simple truco del almendruco, lógicamente no soportado, que nos permitirá hacer la actualización. Debemos copiar el contenido del DVD de Windows 7 al nuestro disco duro. En la ubicación que hayamos copiado los contenidos del DVD, dentro de la carpeta sources encontraremos un archivo llamado cversion.ini, con el contenido que podéis ver en la siguiente imagen:

Contenido original del archivo cversion.ini

Podéis ver que en la entrada MinClient tenemos el valor 7233.0. Si ponemos en esta entrada 7000.0 y guardamos el archivo, podremos actualizar desde la RC a la versión RTM definitiva ‘sin problema alguno’. Pongo entre comillas, ‘sin problema alguno’ porque si bien es cierto que en mi caso todo ha ido de maravilla, insisto: este procedimiento no esta soportado, podéis usarlo a vuestro propio riesgo y lógicamente siempre tras haber hecho una copia de seguridad de todos vuestros datos valiosos.

¡Espero que os sirva y que os funcione tan bien como a mi!

He leído: The art of Unix programming de Eric S. Raymon

Comprálo en AmazonSupongo que lo primero que se preguntan los lectores de este blog al ver el título de este post es ¿qué hace un MVP leyendo cosas sobre Unix? o formulando la pregunta de una manera menos torticera ¿por qué un experto en entornos Microsoft está interesado en Unix?. La respuesta es compleja, pero las motivaciones que me han llevado a leer este libro son:

Unix es un gran sistema operativo, estaba seguro que aprendiendo más sobre Unix me iba a convertir en un desarrollador y arquitecto más valioso. Internet es Unix, Internet es omnipresente. Quieras o no a diario todos usamos sistemas Unix. Me gusta conocer lo que uso.

Conocer los puntos fuertes y débiles de otras plataformas de desarrollo y sistemas operativos te ayuda a detectar, prevenir y minimizar las debilidades de tus soluciones y del entorno en que te mueves, Windows y .Net en mi casos.

Es un libro enormemente citado. Casi todo el mundo que lo ha leído coincide en que es un gran libro que todo amante del desarrollo de software, por encima de afinidades a tal o cual sistema operativo, disfruta leyendo.

A pesar de lo que pueda parece por el título el libro no es un libro sobre programación. No te enseña a programar en Unix. Es un libro sobre historia, arquitectura y cultura informática en general. Es una lectura amena y llevadera, sobre todo si ya has tenido contacto con entornos Unix y te apetece saber por que las cosas son como son en esa plataforma.

La primera parte del libro, de aplicación universal, desgrana las grandes decisiones de arquitectura y circunstancias históricas que han llevado a los entornos Unix a ser como son. Muchísimas de estas decisiones de diseño, tomadas por gente de extraordinaria valía, pioneros de la computación e Internet, esconden extraordinarias lecciones prácticas de arquitectura y diseño de sistemas informáticos. Además se incluye una ‘comparativa’ entre sistemas operativos y las grandes decisiones de diseño que han marcado cada una de ellos que sin duda aporta una interesantísima cultura general sobre el tema que todo arquitecto debería tener. Lo que menos me ha gustado del libro, sin duda, es que no es del todo objetivo en su tratamiento de los sistemas operativos de Microsoft y que se nota que lleva un lustro escrito y no ha sido actualizado con los avances habidos en  esta plataforma. Por poner un simple ejemplo se critica la ausencia de una interfaz de línea de comandos potente, algo paliado ampliamente desde la aparición de PowerShell. En esta parte del libro me parecen especialmente destacables e interesantes las reglas que el autor desgrana sobre la filosofía de Unix, ¡son reglas aplicables a cualquier arquitectura!. No se puede discutir que si algo a demostrado Unix es su capacidad para adaptarse a las circunstancias, evolucionando durante cincuenta años para amoldarse y ser una plataforma puntera en todo cambio habido en la informática durante su historia. Sin duda esta capacidad de adaptación y permanencia se deriva de una excelente arquitectura, por eso conocer las reglas que han guiado esa arquitectura es sumamente valioso.

En la segunda parte del libro, se baja de nivel y pasamos de la arquitectura de Unix a su diseño, a detalles concretos de soluciones que se han tomado en el diseño de este sistema operativo y de aplicaciones significativas del mismo. Esta parte del libro es, para mí, la más interesante. Podemos extraer de los casos estudiados en el libro una gran cantidad de conocimiento práctico sobre el diseño de sistemas informáticos. Se tratan todos los temas clásicos del diseño arquitectónico: Encapsulación, ortogonalidad, capas, diseño de protocolos, transparencia, multiprocesamiento, lenguajes embebidos, generación de código, optimización, complejidad… Resumiendo, todo un tratado sobre los grandes temas del diseño de software, vistos no solo desde un punto de vista teórico sino repasando como se han aplicado en esta plataforma y en sus aplicaciones más relevantes.

El libro presenta además un repaso sumamente interesante, en su tercera parte, de las herramientas y lenguajes de programación que permiten llevar a la práctica la lecciones aprendidas sobre arquitectura y diseño. Aquí el libro se convierte en algo mucho más especifico de la plataforma Unix, y por lo tanto las lecciones que aprendemos en esta parte, aunque interesantes y valiosas, no son de universal aplicación.

La cuarta parte del libro está dedicada a la comunidad. No cabe duda que la cultura de comunidad ha sido mucho más rica y tiene una tradición mucho mayor en entornos Unix que en entornos Windows. Esto ha cambiado radicalmente en los últimos años, pero aun así hay lecciones importantes que podemos aprender y otras que aun estamos aprendiendo en el mundo Windows sobre como compartir código, trabajar en proyectos de manera abierta, documentar los proyectos que compartimos, etc… Conocer como el mundo ‘open source’ Unix lleva años haciendo esto, puede enriquecer el mundo ‘open source’ Windows, cada vez más potente y rico y sobre todo nos puede ayudar a evitar reinventar la rueda.

En resumen un libro excelente, más que recomendable, que merece la pena leer y comprar. Sin duda va a ocupar un lugar preeminente en mi biblioteca y con seguridad va a inspirar post en este blog.

¡Un saludo!