julio 03, 2013

Un recorrido por la industria del software

Durante el evento “Proyectos con menos riesgo y más compromiso” realizado junto a Universidad de Palermo el 27 de junio, estuvimos conversando acerca de proyectos ágiles (¡y otros no tanto!).

Facilitación Gráfica por @pablitux

En ese marco tuvimos el privilegio de escuchar a nuestro amigo Esteban Di Tada, responsable de Investigación y Desarrollo+Innovación en UP, quien compartió con nosotros sus experiencias personales.

Esteban Di Tada

Esteban tuvo su primer contacto con una computadora a comienzos de la década del 60, cuando pasó de usar reglas de cálculo a computadoras con procesos batch.

Luego aparecieron las terminales y comenzó lo que se dio en llamar “la crisis del software”, hasta llegar al punto de detectarse que sólo un 2% de los proyectos generaban valor. Después en la década del 90 todo cambió muchísimo cuando los usuarios comenzaron a utilizar PCs en oficinas y desde sus casas, con un nivel de exigencia mucho más alto y sin conocimientos técnicos. Finalmente, llegamos al día de hoy donde es posible alquilar un auto o realizar transacciones bancarias desde nuestros teléfonos móviles.

Lo más destacable fueron los motivos por los cuales los proyectos muy grandes (“elefantiásicos”) dejan de tener sentido: velocidad e incertidumbre mayores, cambios rápidos en los requerimientos y la tecnología, concluyendo en la necesidad de que busquemos trabajar con los conceptos de Calidad Total y centrados en las Personas.

Así, en pocos minutos, Esteban nos hizo recorrer una vez más la historia de nuestra industria desde sus albores hasta nuestra actualizadas de computación ubicua, haciéndonos entender de paso la evolución de las metodologías y paradigmas.

¡Gracias, Esteban!

junio 23, 2013

Rosario siempre estuvo cerca… de la arquitectura

Desde que tengo memoria Rosario es una ciudad que me entusiasma. Estaba cerca de Pergamino, donde pasé gran parte de mi niñez, y por eso mucha gente cerca mío estudió allá, si no venía a Buenos Aires.

Y muchos años después seguí haciendo amigos por allá dentro de la industria del software, donde me muevo principalmente.

Notablemente también, Rosario es la ciudad de Argentina donde más actividades realicé relacionadas con Arquitectura de Software, desde algunas charlas (como la que compartimos con Johnny Halife años atrás) y participación en proyectos, hasta las Jornadas de Arquitectura de Software que iniciamos con el MUG, y que hasta ahora sólo se realizaron en Rosario dos veces y en Buenos Aires una sola (planeamos realizar la de este año en unos meses).

Cena en Rosario

La segunda edición de la JAS del MUG fue casualmente hace un par de semanas en Rosario, y pude compartir el salón de la UTN con varios amigos:

Yo volví a presentar una versión actualizada de mi sesión "Arquitectura de Software en el ciclo de vida Agil", que dejo aquí abajo para quienes estén interesados. Al cierre fuimos con varios de los oradores y organizadores a disfrutar unas ricas pizzanesas rosarigasinas.

Los dos días siguientes estuve facilitando un workshop sobre esa misma temática, pero con mucha más práctica y profundidad, organizado por el Polo Tecnológico Rosario.
El temario puede verse en el folleto del Workshop, y pueden ver las fotos en el Album de Google+ que dejé al terminar.
¡Hasta pronto, Rosario!
 




junio 11, 2013

Coaching Remoto - acortando las distancias

Como parte de nuestra actividad como coaches en Kleer viajamos mucho y trabajamos con equipos en diferentes partes de América Latina. Pero no siempre podemos estar en todos lados, y las personas con que trabajamos siguen necesitando ayuda en temas puntuales, algo de seguimiento, o quieren que observemos algunas reuniones y los ayudemos a encontrar puntos de mejora.

Como decía Lee Devin, podemos separar nuestros desvelos entre “problemas” y “dificultades”. Los problemas tienen solución; una vez que la encontramos y ejecutamos por completo, desaparecen. Las dificultades están ahí siempre: no podemos volar; inventamos aviones, nos lanzamos en paracaídas... todos meros sustitutos de lo que queremos.

La distancia es una dificultad. La minimizamos viajando frecuentemente, pero -salvo que podamos mudarnos a otro lado- no podemos resolver el tema por completo. El trabajo remoto es otra manera de mitigar la distancia. No es lo mismo que viajar y estar ahí, cara a cara, pero tiene algunas ventajas para cuestiones puntuales, más breves:

  • Es difícil “perder el tiempo” remotamente. Uno planifica una reunión para uno o dos temas y en cuanto empieza quiere terminar, porque no es fácil ir y venir.
  • Para contactos esporádicos y seguimiento de temas, es mucho más económico (en todo sentido) que viajar.
  • Es más fácil trabajar desde casa, en pantuflas. :)

A medida que utilizamos más y más esta modalidad, aprendemos algunas cosas que hacen mejor la experiencia para nosotros y nuestros clientes, y que nos parece interesante compartir:

  • Ya que no podemos estar cara a cara, aprovechemos al máximo el video.
  • Dependiendo de la situación, diferentes herramientas son la mejor elección. Entre las plataformas abiertas, Google Hangouts nos gusta porque prioriza la calidad de la voz sobre la del video, es muy sencilla y bastante estable.
  • Mejor que mirarnos las caras todo el tiempo es alternar entre la webcam y compartir escritorio u otros artefactos
  • Usar documentos colaborativos a la vez que hablamos es muy útil. Nada como ir tomando notas entre todos y que al final de la reunión ya tengamos un resumen.
  • Aprovechemos todo lo que podamos mostrar en lugar de explicar verbalmente. Hoy los teléfonos inteligentes son muy buena opción para una video-conferencia, porque podemos mover la cámara facilmente entre nuestra cara, un pizarrón, un dibujo, etc.
  • El ruido ambiente complica las cosas: tratemos de usar auriculares, o un parlante/micrófono externo especial para conferencias. Si tenemos reuniones virtuales frecuentes, son excelente inversión.
  • Cuando vamos a contactar a una persona o grupo nuevo, programemos 10 o 15 minutos antes de la reunión para ajustar la plataforma. Siempre suele haber algo para instalar, alguna configuración para ajustar, etc.
  • Si la reunión virtual es larga, contemplemos descansos breves en la agenda (más frecuentes que en un reunión presencial) para ir a buscar una bebida, estirar las piernas, o simplemente refrescarnos. Hablar mucho tiempo a través de la pantalla es agotador.

Por supuesto, hay muchas más ideas, pero quería contarles algunas y dejar abierto el canal para charlarlo. Como siempre, pueden contactarse conmigo u otros miembros de Kleer a través de hola@kleer.la y obviamente, siempre está la opción de vernos, al menos remotamente. :)

enero 14, 2013

Lanzamiento final de Hilo Guidance

Hilo

Este es un proyecto en el que tuve el placer de colaborar el año pasado con el equipo de patterns & practices:

Hilo es una aplicación de galería de imágenes para Windows 8 desarrollada en C++ y XAML. La documentación completa está disponible en inglés, pero también en castellano (aunque la calidad de la traducción no es espectacular, para quienes no puedan leer en inglés puede ser útil). Todo el código fuente está disponible para descarga también como parte del SDK oficial de Windows.

Los capítulos de la guía cubren los siguientes temas:

  • Getting started with Hilo
  • Designing Hilo's UX
  • Writing modern C++ code in Hilo
  • Async programming patterns and tips in Hilo
  • Working with tiles and the splash screen in Hilo
  • Using the Model-View-ViewModel (MVVM) pattern in Hilo
  • Using the Repository pattern in Hilo
  • Creating and navigating between pages in Hilo
  • Using controls in Hilo
  • Using touch in Hilo
  • Handling suspend, resume, and activation in Hilo
  • Improving performance in Hilo Testing and deploying Hilo
  • Meet the Hilo team
  • Performing interop between XAML and DirectX
Hilo es una aplicación de fotos que utiliza el estilo "Modern UI" (antes conocido como Metro) en Windows 8, permitiendo navegar entre las carpetas de fotos, ordenarlas, filtrar por tiempo y efectuar algunas ediciones menores como rotaciones y efectos básicos.
 
