jueves, 27 de octubre de 2011

Pragmatic Programmers: Aprovechando el poder de la web (+video)

The Pragmatic Programmer

Los lectores o conocidos desde hace tiempo ya saben que tengo mucho respeto y admiración por Andy Hunt y Dave Thomas, los Pragmatic Programmers. Su primer gran éxito en conjunto fue el libro que le dio título a su emprendimiento editorial: The Pragmatic Programmer: From Journeyman to Master, de 1999.

En este libro Andy y Dave destilaron una enorme cantidad de sabiduría aplicada a las labores, prácticas y actitudes básicas de la programación, justo antes de que algunas de ellas se convirtieran en parte del Manifiesto Agile poco tiempo después (siendo Dave uno de los firmantes iniciales).

En el libro apuntan a las premisas básicas del uso de editores, depuradores, control de versiones, generación de código, pruebas unitarias, meta-programación, cuestiones de diseño, refactorización, manejo de requerimientos, y muchísimo más.

Pero después del éxito de este libro, que es uno de los más populares de todos los tiempos en nuestra profesión (para mi, junto al decano The Mythical Man MonthCode Complete y los más recientes Clean Code y The Clean Coder), Andy y Dave fundaron una editorial bastante particular, The Pragmatic Bookshelf dedicada a publicar libros dedicados al desarrollo de software a costos realmente económicos y cubriendo una variedad de temas a los que las editoriales grandes generalmente no llegan por ser demasiado específicos.

Así llevan más de 120 títulos publicados, y además de editarlos en papel se pueden comprar en ediciones electrónicas, sin mecanismos de protección. Esto me parece destacable. A pesar de ser una editorial muy pequeña, ellos tienen un negocio que sobrevive y con altísima calidad y nivel de servicio, sin necesidad de "molestar" al usuario por temas de propiedad intelectual. De hecho, el único mecanismo que utilizan es un código de confianza: cuando uno compra un libro electrónico puede descargarlo en formato PDF, Mobi (para el Kindle) o EPub (para iOS, Android, etc). Lo único que ellos hacen es generar una copia personalizada con el nombre del cliente en los pies de página. Así, si alguien desparrama copias, al menos se hace responsable personal.

Otra cosa que les permite este modelo de negocio es permitir leer versiones preliminares de los libros mientras el autor todavía está escribiéndolo, a un precio reducido y con opción de recibir la edición impresa final o no, y por supuesto con posibilidad de ir comentando el avance con el autor y colaborar con él.

Pero toda esta publicidad gratuita (la hago sólo porque soy un cliente felíz) surgió por otro servicio sorpresa que agregaron esta semana y me comunicaron por email: ahora permiten sincronizar las sucesivas versiones de los libros con una cuenta personal de Dropbox, un servicio pionero en sincronización de archivos en la nube. Dropbox tiene la característica de ser el más exitoso de los múltiples competidores en ese área, basándose en la premisa de mantener el servicio sencillo en cuanto a características, pero siempre extremadamente funcional.

Si, también soy un cliente feliz de Dropbox, cuyo servicio básico y gratuito alcanza y sobra para uso personal y me ha permitido moverme y mantener sincronizados ambientes entre Windows, Mac OS X y móviles, y me liberó de la obsesión por los backups. Pero Dropbox también es un caso interesante para la comunidad Python, ya que usan este lenguaje para cubrir múltiples plataformas cliente, y también del lado del servidor.

Dejo para el final un video (en inglés) Rian Hunter, uno de los ingenieros de Dropbox contando detalles de la implementación en la PyCon 2011.

Ahora, volviendo al tema principal, lo que PragProg agregó a sus servicios es la integración con Dropbox, de manera que cada vez que hay una nueva versión disponible de uno de los libros que tengo comprados (ya sea una nueva versión preliminar o una nueva edición de uno ya publicado con agregados o correcciones).

Lo que me llamó la atención al recibir la noticia fue la experiencia completa como usuario de este mecanismo, que comenzó al recibir el mail con novedades de la editorial y esta noticia en particular:

Integrate DropBox

Al hacer click en esta parte del mensaje, mi navegador me llevó al sitio web, a una página a con todo el detalle, donde me explicaba cómo configurar esta opción en mi perfil:

DropBox options

Y en esta parte de mi perfil pude seleccionar qué formatos me interesan personalmente, lo que es muy prolijo. A continuación me redireccionó al sitio de DropBox utilizando (me di cuenta porque conozco el mecanismo) oAuth. De esta forma llegué al sitio de DropBox, donde me identifiqué con mis credenciales de ese servicio (que nunca llegaron al de la editorial), y el sitio de DropBox, que soporta este protocolo, me informó que PragProg.com deseaba establecer un vínculo, compartiendo mi identidad (mi nombre de usuario de DropBox y ningún otro dato).

Lo que me sorprendió gratamente es ver cómo dos servicios muy buenos permiten potenciar sus características utilizando protocolos estándares, brindando algo novedoso, seguro y práctico. Me pareció bueno compartirlo como un buen ejemplo de aprovechamiento de la infraestructura web actual para lograr productos de software más potentes.