Imaginen.....

7 replies [Last post]
Lightmoon

I am a member!

Offline
Joined: 12/16/2013

Hola a todos.

Quisiera que os pusierais por un momento en este lugar.

Vivimos en una sociedad digital donde todo el software y hardware son libres. Hemos conseguido que todo sea libre.
Ahora todo el software empresarial es libre. Las empresas ya no quieren pagar por tener el código fuente, ya que este lo pueden conseguir de mil formas. Ahora reina el ser-vicio.
Una empresa, os contacta como programadores, para realizar un cambio en un ERP libre. Desean que el módulo correspondiente a productos sea totalmente adaptado a la empresa. Hasta aquí todo es correcto. Resulta que el ERP está siendo mantenido por una gran comunidad, donde cada poco tiempo dan nuevas funcionalidades a la aplicación.

La persona que os contrató quiere que modifiquéis lo que os pide pero también quiere que este se alimente de las mejoras que desarrollan en la comunidad. Aquí es donde surgen los problemas. Has modificado un software con tu estructura, tanto funcionalmente como en la base de datos, cuyos cambios no son compatibles con las versiones de la comunidad. Llegar a fusionar tales cambios puede llegar a resultar terriblemente complejo y caro. La empresa ha de elegir entre tener los cambios de la comunidad o las modificaciones que tu has realizado.

Con todo esto simplemente quiero hacer una reflexión, y por que no una lluvia de ideas.

¿De verdad este modelo de negocio basado en el software libre es rentable para programadores autónomos?. ¿Las comunidades que desarrollan un software pueden convertirse en monopolios de este ya que eliges entre sus modificaciones o las tuyas?, en tal caso, ¿creas otra comunidad con estos cambios?, ¿sale rentable crear otra comunidad donde la anterior ya está bien consolidada?.

La verdad es que no sé ya que pensar.

Un saludo.

dcapeletti
Offline
Joined: 04/03/2014

Hola, primer error:
Las empresas ya no quieren pagar por tener el código fuente. En la vida real, nadie te va a regalar el código fuente. Se cobra por ello al cliente porque realmente es la parte programa que entienden los programadores. Luego el cliente hace lo que quiere, si regalarlo o no.

El modelo de software es rentable depende del mercado que tengas. Si no consigues clientes para las soluciones que desarrollas, no será rentable. El empleo humano lo genera el mercado de consumo que existe. Si no hay mercado de consumo, no te emplearán a ti ni a otros.

Hay cientos de formas de ganar dinero, es solo pensar como adaptar el servicio al mercado que lo requiere:
* Desarrollando una funcionalidad/extensión para una aplicación en particular. Puede pedir X monto para el desarrollo. Muchas aplicaciones de software libre soportan extensiones, gimp, freecad, emacs, abrowser, libreoffice, etc. En este link https://www.indiegogo.com/projects/account-backup-and-restore-for-diaspora--3#/ una persona ha propuesto desarrollar una funcionalidad para diaspora y pidió 3500 dólares, ya le dieron mas de 4700 dolares. En la página explica bien cual es su meta. No puedes no leerla!!

* Puede compilar un binario adaptado para un cliente particular. Puede cobrar lo que quieres por ello. Hay mucho cosas mas para imaginarse que se puede hacer.

Los problemas que planteas es parte de la naturaleza de la libertad y de una industria blanda. Es así como surgen las ideas, como surgen las cosas materiales (Autos, trenes, etc), los modelos abstractos, etc. La naturaleza de pensamiento de cualquier persona es distinta a la otra. Es el caso normal por ser software libre.
Lo que planteas no está contemplado en la definición del Software libre. Eso lo tiene que resolver quienes planifican el proyecto. Estos temas están relacionados con materias como Administración de proyectos y Arquitectura del Software.

Hay distintas comunidades que se retroalimentan entre ellas, crecen, se dividen y se fusionan con otras. De echo muchos proyectos de Software libre surgen gracias a estas posibilidades. LibreOffice surgió gracias a la división de la comunidad OpenOffice. Esta historia es un poco larga. LibreOffice y OpenOffice se retroalimentan separadamente. Es el ejemplo mas claro que se me ocurre. Es tu trabajo investigar mas por tu cuenta sobre como resuelven ellos estos problemas. Suerte!!

Sds

Lightmoon

I am a member!

Offline
Joined: 12/16/2013

"Las empresas ya no quieren pagar por tener el código fuente. En la vida real, nadie te va a regalar el código fuente. Se cobra por ello al cliente porque realmente es la parte programa que entienden los programadores. Luego el cliente hace lo que quiere, si regalarlo o no."

