Factores importantes a considerar para conseguir financiación
En el artículo anterior hicimos un cálculo estimado de cuánto puede costar el desarrollo de un proyecto de código abierto. Ahora, veremos de dónde sacar la plata o conseguir personas que hagan el trabajo gratis o donen recursos
Factores importantes a considerar para encontrar un modelo de financiamiento
Al momento de elegir modelos de financiamiento, hay que considerar diferentes factores:
Interés
Lo primero que hay que considerar es el ínterés que despierta el proyecto. Probablemente nadie esté dispuesto a colaborar voluntariamente en la millonésima distro basada en Debian, ni mucho menos a pagar por ella amenos que tuviera una característica distintiva, como por ejemplo Devuan que no usa SystemD. Por el contrario, LineageOS o Ubuntu Touch (alternativas al Android de Google tienen un razonable nivel de apoyo de desarrolladores y patrocinadores.
Cuando hablo de interés, no me refiero solamente al usuario final. Si imaginaste un sistema de cifrado mucho más impenetrable que los que se conocen, las corporaciones se pelearan porque aceptes su dinero.
Complejidad
No es lo mismo desarrollar una aplicación que hace una sola cosa (por ejemplo reproducir música) que una suite ofimática con un procesador de textos que incluye múltiples opciones de diagramación, uno de presentaciones con cientos de animaciones y una planilla de cálculo con todas las fórmulas matemáticas comunes. Y, que por supuesto sea capaz de leer y guardar los formatos más populares.
También, hay aplicaciones como El Gimp que se crean para un solo propósito (la manipulación de imágenes) pero, que requieren el conocimiento de fórmulas matemáticas muy específicas que implican un conocimiento especializado.
Plataforma
A medida que los servicios en la nube se van popularizando, este es un tema que va perdiendo importancia, pero todavía está muy vigente.
Una aplicación de cálculo de impuestos para Linux, probablemente no despierte demasiado interés ni en los desarrolladores voluntarios que estén deseando formar parte de un proyecto, ni mucho menos en los patrocinadores voluntarios o corporativos. En cambio, si podrías tenerlo en el caso de un juego de calidad similar a los comerciales.
De la misma forma, una app para Android tendrá más posibilidades que una para Ubuntu Touch.
Interfaz de usuario
Si vas a desarrollar una aplicación para Linux, Windows y Mac deberás decidir si quieres que la interfaz de usuario se mimetice con el resto de las aplicaciones, o le pones a todas las variantes la misma interfaz. En el caso de que solo la quieras para Linux, deberás tomar la misma decisión para cada uno de los escritorios.
Si eliges crear una aplicación específica para un escritorio, tendrás la ventaja de que reduces el tiempo de desarrollo, además de que si es interesante, probablemente se la adopte como parte del escritorio y consigas más desarrolladores y financiamiento.
Lenguaje de programación
Existe una generosa oferta de lenguajes de programación para crear un proyecto. Algunos como Python o C++ llevan mucho tiempo entre nosotros y cuentan con una amplia comunidad de desarrolladores que lo conocen a fondo. Otros como Dart o Go son relativamente nuevos, pero al ser más modernos se adaptan mejor a los paradigmas actuales de desarrollo de aplicaciones.Componentes ya desarrollados.
Componentes del proyecto
Dependiendo del lenguaje de programación elegido y del propósito del proyecto, se podrá encontrar una serie de bibliotecas con la que es posible ahorrar tiempo y de una selección de interfaces de programación de aplicaciones (API) con la que se facilita ampliar funcionalidades conectándolas a servicios externos. En general, las librerías (al menos en los lenguajes de programación de código abierto) son gratuitas, pero en el caso de las API, o ponen limitaciones a su uso gratuito, o debes pagar una cantidad por usuario que utilice la aplicación.
Canal de distribución
Además de los gestores de paquetes de las distribuciones Linux, también esta la opción de la descarga directa, las tiendas Snap y FlatPak y los paquetes Appimage. Snap ofrece la posibilidad de incluir pagos dentro de la aplicación, mientras que distribuciones como ElementaryOS tienen una tienda de aplicaciones en la que puede venderse software. La tienda oficial de Android e iOS están siendo cuestionadas por las condiciones abusivas que imponen a los desarrolladores, por otro lado, Microsoft está ofreciendo condiciones generosas para los interesados en crear productos para Windows 11.