Hilo UI

En la sección "Meet the Hilo team" agradecen los colaboradores más allá del equipo core del proyecto, y me incluyen entre mucha gente impresionante que me llena de orgullo y humildad (si hasta quedé al lado de Herb Sutter, "Mr. C++"):

We want to thank the customers, partners, and community members who have patiently reviewed our early content and drafts. We especially want to recognize Marcelo Hideaki Azuma (ITGROUP), Chad Carter (CTO, GlobalCove Technologies), Tony Champion (Owner, Champion DS), Carlos dos Santos (CDS Informática Ltda.), Genevieve Fernandes, Alon Fliess (Chief Architect, CodeValue), Timo Heinäpurola, Tim Heuer, Robert Hogg (Black Marble), Hong Hong, Mike Kenyon (Senior Principal Software Engineer, IHS, Inc.), Artur Laksberg, Michael B. McLaughlin, Harry Pierson, Caio Proiete (Senior Consultant/Trainer, CICLO), Andy Rich, Martin Salias, Herb Sutter, Jose Miguel Torres (Software Engineer, Xamarin), and J. Andre Tournier (Sr. Software Developer, WebMD) for their technical insights and support throughout this project.

El proyecto tuvo para mi unas cuántas cosas interesantes, como usar C++ 11 en un proyecto real, incluyendo lambdas, smart pointers, continuations, tasks y otros recursos especiales para manejar concurrencia y múltiples cores. También se hizo bastante énfasis en las pruebas unitarias, aunque no fue trivial en un contexto de tanto paralelismo.

Por último, gran parte del foco está en el entorno Windows 8 y XAML, que debo confesar que no me entusiasmó mucho, aunque si aprendí muchísimas cosas en el camino.

octubre 10, 2012

El camino ágil hacia organizaciones más efectivas

Organizaciones Agiles

Con mis colegas de Kleer organizamos esta mañana este pequeño evento en la Universidad de Palermo, gracias como siempre al Decano de la Facultad de Ingeniería, Esteban Di Tada.

La idea era compartir algunas ideas y experiencias alrededor de organizaciones adoptando prácticas ágiles a diferente nivel de madurez, también con características diferentes, y charlar un poco sobre el camino que recorrieron.

Como introducción tuve a oportunidad de presentar una introducción a algunos principios teóricos de diferentes áreas, desde matemáticas y cibernética hasta management, que desde diferentes perspectivas soportan las ideas del agilismo,

Dejo para los asistentes las notas de la sesión como prometí, y debajo agrego una lista de bibliografía relacionada.

Podría seguir agregando libros, pero creo que estos son las principales fuentes al menos de esta charla en particular.

Les dejo también el video "promocional" que grabamos con Ricardo Colusso invitando al evento. No es la gran cosa, pero nos divertimos produciéndolo, como se imaginarán:

setiembre 12, 2012

Aplicaciones Windows 8 en el RUN Buenos Aires

En marzo de este año participé con varios amigos de este evento en el que Microsoft presentó las novedades de su plataforma de desarrollo para Windows 8, sobre todo lo que en ese momento se conocía como estilo "Metro", que hoy renombraron, en la versión final, como "Modern UI".

Pasaron varios meses, pero encontré de casualidad el video de nuestra sesión en Channel 9. Probablemente me hayan avisado y se me pasó, pero lo dejo debajo como recordatorio, y por si a alguien le interesa. 

Hasta el minuto 30 llega la introducción a la plataforma a cargo de Miguel Sáez de Microsoft. Siguen Adrián Eidelman y Matías Iacono de Kinetica contando sobre el modelo de desarrollo con HTML5 y JS, y en el minuto 54 arrancamos Damián Martínez Gelabert y yo.

agosto 17, 2012

Azure Deep Dive en Channel 9

Channel 9

Los videos del evento Azure Deep Dive que había anticipado tiempo atrás ya están disponibles en Channel 9, el sitio de la comunidad de desarrollo de Microsoft, editados y en un contexto más terminado.

Quedaron disponibles 4 de las sesiones: