Mercados de productos Open Source para desarrolladores

Ayer en Twitter se forjó un debate interesante inciado por Christian Soronellas, sobre este tema, concretamente sobre el cobrar por desarrollar productos y componentes de software para otros desarrolladores.

twit_chr

Esto me hizo recordar que, en el sitio web de Symfony en Español, Javier Eguiluz hizo una encuesta que tenía como objetivo recoger feedback para saber si la comunidad estaría interesada en desarrollar bundles (componentes de desarrollo) de pago. Estos fueron los resultados.

Otro tema interesante se lo leí a Álvaro Ortiz el otro día también en Twitter y me pareció una idea bastante chula: un servicio que pagase a los desarrolladores por solucionar issues pendientes en repositorios Open Source de github.

twit_furilo

El tweet de Álvaro se inspiró en el servicio GitTip, un crowdfounding en el que puedes pagar a desarrolladores en agradecimiento a su trabajo.

Volviendo al tema de los mercados, en algunas plataformas Open Source ya existen marketplaces que están funcionando bien, sobre todo en soluciones de eCommerce donde el valor que dan dichos componentes es muy claro ya que puede ahorrar costes y tiempos de desarrollo al desarrollador pero sobre todo al cliente final. Un ejemplo de mercado de este tipo es el Magento Connect.

En otras tecnologías emergentes, como Xamarin, podemos ver mercados de componentes que aparentemente también funciona muy bien.

Quizá uno de los principales impedimentos que tenemos en la comunidad PHP en comparación por ejemplo a la de Xamarin o quizá la de .net, es que históricamente los desarrolladores que han optado por esta tecnología no están acostumbrados a pagar por este tipo de cosas.

Sin embargo, creo que el mercado ha cambiado, o al menos está cambiando. Por dos motivos:

La expectación del cliente final ha cambiado

Los requisitos actuales para construir software web son mucho más exigentes que hace siete años.

A pesar de que cada vez hay más clientes que siguen la filosofía Lean o ya son conscientes de la importancia de desarrollar un producto mínimo viable, para ciertos servicios el optar por utilizar sistemas como Joomla o WordPress puede salir caro ya no a largo, sino a medio plazo.

Cada vez más, los servicios online requieren ser desarrollados con calidad, pero también en tiempos muy ajustados, sobre todo en mercados como el de Internet donde el time to market es importante.

Las herramientas han cambiado

Esto es una causalidad de lo anterior. Las herramientas se han adaptado a metodologías que nos permiten ser más productivos y adaptarnos a cambios drásticos del cliente.

En el mundo PHP, en menos de tres años, hemos visto aparecer no sólo frameworks como Symfony2, sino utilidades como composer que han dado un salto de calidad en nuestros hábitos de desarrollo.

Los frameworks nos están llevando a adoptar buenas prácticas de desarrollo como TTD, BDD o el uso de Inyección de dependencias. Esto nos hace posible desacoplar partes de nuestro código y poder por fin, acercarnos a una reutilización de calidad, calidad en el sentido de mantenimiento.

Teniendo en cuenta estos dos puntos, veo muy favorable, sobre todo mirando a largo plazo, el hecho de que nos planteemos de forma seria el rentabilizar esos desarrollos que podemos reutilizar en varios proyectos, ahorrando tiempo al cliente sin perder calidad.

Al igual que comentaba Javier Eguiluz en el resultado de la encuesta anteriormente citada, veo muy importante el crear un mercado de este tipo. Probablemente muchas de las cosas que echamos de menos en Symfony2 estarían resueltas y con mantenimiento gracias a dicho mercado.

Eso sí, si todos lo viésemos claro, el reto entonces sería cómo hacerlo, cómo vender esos productos.

Ahí van algunos puntos que veo que darían para un debate:

Producto y soporte

Desarrollas el producto y lo vendes. Pero es ahí cuando empieza todo, sobre todo si es basado en tecnología open source. No voy a decir que el código no vale nada, porque probablemente me mataríais, pero sinceramente creo que lo más valioso es estar detrás dando soporte y updates al producto.

El soporte es lo más caro del desarrollo de un producto y sin soporte, la experiencia es mala y tu producto es percibido como humo.

Hay muchos ejemplos de cómo enfocar esto, aunque como siempre, creo que sería posible darle una vuelta de tuerca al asunto.

Precio y forma de cobro

Teniendo en cuenta lo anterior, es clave poner un precio acorde a lo que vas a ofrecer. Es muy posible que si te equivocas en el precio, cuanto más vendas, más dinero pierdas.

El precio no se puede decidir en una mañana echando un café, es uno de los puntos más difíciles a la hora de crear un producto.

En un mercado de este tipo podríamos llegar a pensar que la guerra de precios es inevitable, pero al ser desarrolladores, sabemos diferenciar de forma muy directa qué producto tiene mejor calidad o soporte, que al final son los baremos más adecuados para medir si un precio es adecuado o no.

Distribución y licencia

Si hablamos de productos Open Source orientados al desarrollador y de que los updates son una parte muy importante, no sería descabellado el pensar que lo natural sería dar acceso al repositorio a nuestros clientes de pago.

Si esto nos parece exagerado o nos da pánico, gracias a composer podemos crearnos nuestro propio repositorio de paquetes privado para composer con la utilidad Satis.

Por último, podríamos optar por la manera tradicional de descarga vía zip y que nuestros clientes gestionen las actualizaciones de forma manual.

En el tema de las licencias tengo muchísimas dudas, incluso después de haberme leído unas tres veces este genial libro sobre el tema. Es un punto importante que nos sirve para proteger el producto de una forma más efectiva que cosas como la encriptación de código, que yo personalmente rechazo completamente.

En resumen, creo que crear mercados de este tipo son muy importantes para desarrolladores de PHP, tanto de Symfony como de otros frameworks y daría para un debate muy interesante e incluso para un evento en el que contar experiencias reales vividas al vender productos de este tipo.

3 comentarios en “Mercados de productos Open Source para desarrolladores”

  1. Gracias por escribir este post Asier y por animar el debate sobre la reutilización de componentes desarrollados por terceros.

    Hace unas semanas tuve una larga “discusión” con algunos miembros muy conocidos de la comunidad Symfony sobre el estado de la industria informática. Para resumirlo mucho, en mi opinión es una industria my inmadura comparada con el resto de industrias relevantes del mundo. Y lo que más echo de menos es la “industrialización” del desarrollo de software.

    No entiendo por ejemplo cómo en 2014 alguien puede desarrollar desde cero un blog o una tienda de comercio electrónico. Y además hacerlo siguiendo las indicaciones y caprichos de un cliente que sabe mucho de su negocio pero casi nada de Internet o del mercado de las apps.

    Además del problema que comentas de lo poco acostumbrados que están algunos programadores a pagar por componentes de terceros, creo que existe otro problema. Me he encontrado con muchos programadores obsesionados con programar hasta el último byte de su aplicación. No se trata de no pagar, sino de que absolutamente todo debe estar programado por ellos. Piensan que sus empresas les pagan por programar, cuando en realidad a los programadores les pagan por resolver problemas o por hacer realidad las necesidades de los clientes.

    Creo que esto también está relacionado con la moda del “software craftsmanship”. Me parece que algunos programadores lo han entendido mal y se lo han tomado al pie de la letra. Piensan que el mérito está en buscar la perfección programando todo a mano de manera “artesana”. En realidad el “software craftsmanship” no va de eso, ya que hasta el propio “Uncle Bob” define este término hablando de retorno de la inversión y no de “artesanía”.

    1. Hola Javier, gracias por tu comentario, te respondo a un par de puntos

      > “Hace unas semanas tuve una larga “discusión” con algunos miembros muy conocidos de la comunidad Symfony sobre el estado de la industria informática. Para resumirlo mucho, en mi opinión es una industria my inmadura comparada con el resto de industrias relevantes del mundo. Y lo que más echo de menos es la “industrialización” del desarrollo de software.

      No entiendo por ejemplo cómo en 2014 alguien puede desarrollar desde cero un blog o una tienda de comercio electrónico. Y además hacerlo siguiendo las indicaciones y caprichos de un cliente que sabe mucho de su negocio pero casi nada de Internet o del mercado de las apps.”

      Esto es cierto, pero creo que afecta a todos los sectores donde el producto desarrollado no se puede “tocar”. Producción de vídeo, diseño, música etc El cliente siempre va a querer cosas poco recomendables para él mismo, es parte de nuestro trabajo el convencer y negociar esos temas.
      Si este tipo de clientes no nos interesan siempre podemos evitar trabajar para ellos. También se pueden limitar en el contrato, pero siempre a riesgo de perder el proyecto claro. Creo que va en el pack de trabajar con clientes y es un skill que el programador o la persona que trate con el cliente va a tener que desarrollar a nivel personal.

      Sobre el tema de desarrollar desde cero un comercio electrónico puede estar justificado, justo en ese tipo de proyectos el elegir una herramienta en la fase inicial que no case con el negocio puede convertir todo el proyecto en un infierno. Sería interesante un debate sobre lo complejo que es el eCommerce y cómo puede ser una trampa el adoptar un Prestashop o Magento para un cliente que tiene necesidades muy concretas. Pero ese sin duda es otro tema :)

      > “Me he encontrado con muchos programadores obsesionados con programar hasta el último byte de su aplicación.”

      Ciertamente, esto es frecuente y creo que muchos hemos pasado por esto.

      En el mundo Symfony creo que ayudaría el hecho de pagar por el soporte de los bundles para tener “una garantía” de que esos bundles van a estar mantenidos. Yo no le voy a meter un bundle para la gestión de usuarios a un cliente que hace mil cosas, tiene mucha configuración y si falla no sé cuánto tiempo de respuesta me van a dar o si me voy a tener que comer el marrón yo de arreglarlo.

      En el mundo de WordPress los desarrolladores delegan mucha funcionalidad en plugins de terceros. En el mundo Symfony, creo que la calidad y perfeccionismo de nuestra comunidad de desarrolladores juega en nuestra contra.

      Es din duda un debate interesante. Saludos!

  2. Recuerdo hace años realicé un proyecto con joomla. En un momento dado necesité recurrir a un módulo de terceros y que era de pago. Como el precio era razonable y me lo cubriría el pago del proyecto lo compré sin ninguna duda. No dudo que un mercado de bundles funcionaría, lo que sí dudo es en si saldría rentable.

    Los programadores somos bastante impulsivos como norma general y si tu bundle no te genera un buen dinero cada mes, veo dificil la continuidad de su mantenimiento. Sólo hay que mirar knpbundles y cómo muchos de ellos están abandonados.
    Distinto sería si hubiera detrás del bundle una empresa. Pero entonces el precio sería bastante más elevado seguramente. Pienso en el mercado que hay detrás de los plugins para jira, pero una cosa es una app para una api cerrada y bien limitada y otra para que se acople a un desarrollo diferente cada vez. En este último caso también veo dificil rentabilizarlo.

Deja un comentario

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