Mostrando las entradas con la etiqueta CoffeCamp. Mostrar todas las entradas
Mostrando las entradas con la etiqueta CoffeCamp. Mostrar todas las entradas

sábado, julio 04, 2009

Agile CoffeeCamp Tijuana

El día de hoy se llevo a cabo el Agile CoffeeCamp Tijuana, el cual duro alrededor de dos horas y media en una platica amena entre los presentes donde se expresaron dudas y experiencias sobre las metodología ágiles.

A continuación presento una recapitulación de los mas importante - desde mi punto de vista -:

1. - Primeramente se pregunto si el auge de Agile se debía a una moda o no, y de acuerdo a los comentarios, creo que coincidimos en que Agile presenta conceptos no nuevos y que de forma recurrente han aparecido en la industria del desarrollo de software, ya que muchos de ellos son mas del tipo del sentido común, por lo tanto los conceptos de alguna forma son viejos, pero el momentum de la industria de software, la mención en blogs, revistas, conferencias, etc; le ha traído gran publicidad a las metodología ágiles, lo cual ha provocado que mucha gente "brinque" y quiera ser ágil, por lo cual si podemos considerar que es una moda, pero al final, los equipos y empresas que las implementen seriamente y con conciencia, son las únicas que van a continuar utilizandolas, cuando algo mas se ponga de moda nuevamente.

Aunque el estar de moda no es necesariamente algo malo, pero también hay que comprender que no son la solución para todos los problemas del proceso de desarrollo de software y mas si consideramos que metodología como XP, de alguna forma requiere de programadores con una buen nivel de capacidad técnica y entendimiento de conceptos básicos del desarrollo de software, conceptos que para ser sincero no muchos programadores manejan de forma fluida.

2. - Sobre las pruebas de unidad, funcionales e integración; se cuestiono sobre si realmente es algo que sirva para el proyecto, como se vende al cliente, que se debe de probar.

Creo que todos coincidimos que cualquier mecanismo que permita comprobar que nuestro software funciona de acuerdo a lo esperado y que podemos detectar de forma automática si algún cambio introducido en nuestra aplicación causa algún problema en otra área y nos evita el tener que depurarla para buscar tal problema, por lo tanto las pruebas automáticas de software no deben de ser subestimadas, ni dejadas de lado.

También se menciono que como parte del presupuesto de tiempo/dinero de un proyecto, se debe de contemplar el costo de las pruebas automáticas del sistema, no tienen porque venderse a parte del proyecto, ya que estas son una parte fundamental del proyecto.

Y aun si no se usa alguna metodología para el desarrollo de software, no podemos decir que no realizamos pruebas sobre nuestro software, simplemente el lanzar la aplicación, navegar las pantallas, capturar algunos datos y revisar el resultado; estamos realizando pruebas de forma manual, las cuales pueden incluir el factor humano de error u omisión al realizarlas, por lo tanto, la pregunta es, si ya hacemos las pruebas, ¿porque no las formalizamos como parte del proyecto?, el esfuerzo puede ser importante pero el beneficio de ellas va a ser en la misma magnitud o posiblemente mayor.

Finalmente sobre que probar en nuestra aplicación, no es una pregunta con una respuesta simple, algunos van a decir que hay que probar todo, absolutamente todo, algunos otros que solo hay que probar lo que haga sentido, en lo particular opino que hay que probar únicamente nuestro código, si se usan librerías de terceros, no tenemos que probar esas librerías, únicamente nuestro código propio, y la integración de nuestra aplicación con algún otro sistema.

3. - Se pregunto la efectividad y la relación costo/beneficio de realizar programación en pareja, comentamos que uno de los beneficios de esta practica es el que al tener dos programadores trabajando sobre la misma sección de código puede ayudar a crear mejor código y con menos errores, promueve el trabajo en equipo, que la pareja de programadores alcance el mismos nivel técnico, el que se pueda lograr un mejor entendimiento de los requerimientos, el solucionar problemas en los cuales una sola persona se puede "ciclar" y tardar mas tiempo en solucionarlo.

Otro punto importante y que no se comento, es que de alguna forma se tiende a perder menos tiempo, ya que programado solo, es mas probable utilizar el tiempo para leer feeds, contestar el mensajero o correos, en cambio cuando hay dos personas es menos viable que esto suceda.

También se comento que al programar en parejas ya no únicamente un solo programador tiene el conocimiento sobre ciertas áreas del programa, ya hay mas gente con ese conocimiento; y al tener otro par de ojos revisando el código es mucho mas sencillo identificar de manera rápida errores de sintaxis y lógica y corregirlos al momento.

Si bien esta practica tiene beneficios interesantes, si creo que es un poco difícil venderla en nuestros lugares de trabajo, ya que la primera reacción va a ser la percepción de que se pierde el tiempo de un recurso al nadas sentarse y revisar el código de otro.

Aquí dejo una serie de ligas y vídeos de una compañía llamada Hashrocket que realiza programación en parejas como una practica normal de la empresa y que mencionan les ha dado buenos resultados:

Pair Programming from Hashrocket on Vimeo.

Extreme Programming from Hashrocket on Vimeo.

En fin la convivencia fue bastante buena, hubo gente nueva y gente conocida, ademas creo que la platica estuvo interesante, en relación a las dudas, los conceptos y las experiencias, @gabo nos ayudo a transmitir el audio en vivo y @webcool grabo una parte de la platica en video, así que espero que en los próximos días lo podamos publicar, por lo pronto aquí les dejo unas cuantas fotos que tomo @samaniegojessi y unas cuantas mías


domingo, marzo 08, 2009

Web 2.0 CoffeCamp Tj


El pasado sábado 7 de Marzo, se llevo a cabo el primer Web 2.0 CoffeCamp en el D'Volada Café de Plaza Dorada en Otay, lugar del cual literalmente nos apoderamos por un espacio de poco mas de 2 horas.

Al evento asistieron @gabo, @webcool, @ilescasp, @agamenong, @bitfon, @mariohcornejo, @fcastellanos, @jesus_chavez, Carlos Hurtado, Jessica y @mario_chavez, ademas en linea creo que llego un punto en donde había como 10 personas mas, de los que recuerdo @stanmx, @angelnyo, ryozero y velocitj.

El inicio se retardo un poco por "problemas técnicos", el Internet en el lugar no funcionaba muy bien que digamos y la idea era transmitir el evento en vivo, ademas de la grabación de audio y video. Afortunadamente @bitfon nos presto un modem/router 3G con el cual pudimos sortear la situación y gracias a @gabo y @webcool se grabo audio y video, el cual una vez que este procesado, se va a hacer disponible.

A continuación voy a realizar una pequeña reseña de lo que ocurrió el día de ayer, aunque para un detalle mas completo hay que esperar que el audio y video este disponible.

El inicio fue con la pregunta obligada, ¿Que es el web 2.0?, lo interesante es que se pudo obtener la perspectiva de gente del área de desarrollo de sistemas y de diseñadores gráficos, y aunque no legamos a un acuerdo al 100% si se pudieron identificar algunas características en común:
  • Enfocadas principalmente a redes sociales
  • Twitter
  • Facebook
  • MySpace
  • YouTube
  • Flickr
  • Los usuarios participan en la creación del contenido
  • Co-participan en el contenido ofrecido, por lo tanto el sitio les es mas interesante
  • Digg
  • Enchilame
  • Ofrecen una mejor experiencia de usuario
  • Estándares Web
  • Intercambio de datos XML, JSON
  • Comunicación Asincrona
  • Lógica del lado del clientes, JavaScript
  • Se ofrecen como SaaS (Software as a Service)
Otras características que se mencionaron que pueden ser parte, pero no precisamente implican Web 2.0 son:
  • Botones redondos y diseño de letras grandes y logotipos brillosos
  • Ofrecer un API para, llevando las aplicaciones mas alla del Web
También se comento si las aplicaciones RIA (Rich Internet Applications), como las aplicaciones en Flash y Silverlight deberían ser consideradas Web 2.0 o no.

Posteriormente se discutió del modelo de negocio de las aplicaciones Web 2.0, ya que muchas no cuentan con un modelo definido y sobreviven de "Venture Capitals".

Se menciono que la publicidad es una forma de monetizar, pero no es la única forma, algunas de las aplicaciones tienen versiones lite gratuitas y la funcionalidad avanzada se ofrece con un costo el cual generalmente suele ser accesible.

También se comento que hay empresas que están utilizando a estas aplicaciones para promocionar sus productos y servicios, formando así un ecosistema económico.

Igual se comento que no por todas las aplicaciones Web 2.0 que usamos estaríamos dispuestos a pagar por usarlas, aunque el costo sea muy pequeño, de forma general coincidimos que pagaríamos por las aplicaciones que nos ofrecen un beneficio a forma de servicio, y las aplicaciones de ocio las seguiríamos usando si siguen siendo gratis.

Otro punto fue la parte tecnológica, comentamos que si para hacer una aplicaciones Web 2.0 se debe de utilizar una tecnología en particular o no, el consenso fue que no, pero la tendencia de aplicaciones Web 2.0, es que están desarrolladas en plataformas de lenguajes dinámicos, como PHP y Ruby On Rails. Java y .NET prácticamente no figuran en este ámbito. Desde el punto de vista de los diseñadores mencionaron que, por ejemplo, PHP les ofrece un mejor control sobre el HTML generado a diferencia de .NET.

Después tratamos de conjuntar una lista de aplicaciones Web 2.0 en México y prácticamente nos fue imposible, el único sitio que se menciono fue Enchilame. Buena parte de la conversación se nos fue en mencionar la dis-funcionalidad de los sitios Web de los bancos "Mexicanos", sitios de Gobierno, sitios web de empresas que no ofrecen ningún valor a sus clientes.

Se cuestiono sobre el movimiento Web 2.0 en México, aunque existen movimientos como Café de Altura y Tequila Valley, el desarrollo Web 2.0 es poco visible, ademas de que no existe una forma de acercase a inversionistas si es que los hay. También se comento que es importante seguir el modelo de Estados Unidos, conocido como "Startups", es decir empezar el desarrollo de la aplicación y tratar de ponerla en linea con la finalidad de una vez teniendo el producto funcionando, quizás así sea mas fácil el obtener financiamiento.

Finalmente se discutió si se debe de "clonar" aplicaciones exitosas en Estados Unidos o no, el consenso fue que una copia fiel, no es buena idea, lo mejor es tomar ese "know-how" y complementarlo con necesidades especificas de la zona y si la idea a final de cuentas no es muy original, entonces evitar tratar de competir con la aplicaciones original y mejor enfocarla al mercado hispano.

En general esto fue lo que se comento durante la platica, como recomendación, se comento que es necesario vencer la apatía, no renunciar todavía a sus trabajos de día, pero tratar de llevar nuestras ideas para que se materialicen y con un poco de suerte poder crear un negocio exitoso en Internet.

Estén pendientes a las fotos, audio y video a publicarse en los próximos días.
Gracias otra vez por haber participado y compartido con nosotros.