Imagínate un software como GIMP. Ninguna empresa va a pagar por tener el código fuente, ya que lo pueden adquirir de muchas maneras. Desde la misma web de GIMP, hasta usuarios que lo posean y lo compartan.

"* Desarrollando una funcionalidad/extensión para una aplicación en particular. Puede pedir X monto para el desarrollo. Muchas aplicaciones de software libre soportan extensiones, gimp, freecad, emacs, abrowser, libreoffice, etc."

Estás hablando de funcionalidades añadidas, no modificaciones del programa. Si modificas, como en el caso anterior, todo un módulo, deja de tener conexión con el proyecto original. Y es difícil añadir las mejoras de la comunidad a tu proyecto.

"Lo que planteas no está contemplado en la definición del Software libre. Eso lo tiene que resolver quienes planifican el proyecto. Estos temas están relacionados con materias como Administración de proyectos y Arquitectura del Software."

Lo que planteo es una consecuencia lógica de un modelo como es el Software Libre. Debemos de crear soluciones a estas consecuencias.

Al final, si mi cliente me pide un cambio importante pero desea mantener actualizado el resto del programa posiblemente sea inviable, por lo que pasará como ahora, que las empresas se adaptan al software, no el software a las empresas. Ya que estas prefieren usar un software que se actualice periódicamente a que un programador les modifique un área y sea poco factible el incluir las demás mejoras de la comunidad.

Un saludo.

dcapeletti
Offline
Joined: 04/03/2014

Los programadores de GIMP ganan dinero por su trabajo. Recaudan fondos para hacer el programa, reciben donaciones, como en el ejemplo que te he pasado. Luego de ganar el dinero, ellos publican el programa. ¿realmente crees que los programadores de GIMP no ganan nada de dinero?. Si los programadores de GIMP no ganan un centavo, créeme que hace rato gimp no estaría en marcha. ¿Crees que la FSF no gana dinero?

"Si modificas, como en el caso anterior, todo un módulo, deja de tener conexión con el proyecto original."
Para una herramienta de versionado, no es del todo cierto...¿Cómo crees que funciona Git? Varias personas pueden tomar una copia del proyecto, modificarlas separadamente y enviar los cambios al proyecto origen. Muchas de las preguntas que planteas se revuelven entendiendo como funcionan las herramientas de versionado como Git. Git permite todo lo que planteas. Aquí tienes una serie de tutoriales (10 pequeños capítulos) que te muestra como funcionan las comunidades: https://www.youtube.com/watch?v=7JCSnGJ5kkk

"Al final, si mi cliente me pide un cambio importante pero desea mantener actualizado el resto del programa posiblemente sea inviable."
Con las herramientas de versionado puede mantener los archivos tuyos y actualizar el resto con los cambios de otros. Te repito, esto se logra entendiendo como funcionan Git. ¿Cómo crees que libreoffice y openoffice se mantienen al día entre ambos? Pues...puedes investigar por ahí o con personas que mantienen programas grandes o distribuciones GNU/Linux.

Sds

Lightmoon

I am a member!

Offline
Joined: 12/16/2013

"Los programadores de GIMP ganan dinero por su trabajo. Recaudan fondos para hacer el programa, reciben donaciones, como en el ejemplo que te he pasado. Luego de ganar el dinero, ellos publican el programa. ¿realmente crees que los programadores de GIMP no ganan nada de dinero?. Si los programadores de GIMP no ganan un centavo, créeme que hace rato gimp no estaría en marcha. ¿Crees que la FSF no gana dinero?"

No todos los programadores de GIMP ganan dinero. Me gustaría recordar que la filosofía del movimiento del Software Libre promueve "el compartir", por lo que las empresas, como dije antes obtienen el código fuente de diversas formas.

"Para una herramienta de versionado, no es del todo cierto...¿Cómo crees que funciona Git? Varias personas pueden tomar una copia del proyecto, modificarlas separadamente y enviar los cambios al proyecto origen. Muchas de las preguntas que planteas se revuelven entendiendo como funcionan las herramientas de versionado como Git. Git permite todo lo que planteas. Aquí tienes una serie de tutoriales (10 pequeños capítulos) que te muestra como funcionan las comunidades: https://www.youtube.com/watch?v=7JCSnGJ5kkk".

Sé como funciona Git. Ten en cuenta que tu hablas de GitHub (que no es Git). Cuando varios desarrolladores modifican parte de un código fuente, pueden existir conflictos, que se han de solucionar. Si mi cliente tiene funcionando un programa hecho por una comunidad en producción y yo lo modifico así como su BD, posiblemente Git no sea la solución para implantar las actualizaciones de terceros. Es todo bastante más complejo que usar Git.
Quizás tenga que ampliar mis conocimientos, pero todavía no hay solución eficiente para lo que planteo.

Un saludo.

dcapeletti
Offline
Joined: 04/03/2014

Pues claro que no todos los programadores de GIMP ganan dinero, quizás solo los de tiempo completo, algunos aportan al programa en su tiempo libre porque les gusta contribuir. Mediante esta modalidad de pago y de aportaciones, las empresas se benefician directamente del servicio de los programadores. Es decir, nadie hará el trabajo gratuito para ti, siempre tendrás que pagar a alguien para que te lo haga. Aunque si hay personas que les gusta hacer el trabajo sin que le paguen, que no estoy de acuerdo con ellas.
GitHub es un servicio de alojamiento. Los comandos git que aprendes puedes usarlo indistintamente con github o con tu servidor gitlab. Lo que quiero decir es que una herramienta de versionado como git explica muchas de las soluciones a tus preguntas. Los programadores que dominan git pueden hacer cosas bastante complejas, que están fuera de mi alcance.
Los grupos de trabajo que están dispersos en distintos países para hacer un mismo programa, hay personas que llevan ramas distintas ramas del programa y la fusionan con la principal, vuelven atrás la vuelven a fusionar...se puede hacer de todo. Te dejo una imagen de una estructura de cambios en git, donde cada persona tiene su rama y hace cambios que envía al master.
Y créeme que tus preguntas ya están mas que resueltas...Quizás debas hablar con personas que dominan git, con los que desarrollan distribuciones como Ruben o quizás los que participan en alguna comunidad de un programa importante.

Sds

github.png
Lightmoon

I am a member!

Offline
Joined: 12/16/2013

Querido dcapeletti,

en primer lugar quiero dejar claro que esto no es una discusión, más bien es un intercambio de ideas ;)

Ya sabeis que a mí me gusta mucho darle a la cabeza, y me paso mucho tiempo pensando. Parezco un niño, siempre preguntando el por qué. No sé si esto es bueno o malo, pero soy así.

Aclarar que estoy y siempre estaré a favor del software libre, sino no hubiera publicado un libro ni desarrollaría el software con licencia GPL.

Decir que uso Git sólo en mi máquina, ya que no necesito de un servidor con Git. Actualmente estoy desarrollando yo sólo, por lo que a mi parecer se pierde la iniciativa de aprender cosas como GitLab, más que nada por que no me es necesario.

No sabía de la existencia de GitLab. Parece fantástico, la pregunta es, ¿se considera software libre?. Nunca entenderé como es posible que existen versiones de pago y de la comunidad de un mismo software, ya que la propia licencia GPL dice que si usas código de un programa libre, tu programa tiene que ser libre, por lo que hacer "forks" con versiones no libres a mi parecer es ilegal.

Un saludo.

dcapeletti
Offline
Joined: 04/03/2014

Las preguntas que planteas, confío que ya están resueltas. De echo las herramientas de trabajo en línea y de versionado como git, se ha creado para solucionar muchos problemas de este tipo. Solo que por aquí quizás no hay gente experta en el tema. Te he respondido desde mi propia experiencia, con mis humildes conocimientos. Espero que puedas hallar mejores respuestas a tus preguntas. No es un tema que se pueda responder en pocas líneas, mas bien se aprende con la experiencia. Por eso quizás si te contactas con gente que trabaja en grupos de desarrollo de grandes programas, quizás te puedan resolver estas dudas.

Preguntar y plantear dudas, no esta bien ni mal, es normal. Me interesó que hayas planteado estas dudas, mucha gente se preguntará lo mismo.

Entender GitLab es interesante, de echo Trisquel tiene su propio servidor bitlab https://devel.trisquel.info/groups/trisquel donde Ruben y muchos otros colaboran en el desarrollo y/o mejoración de Trisquel. Ruben gana dinero por su trabajo, mientras que otros colaboran porque les gusta. Gitlab es software libre, pero puedes usar un servidor con gitlab que tengas que pagar o no. Puedes leer este hilo: https://trisquel.info/en/forum/repositorios-para-desarrollo-de-software-libre

No entiendo a que te refieres con versiones de pago de un mismo software. El titular del copyright de un programa puede publicar el mismo programa bajo una licencia libre como la GPL y también esta en su derecho de publicarlo como Sofwtare privativo. Puedes leer esto: https://www.gnu.org/licenses/gpl-faq.es.html#HeardOtherLicense y esto https://www.gnu.org/licenses/gpl-faq.es.html#ReleaseUnderGPLAndNF

Sds