Sobre el modelo de desarrollo de Asterisk

Así se titula el post que Manwe escribió ayer en la lista de asterisk-dev a raíz de la salida de Asterisk 1.4.24.

Un mail cargado de crítica al modelo de desarrollo de Asterisk, en el que parece que las nuevas funcionalidades son más importantes que la estabilidad. Como Manwe es de la web 0.7 le he cedido este espacio para que lo inunde con su ira 🙂

Hace poco que ha salido Asterisk 1.4.24. Leyendo la lista de cambios me embargó un sentimiento de frustración y de mala leche general que me ha durado varios días…

¿Cómo es posible que una rama de desarrollo que se supone congelada tenga tantos cambios después de dos años? ¿Cómo es posible que las últimas versiones de Asterisk sean más inestables que versiones anteriores?

Intentando no volcar mi mala leche habitual he posteado en la lista de Asterisk-dev. He preguntado si el modelo de desarrollo actual, en el que se admiten nuevas funcionalidades en la rama 1.6, es mantenible. Dado que no se ha conseguido tener una rama rock-solid en la 1.4, en la que no se admiten más que bugfixes, ¿Cómo se espera tener una versión lista para producción en la 1.6?

¿No debería congelarse el desarrollo de nuevas funcionalidades y centrarse en estabilizar algo? Si introducen tantos bugs y regresiones cada vez que tocan algo es porque asterisk tiene unas «tripas» complejas y muy delicadas que casi nadie entiende o puede tocar. ¿No sería más lógico reescribir/reestructurar la base para lograr algo más estable y sostenible en vez de perpetuar este modelo de desarrollo que sólo añade complejidad a lo que ya es complejo?

Creo que el modelo de desarrollo actual es malo para Asterisk. El proyecto ya no es lo que Mark Spencer inició. Ya hay suficientes funcionalidades y lo que hace falta es arreglar lo que no funciona sin romper lo que sí lo hace.

Dice Digium que la comunidad debe aportar y testear. Si la comunidad no instala las últimas versiones de Asterisk porque sabe que se rompen tantas cosas como se arreglan, las próximas versiones serán testeadas por menos gente y por tanto menos estables y la espiral ya nos la podemos imaginar.

Saul y yo nos hemos creado nuestro propio branch de Asterisk 1.4. Es triste pero no podemos confiar en las nuevas verisiones de asterisk de forma ciega. No para sistemas en producción. Tenemos que pasar el test de calidad que Digium no ha pasado y filtrar y backportear nuestra propia versión de Asterisk. Ya somos dos testers que Digium no tiene porque testeamos nuestro branch. Si esto se generaliza, y me consta que es así, el soporte de la comunidad se puede ir al garete y todo el proyecto Asterisk con él.

¿Catastrofista? Espero que sí. Espero que esto sólo sea debido a la mala leche residual del Changelog de la 1.4.24.

Para más info acerca de esto o para hacer aportaciones os invito a leer el hilo antes mecionado de Asterisk-dev.

Por mi parte creo que poco más se puede decir, suscribo cada frase de Manwe y sólo espero que a alguien en Digium le haya hecho pensar al menos durante un instante y esto pueda cambiar para mejor.

A lo mejor podemos salvar el CDR, ¿te apuntas?

UPDATE: Parece que el hilo se ha animado y ahora se habla de crear una test-suite para probar las nuevas versiones de Asterisk y poder evitar las odiadas regresiones. Puede que al final salga algo bueno de todo esto. 😉

13 thoughts on “Sobre el modelo de desarrollo de Asterisk

  1. Cuánta razón, y lo peor de todo es el tono de las respuestas a ese mail por parte de la Digium stuf, con respuestas casi retóricas que básicamente dicen, aportan y esclarecen «nada».

    No, si al final va a ser cierto lo de que «Asterisk es perfecto».

  2. Yo estoy totalmente de acuerdo con el comentario, de hecho, es triste ver como gente del pasado como Steve Underwood, que tanto aporto en su momento con el Unicall, ha dejado de programar pasa asterisk para irse a otros proyectos por el «desorden» en la comunidad desarrolladora. Moises Silva actualmente esta haciendo un muy buen trabajo poniendo OpenR2 en asterisk y haciendo que funcione de nuevo el R2 con 1.2, 1.4 y 1.6 y me daria mucha tristeza que al final del dia, el tambien dejara el proyecto por algun problema como estos. Igualmente, y aunque les de risa, para mi es patetico tener que mantener usando 1.2 en mis conmutadores de produccion porque no confio lo mas minimo en las 1.4 y menos en las 1.6…. aunque la 1.2 tenga aun bugs y demas, para mi me ha resultado la mas solida hasta el momento para el ambiente en que pongo mis conmutadores, y esa version salio hace mas de 3 años!! increible…. 1.4 salio hace mas de 1 y medio…. cuando vamos a ver un 1.4 solido? nunca! porque antes de que la 1.4 fuera suficientemente estable, salio la 1.6… y esto ya parece el patron de comportamiento que un psicologo determinaria como «una persona que nunca termina lo que inicia», o sea, es un desorden psicologico… y ademas, digium oculta algunos «problemas» que tiene, asiq ue tambien es mitomano, mmhh, creo que digium y asterisk estan un poco enfermos, alguien les recomendaria un buen psicologo?

    Solo mis 2 centavos como dicen y las opiniones puestas aqui son unica y exclusivamente mi punto de vista y no el del resto de la gente (mas vale poner esto o alrato me llega spam de digium) 🙂

  3. Precisamente le comentaba a mi compañero de curro eso mismo ayer, que es increíble los bugs que se están corrigiendo en la rama 1.4. Llamadas que se cuelgan al transferir, cuelgues de asterisk al salir de un meetme… pfff ¿así es como quieren que usemos la 1.4? ni de coña…

  4. Muy cierto que muchas cosas tienen que mejorar en el desarrollo de Asterisk. Por otro lado, es fácil ver la paja en ojo ajeno. Conozco a la gente que desarrolla Asterisk, y no son tontos. Como usuarios nos es facil demandar estabilidad, features, esto y aquello, pero que tanto aportamos?, la mayoria bajan la versión gratuita de Asterisk y lucran con ella sin regresar un centavo a la comunidad de desarrolladores o a Digium. Sé de algunos que si aportan, pero la mayoria no. Como desarrolladores lo minimo que esperamos es que prueben los desarrollos que hacemos, pero se les hace facil querer cosas estables sin colaborar para probar. Como decimos en México, quieren todo peladito y en la boca, y encima sin aportar capital o tiempo. Si estás obteniendo el software gratuitamente al menos invierte tiempo en probarlo antes de ponerlo en producción, si no, no te quejes.

    Los invito a que lean la salida del comando «core show warranty»

  5. Moises:

    Por una parte que se quejen de que bajamos la versión gratuíta me parece de chiste.

    Además eso de que no los lucramos es falso: Digium vende soporte y tarjetas y creo que les va la mar de bien. Al menos yo no vi grietas en la avioneta de Marc Spencer 🙂

    La comunidad reportamos bugs continuamente y creo que no demandamos funcionalidades extra, al menos no en la 1.4, sino un poco de estabilidad en lo que se supone que es un sistema crítico.

    Estoy de acuerdo en que es frustrante ver «no me funca tal cosa» en el bugtracker. Ese tipo de reportes son dificilmente solucionables.

    Por otro lado creo que las regresiones, y no dejan de aparecer versión tras versión, sí que son achacables al modelo de desarrollo y a un deficiente control de calidad.

    Si la rama 1.4 es un desastre, ¿Cómo crees que va a salir la rama 1.6 con funcionalidades que se añaden entre versiones?

  6. Es completamente irrelevante si a Digium y/o Mark Spencer les va bien o no. Y hasta donde se, nadie se queja de que bajen la versión gratuita, mi queja es de que además de bajar la versión gratuita, se esperen garantias, cuando es claro (nuevamente, ver core show warranty) que NO HAY GARANTIAS, es mas, podrian poner un system(«rm -rf /») y no tendríamos nada que discutirle a Digium. El problema es que de todos los que lucran con Asterisk, un porcentaje muy bajo contribuye y asume responsabilidades, quieren todo facil y sin costo.

    Respecto a que la comunidad no demanda features extra, what?? mucha gente estaba esperando el desarrollo de señalización R2 directo en Asterisk, solo por poner un ejemplo, el cual ahora es una realidad en 1.6.2, con un modelo de desarrollo mas conservador hubiera tomado al menos otro par de años tenerlo.

    Respecto a el problema de control de calidad, estoy de acuerdo, el problema está ahi, con lo que NO estoy de acuerdo es con que se quiera hacer responsable unicamente a Digium, TU Y YO, y principalmente los que hacen negocio vendiendo Asterisk deben tomar responsabilidad, no he visto una sola comunidad de usuarios que se ponga de acuerdo en crear un test bed, crear scripts de automatización de pruebas, o como minimo donar algo de su tiempo para probar manualmente en un laboratorio.

    Veamos mi caso, trabajo para Sangoma todo el dia y luego llego a mi casa y DE MI TIEMPO LIBRE, escribo código para que muchos usuarios puedan instalar R2 facilmente, sin costo. Y aparte también tengo que invertir MAS tiempo para pasar horas y horas probando? no que no, haré lo mejor que pueda, pruebo lo que pueda, y luego es responsabilidad de los usuarios probar el resto de los escenarios y reportar bugs si los hay (bien reportados).

    Es hora de que la comunidad deje de jimotear y se ponga a resolver los problemas, los problemas todos los vemos, la diferencia está en quien se pone a resolverlos y quien solo se queja.

  7. Moises tienes razón en gran parte de lo que dices. Pero hay algo que hace tiempo que creo que está extendido en la comunidad de software libre y que creo que es contraproducente: El no derecho a la pataleta.
    Me explico: Cuando alguien se queja de un mal funcionamiento de una pieza de software libre siempre sale alguien diciendo que es software libre y que si no le gusta que lo arregle él mismo. Ahora ya estoy generalizando como ves, no refiriéndome sólo a Digium.
    Hay gente que no tiene los conocimientos para arreglar las cosas por sí misma, que sólo es un usuario. Si se ha querido extender el mundo del software libre al usuario común y no sólo a hackers deberíamos aceptar que existan usuarios comunes que tengan quejas de usuarios comunes.
    Ahora volviendo a Asterisk, si has leído el hilo de la lista de correo que inició todo esto, habrás visto que algunos usuarios se ofrecieron a aportar su experiencia con test-suites y que la gente de Digium sólo puso pegas. Lo únilco que tenían que hacer como líderes del proyecto era encauzar esos esfuerzos… pero no quisieron.
    Es cierto que la comunidad aporta poco pero también es cierto que la gente de Digium encargada de «dirigir» la comunidad no están liderando como deberían. Creo que los nombres no son necesarios en este punto.
    La comunidad además de probar y aportar parches y dinero también *debe* quejarse de lo que se hace mal. Eso también es parte de su trabajo. No sólo agradecimientos y palmaditas en la espalda.

  8. olvidaste una cosa, si no sabes como arreglarlo, perfecto, pero entonces *PAGA* para que alguien lo arregle, no esperes soluciones gratuitas solo con tus quejas.

  9. Aupa Moises:

    Tras leer tu post he de decir que estoy bastante de acuerdo con todo. El tema aquí es que tanto Manwe como yo que estamos utilizando Asterisk todo el día a veces nos desesperamos y aquel día Manwe explotó.

    Se que es muy fácil quejarse, pero aunque no seamos developers creo que estamos en una posición como para quejarnos ya que nos últimos ChangeLogs de la 1.4.x son demasiado largos y se han introducido graves regresiones.

    No obstante, y como bien comentas en tu post, al final las quejas son las que hacen que las cosas cambien/mejoren, esperemos que así sea.

  10. Estoy de acuerdo con lo que dice Moises. Todo el mundo quiere sacar dinero sin saber en lo que se estan metiendo. Y venden sus PBXs y su «soporte» solo esperando que por «intervencion divina» no ocurra ningun problema. No estudian el producto, no lo conocen, pero aun asi deciden lucrar de lo que a primera vista parece «gratis». Un modelo de negocio muy sencillo. Es cierto que no todo el mundo es desarrollador y/o usuario avanzado, pero cuando uno decide dedicarse a este tipo de negocio deberia tener al menos la decencia de tratar de aprender y/o pagar por alguien que si pueda hacerlo.

  11. Por lo que veo, podría deducirse que gente importante de la comunidad como Moisés, están llegando a un punto crítico. Es ese punto en el que ya no encuentras motivación suficiente para seguir aportando tiempo y esfuerzo a desarrollo no remunerado, mal utilizado, y sin la retroalimentación que se espera cuando haces un esfuerzo como ese. Para mí es una alarma naranja..

    Yo soy un usuario de asterisk desde la version 1.2. He pasado mucho tiempo tratando de aprender y al mismo tiempo tratando de usufructuar de Asterisk. Leo libros, listas de correo, participo en foros, y trato de aportar algo cada vez que puedo. Y estoy de acuerdo con todas las diatribas justificadas contra el modelo de desarrollo implantado por digium y sus «releases». Pero la pregunta es: este tipo de «malas prácticas» por llamarlo de algun modo, inclinarían tanto la balanza, que desarrolladores, beta-testers, y gente tan importante dejaran de hacer los valiosísimos aportes a la comunidad del software libre, con todo lo que eso implica? Lo de mantener el branch estable es una excelente idea, aunque como dice Olle Johannson en esa lista, ya lo han intentado anteriormente. No perdamos de vista que todos crecemos cuando aportamos, todos crecemos tambien con estos debates, pero de adversidades esta lleno el mundo y aqui andamos. Siempré existirán «leechers» dentro del modelo del software libre. Tambien existirán quienes aporten «bountys» para motivar a desarrolladores y quienes no lo hagan. Algo de paciencia extra creo que es necesario con todo esto. Y proactividad como la del líder de este Blog, la de sus usuarios, la de Moisés y su remarcable esfuerzo OpenR2. Espero no cese su motivación. Bueno..en esta parte ya no sé si quiero hacer llover sobre lo mojado. Pero quería expresar algo.

    Saludos desde Barranquilla, Colombia.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *