Debates que enriquecen

lunes, 23 de agosto de 2010

En marzo de este año junto con la gente de Kinética Solutions organizamos en el Club del Golf un evento para compartir experiencias con algunos de nuestros clientes y colegas.

Bajo el nombre WebCrucijadas 2010 y en medio de un “opíparo” desayuno mantuvimos un debate abierto y enriquecedor, tomando como eje principal el análisis de factores que afectan a la toma de decisiones en la implementación de proyectos Web.

Para ello se presentaron 2 casos ejemplo:

Desarrollos convencionales (custom) vs. Integración sobre plataformas existentes

En este primer ejemplo, se comparó el desarrollo convencional de aplicaciones web (soluciones custom, de punta a punta) con el uso de plataformas existentes.

Para eso, Adrián Eidelman de Kinética Solutions mostró su experiencia en la implementación de una solución web montada sobre Community Server, resaltando pros y contras de su utilización.


El modelo WebForms vs. el modelo MVC ASPNET

En el segundo ejemplo, se comparó el modelo clásico de desarrollo de aplicaciones ASPNET (WebForms, WebControls, etc.) con su “challenger” más reciente, el modelo MVC para aplicaciones Web.

Aquí Ricardo D. de Guzmán y Benjamín Eidelman, integrantes de Tercer Planeta destacaron las características conceptuales de cada uno de los dos modelos.

¿Qué nos llevo a hacerlo?

La idea principal del evento fue exponer y escuchar experiencias debatiendo sobre un tema frecuente para quienes nos dedicamos al desarrollo de software, como es el de tomar decisiones sobre este tipo de tecnologías al momento de encarar un proyecto nuevo.

Además buscamos agasajar a clientes y pares, con quienes llevamos recorridos varios años de trabajo conjunto, pero esta vez en un entorno distendido y lejos de las negociaciones propias de un proyecto en particular.

¿Qué nos dejo?

Nos beneficiamos con el aporte de todos los participantes aprovechando los diferentes puntos de vista que ofrecieron desde la diversidad de sus perfiles.

Como experiencia nos pareció muy enriquecedora y recomendable, esperamos poder organizar otra pronto.
Leer más...

Herramientas para trabajo distribuido

miércoles, 18 de agosto de 2010

En el artículo sobre trabajo distribuido comentamos que estamos aplicando ésta forma de trabajo desde el 2009. Por supuesto al principio la implementación supuso varios desafíos, entre los cuales estaban sostener una comunicación fluida en el equipo, mantener el código actualizado y además llevar a cabo las prácticas ágiles a las cuales estamos acostumbrados.
¿Cuáles serían las herramientas que nos facilitarían esta tarea? A continuación hago una breve reseña de las aplicaciones que utilizamos y cómo nos ayudaron:

Team Foundation Server

Es una herramienta de control de código que no presenta inconvenientes a la hora de trabajar tanto en la red local como desde una conexión de Internet.
También cuenta con un modo de trabajo offline que funciona muy bien si por una de esas casualidades nos quedamos sin conexión.
Team Foundation Server

Live Mesh

Es un sistema de sincronización de datos que nos permite mantener compartidos y actualizados los cambios que vamos realizando en archivos y carpetas de uso conjunto.
Principalmente nos ayudó a mantener actualizada nuestras bases de datos ya que cada uno poseía una copia local (solo de las que necesitaba) y era indispensable algún medio que nos permitiera aplicar los cambios realizados por otros miembros del equipo.
El procedimiento que seguimos fue el siguiente: Cuando realizábamos alguna modificación creábamos un script de actualización. Estos scripts se iban colocando numerados en una carpeta compartida de cada proyecto, donde además teníamos un documento con un registro de las actualizaciones que había corrido cada uno. Luego, para saber si necesitábamos actualizar la BD, sencillamente entrábamos a esta carpeta y verificábamos hasta que script habíamos corrido y de haber nuevos scripts a continuación de éste, ejecutábamos los que nos faltaban.
Pronto va a ser reemplazado por la nueva versión de Windows Live Sync.
Live Mesh

Scrumy

Esta aplicación web hace las veces de Task Board permitiéndonos realizar el seguimiento de nuestro sprint virtualmente. Realmente es muy fácil de usar y posee una versión gratuita con las funcionalidades necesarias. La única desventaja es que no podemos agregar La columna del medio.
Pizarra Virtual:
Scrumy
Scrumy

Google Docs:

La posibilidad de que varias personas puedan editar un documento al mismo tiempo convierte a esta aplicación en una excelente herramienta para trabajo distribuido.
En nuestro caso, nos sirvió muchísimo a la hora de hacer las retrospectivas de cada proyecto. Para hacerlo utilizábamos una planilla en la cual podíamos escribir todos, y que además tenía unas columnas adicionales para realizar la votación.
Retrospectiva en Docs: Retrospectiva
Google Docs

Skype:

Si bien no hace falta ninguna presentación, debo decir que esta aplicación se ha vuelto fundamental en nuestras vidas a la hora de comunicarnos mediante voz, mensajería instantánea y video. Resulta de gran utilidad por ejemplo a la hora de realizar la reunión diaria.
Skype

Yuuguu:

Esta herramienta nos permite compartir escritorio con varias personas al mismo tiempo, e inclusive ceder el control de Mouse y teclado. Como punto interesante quiero añadir que la persona que se conecta a nuestra computadora puede hacerlo desde cualquier navegador sin instalar la aplicación.
Yuuguu
Seguramente habrá muchas más herramientas que se puedan explorar (sobre todo las que no son específicas para desarrollar) y que no conocemos. Lo importante es que cada equipo incorpore aquellas con las que se sienta más cómodo en cada caso. Para esto resulta muy valioso el conocer experiencias de otros en el tema. Cualquier intercambio en este sentido es siempre muy bienvenido !!

Leer más...

Trabajo distribuido

martes, 10 de agosto de 2010

Durante el mes de Julio del año pasado tuvimos la oportunidad de empezar a experimentar con esta modalidad de trabajo. Si bien la idea rondaba desde hacía tiempo por nuestras cabezas, todavía no habíamos tenido motivos suficientes como para tomar el riesgo de enfrentarnos a este terreno desconocido.

Lo que verdaderamente nos dio el impulso final fue el brote de Gripe A que por ese entonces estaba en su punto más alto. Siendo que varios de nosotros (entre los cuales me incluyo) pertenecíamos al grupo de riesgo, surgía la necesidad de desarrollar medidas preventivas. Entonces, con el objetivo de abogar por nuestra salud, y de paso aprovechar la oportunidad para probar que tal nos iba trabajando de forma remota , tomamos la decisión de replegarnos todos con nuestros equipos hacia nuestros respectivos hogares. Sólo una persona quedó en la oficina haciendo un poco de auxiliar en caso de que surgiera cualquier necesidad.

Mi experiencia

Debo decir que al principio me costó algo la adaptación, sin embargo a los pocos días ya me sentía como “en casa”. Realmente la tecnología con la que contamos hoy en día nos otorga una gran flexibilidad a la hora de trabajar.

Enfocándonos en la calidad de vida, quiero decir que el hecho de evitar las complejidades que se nos presentan camino a la oficina (como el tráfico) es una experiencia más que grata. Esto sin mencionar el tiempo y dinero que nos ahorramos.

Durante todo el mes trabajando en mí en casa sufrí algunos desperfectos técnicos. Afortunadamente como contamos con un buen servicio técnico los pudimos solucionar rápidamente, por lo tanto les recomiendo tener este tipo de seguridad a su disposición.

Los Resultados

Luego de un mes trabajando fuera de la oficina hicimos una evaluación de cómo nos había ido. Los resultados en general fueron bastante positivos:

  • Pudimos mantener sincronizados código y bases de datos sin demasiado esfuerzo.
  • Comprobamos nuestra flexibilidad para trabajar en equipo .
  • Se notó una gran autonomía para administrar los tiempos individuales con responsabilidad.
  • Logramos sostener la productividad.
  • Ahorramos tiempo y dinero en viajes.

En cuanto a lo negativo, creo que una de las cosas más importantes a destacar es la pérdida de la comunicación cara a cara.

Pienso que uno de los ingredientes principales que nos permitió obtener buenos

resultados donde otros fallan, es que hace tiempo que venimos trabajando juntos.

El hecho de que nos conozcamos y que estemos acostumbrados al trabajo en equipo hace que tengamos un lenguaje común. Es mucho más fácil lograr la resolución de un problema cuando las partes involucradas hablan el mismo idioma.

Trabajo Distribuido Hoy

Ahora bien, si esta experiencia nos dio tan buenos resultados cabe preguntarse ¿Por qué no adoptar esta modalidad de trabajo siempre y trabajar todos desde nuestros hogares?

En una empresa como la nuestra, donde mantener el espíritu de equipo y la identidad son valores muy importantes, esto sería difícil. Sin embargo, vimos que podíamos aprovechar esta metodología para los casos en los que nos es más útil y necesario.

Por ejemplo, uno de nuestros compañeros dentro de unos días va a ser padre, y más alla del tiempo contemplado para ello, va a trabajar durante unas semanas desde su casa ya que creemos que es importante que este cerca de su familia. Lo mismo se da para otros casos personales donde un día a la semana o cada 2 ó 3 semanas alguno de nosotros hace trabajo remoto.

Mirando al futuro

Evidentemente esta modalidad está totalmente instalada entre quienes nos dedicamos al software, modificando la calidad de vida de quienes la practican. Me parece importante señalar que para aprovechar los beneficios de la misma y lograr que este cambio sea positivo, no debemos olvidar lo valioso de poder salir de nuestras computadoras y ensayar distintas soluciones entre varios frente una pizarra, experimentar las virtudes de programar de a dos (de la forma” tradicional”) o simplemente compartir una charla extra laboral mientras nos tomamos una taza de café.

Leer más...