domingo, 28 de septiembre de 2014

Agiles Argentina 2014


Sensación general

Agotador, 90% ok, contento con la gente y el lugar. Como que faltó gente.

Los números de la asistencia


Ha habido un record de proporción de inasistencia, superando incluso a los prodigiosos Agile Open Seguridad. De todos modos, vino mucha gente. De unos 250 inscriptos vinieron 90. 80 el viernes y 40 el sábado, de los cuales 30 habían venido el viernes

A varios nos llamó la atención que el viernes fuera más gente que el sábado. Varios motivos se me ocurren:
  • El viernes ya aprendí lo suficiente
  • El viernes ya me dí cuenta que no tendría que haber venido
  • El viernes iba a ir a trabajar de todos modos

De este último motivo surgió el chiste:
  • Yo no puedo venir el sábado por que tengo familia.
  • Yo no puedo porque salgo el viernes.

Hubo gente que vino desde Santiago del Estero, Tucumán, Mar del Plata, Bariloche, Brasil y seguro algún otro lugar que no recuerdo. Me dan ganas de ir al Agile Open de Tucumán, pero el impacto familiar y económico de haber ido a Mar del Plata aún está fresco.


Paula A. y UB


Como en otras ocasiones, indispensable su presencia, lidiando con cada problemita que aparecía. Pobre, venía de otro evento, mucho más pesado, no como este Open Space. En un lugar grande como la UB, hacer actividades en horarios no previstos se complica, cuesta encontrar la llave por que quien es reponsable ese día no asiste.

Tribus foros


De modo bastante mal educado, cuando estaba por empezar la retrospectiva final del evento, interrumí y manifesté que quería hacer un juego de tribus desde el primer minuto de la conferencia. Alan C., gran aprovechador de situaciones inaprovechables, convocó a las tribus y tiré la consigna: para acá los que están inscriptos en Agiles Argentina, por acá los que no. Respetando esta separación, los que están en Foro Agiles y los que no. Quedaron tres grupos parecidos:

Agiles Argentina
SiNo
Foro AgilesSi1/3
No1/31/3



Así que han sido convocados a normalizar su situación.

En alguna sesión conversamos acerca de hacer una depuración, como podría ser migrando a google groups. Tambien nos intriga que pasa a nivel de listas regionales. Pienso ahora que lo mejor sería usar sólo agiles-argentina y que se creen o utilicen listas reducidas cuando la ocasión lo amerite.

Por ejemplo, para la organización de este evento se convocó la lista y se hizo una nueva, privada y descartable, con los diez o quince que estabamos interesados alrededor de Soledad P.

¿Por qué no hay lista CABA/GBA? ¿Para qué la querríamos? ¿Es CABA/GBA == Argentina? No es que CABA/GBA se adueñe de Argentina sino que MDQ, Tandil, etc. no se adueñan de Argentina.


Ekoparty Challenge


La organización de la ekoparty (www.ekoparty.org) donó generosamente dos entradas para regalar, con la condición que no fuera al azar. Tratándose de un ambiente alejado de la seguridad preparé dos actividades: una de preguntas de seguridad informática y la otra de pensamiento lateral. No sé si por falta de interés, dificultad en poder asistir a los tres días que dura ekopary o una falla mía de comunicación, NADIE asistió, así que devolví la entradas. Algo en qué pensar.

Catering

Aunque un tanto ineficiente, nadie se quedó con hambre. Pienso que sería mejor que se formaran como grupos y comprar una horma de queso, un jamón entero y cosas así, pero eso requiere una mayor organización.

El viernes hubo que ajustarle los piolines a la asistencia, que tenía una actitud tipo conferencia convencional, donde hay algún tipo de servidumbre que limpia las mesas, por ejemplo. El sábado todo estuvo bien.

Convocatoria Botona


Había convocado en agiles y en seguridad-agile voluntarios para las ingratas tareas de registrar la asistencia en la puerta y estar atentos en general, cosa que no hizo falta. Durante un momento estuve un tanto resentido, pues las dos personas que se acercaron (Maxi R. y Javier V.) son de seguridad-agile y son dos de veinte contra cero de 750. Medio que se perdieron el marketplace y era su segunda vez en Open Space. Cuando reclamé en la retrospectiva del viernes, Diego F. me hizo notar que probablemente la convocatoria había dejado afuera a gente que quizas de buen grado hubiese tomado la tarea de registración.

Ante la justeza de su perspectiva perdí todo resentimiento, salvo conmigo mismo por no haberme dado cuenta. Tomamos su propuesta de "registro tipo cumpleaños": el último en llegar recibe al próximo, que funcionó bastante bien y pienso será la manera de proceder en futuras ocasiones.


Seguridad, Diversión y Aprendizaje


Alguien mencionó este concepto. Yo, que ya tengo los pies inflados de "seguridad" prefiero pensarlo como Protección, Diversión y Aprendizaje. Para cualquiera que haya asistido a alguna actividad o capacitación mía, es evidente que al concepto de Diversión ya lo tengo en muy alta estima, al punto que en alguna ocasión he dicho "este curso debe resultar entretenido, fundamentalmente para mí, pues sería imperdonable que me quede dormido".

Lo que siempre he dado por supuesta es la Protección, en el sentido de "preguntá lo que quieras, si supieras no hubieses venido", pero me faltaba el "no se te está evaluando", que pasaré a incorporar desde ahora mismo.


Sesión de juegos de seguridad


Por fin he logrado derrotar a mis archienemigas María T. e Ingrid A., que durante años se han resistido a considerar la seguridad o su educación como un tema relevante. Por consejo de Ricardo C. que había visto esta misma actividad en Mar del Plata y con la excusa de que conmigo se divierten en los breaks, vinieron y se han lamentado de todos estos años perdidos, jaja.

Anécdota módulo de seguridad

Esta bloque ha sido editado a partir de feedback en privado.

Alguna persona mencionó que está dictando capacitación para desarrolladores y le pregunté por el "módulo de seguridad", a lo cual contestó algo que me dió la sensación que medio que no lo tenía, qué le podía sugerir. En el momento, más por instinto que por malicia me retraí y lo remití a OWASP Top Ten, quedándome con una leve sensación de mezquindad de mi parte.

Según conversaciones posteriores, tuvimos una falla de comunicación, ya que tuvo una actitud como de tanteo, dándome la oportunidad de que yo ofreciera algo, pero como no estoy brindando capacitación fuera del trabajo o estos eventos, ni me dí cuenta.

Me encuentro con que hay alguien que manifiesta interés, pero esto no se refleja en el día a día de las listas de ágiles, ni en los eventos.

La sensación que esta situación me dá es la misma que tiene todo lo que tiene que ver con seguridad, en la parte de la comunidad de seguridad que conozco no está tan enraizada como en agile el espíritu de compartir conocimiento, dejando de lado la discreción que este tema a veces requiere.


Me agarra una terrible inquietud. La falta de enganche a las propuestas de sesiones y conversaciones de seguridad, ¿es resultado como vengo pensando de una falta de priorización o tiene que ver con no compartir?


El rincón de la vergüenza


Por suerte creo que nunca lo dije y menos lo escribí: es complejidad ciclomática, no ciclotímica. Alguien lo mencionó y revisando en mi mente encontré mi error.

Agradecimientos


En eventos simétricos como estos, no me gusta agradecer ni recibir agradecimientos, pues en cierto modo siento que eso nos separa. Si dijera gracias por participar sería "vos a nuestro evento". Si dijera gracias por colaborar sería "vos a nuestra tarea".

Sí puedo agradecer a quienes comparten su conocimiento, por hacerlo nuestro.

martes, 16 de septiembre de 2014

Agile Open MDP 2014

Muy buen evento, con una concurrencia mayor a la prevista (o sea más de la mitad de los inscriptos), sin inconvenientes logísticos y un buen clima que nos saludaba desde afuera.


Notas de la sesión de retrospectivas


Algunas personas manifestaron que pese a tener las retrospectivas instaladas había una suerte de estancamiento, una de ellas sospechaba que podía ser por la presencia del PO.

Con respecto al estancamiento, conversamos acerca de usar recursos como ECVP (gracias a Sergio[1] por habérmelo enseñado en su momento y recordado ahora):

Cada uno dice como se siente:

  • Explorador: viene a proponer soluciones, buscando formas novedosas de encarar los problemas.
  • Comprador: no viene a proponer, pero si a escuchar ideas.
  • Vacacionista: viene a la reunión porque prefiere estar acá que en otro lado.
  • Prisionero: prefiere estar en otro lugar y no en esta reunión.


Con lo del PO se complica. Es para un equipo distribuido y el PO es english speaker y está todo bien, pero puede estar estorbando. Esto me produjo el primer premio de la jornada.

Pienso, la restrospectiva sirve para mejorar el producto y el proceso. El producto es del PO, obvio, pero ¿el proceso y los subproductos?

Por ejemplo, en Amazon el producto es el sistema de ventas. Pero para desarrollarlo generaron una serie de subproductos como AWS y sus amigos, de importancia comparable al sistema de ventas. Algo parecido con Netflix y ChaosMonkey [2].

Los PO o mejor aun quienes ponen el billete suelen tener, no sé como decirlo, el comportamiento por default de ciertos algoritmos de expresiones regulares: "greedy". Y uno puede tener una cierta reticencia a producir algo y que otro se lo apropie. Mm, no sé, quizás amerita otra entrada aparte.

Notas de la sesión de testing

Lo que resta de este bloque será salvajemente editado resultado de las conversaciones en foro-agiles[3]/agiles-argentina[4] (si no los conocés ¿qué esperás para subcribirte?). Antes de tildarme de desprolijo, recordá que lo perfecto es enemigo de lo bueno, si espero a tener este bloque bien, no lo termino jamás.


Nico Paez expuso algunos conceptos acerca de testing que espero desarrolle en su blog[4]. Tuvimos una discusión acerca de si el análisis estático de código forma parte del testing y para él la linea divisoria está dada por "la ejecución del código".



Dada mi posición actual, para mi no hay distinción, ya que para mi son todas vulnerabililidades (errores de seguridad) y pueden surgir por:
  • testeo funcional black box (ethical hacking)
  • revisión white box de código de modo manual o automático (static code analysis)
  • intuición white box (me parece que esta vulnerabilidad está presente)
  • divulgación de vulnerabilidades comunes, que no son de desarrollo propio, por ejemplo un error en un servidor web que se corrige actualizando, reconfigurando o implementando algún parche externo.
A esto le sumaríamos los resultantes de probar que la aplicación cumpla con lo que se supone que tiene que hacer.

Lo que veo del análisis estático, es que son tests pero no están aplicados a un caso de uso, un flujo, una clase o método en particular, sino al texto del código, por ejemplo, es un error que:

  • halla una clase con más de ... lineas
  • halla un método con más de ... lineas
  • hallan nombres de clases, métodos o variables demasiado largos o cortos
  • halla un nivel de anidamiento mayor a ...
  • una referencia a un objeto pueda llegar a ser usada siendo null
  • un dato proveniente del exterior, source, pueda llegar a ser utilizado, sink, sin pasar por un sanitizer

Si mi build se rompe por que no paso jUnit y se rompe tambien por Fortify/FindBugs, para mi es lo mismo, no me importa si el código se ejecutó o no.



No es mi situación actual, pero para mi las vulnerabilidades deben estar junto a los otros bugs, aunque con un tratamiento especial: a menos que el bug tracker/project management tool tenga un soporte completo de roles y permisos a nivel de entrada, no se puede poner la descripción ni ningún detalle, pues se está mostrando como afectar al sistema.


Para destacar


Liliana la decana de la Universidad Atlántica Argentina reiteró su ofrecimiento a la comunidad local de usar las instalaciones para los encuentros periódicos necesarios para su funcionamiento.


Disparadores


Me parece que se sembró la semilla de Agiles Argentina 2015 @mdp, para que germine va a hacer falta el apoyo de todos.


No se si es tarde para AA2014 pero podría ser factible para AA2015, sea donde sea, el Agile Micro/Hotel, supongo que contratar un micro/hotel lleno puede resultar significativamente más barato que viajar/alojarse individualmente.


[1] http://www.ideasagiles.com/

[2] http://blog.codinghorror.com/working-with-the-chaos-monkey/
[3] http://groups.yahoo.com/group/foro-agiles/
[4] http://groups.yahoo.com/group/agiles-argentina/


[5] http://nicopaez.wordpress.com/