P O W E R E D   B Y   G N U

PROCESO DE DESARROLLO DE SOFTWARE LIBRE EN LA SOCIEDAD BOLIVIANA

Presentado por: Alberto Grájeda Chacó n
Ing. Alberto Grájeda Chacón UPB – Cochabamba ­ Bolivia

CONTENIDO
P O W E R E D   B Y   G N U

1.  Breve introducció n al software libre. 2.  Desarrollo de Software Libre. 3.  Software  Libre en la empresa. ¿Có mo nuestro país se  beneficia? 4.  Conclusiones.

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

P O W E R E D   B Y   G N U

1
 BREVE INTRODUCCIÓ N AL  SOFTWARE LIBRE

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

1­ 1
P O W E R E D   B Y   G N U

PROYECTO GNU

El Proyecto GNU comenzó en 1984 con el propósito de desarrollar un sistema operativo  completo tipo Unix el cual es software libre: el sistema GNU (GNU es un acrónimo recursivo  para “GNU No es Unix'‘. Variantes del sistema operativo GNU, que utilizan el núcleo Linux,  son bastante utilizadas hoy día; aunque estos sistemas son frecuentemente referidos como  “Linux'', deberían llamarse más exactamente sistemas GNU/Linux.  Sitio web: http://www.gnu.org

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

1­ 2
P O W E R E D   B Y   G N U

SOFTWARE LIBRE

“ Software Libre” es cuestión de libertad, no de precio. "Software Libre“ se refiere a la libertad  de los usuarios de correr, copiar, distribuir, estudiar, cambiar y mejorar el software. Mas  precisamente, se refiere a las cuatro libertades de los usuarios de software: • La libertad de correr el programa, con cualquier propósito (libertad 0). • La libertad de estudiar como funciona el programa, y adaptarlo a sus necesidades (libertad  1)  El acceso al código fuente es una precondición para esto. • La libertad de distribuir copias de manera que se puede ayudar al vecino (libertad 2).  • La libertad de mejorar el programa, y liberar las mejoras al publico de tal manera que toda  la comunidad se beneficia. (libertad 3). El acceso al código fuente es una precondición para  esto. 

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

1­ 3
P O W E R E D   B Y   G N U

GPL
Licencia Pú blica General GNU  (GPL) La Licencia Pública General GNU, llamada comúnmente GNU GPL, es usada por la mayoría de  programas GNU. Esta es una licencia de software libre, y licencia de copyleft. GNU recomienda esta licencia para  la mayoría del software que se realiza con éste propósito. Esta designada para tener la libertad de compartir y cambiar el software. Distribución libre de copias, no gratis. Para la protección del autor, todos deben entender que no hay garantías para el software libre. Si  el software es modificado por alguien y redistribuido, el proyecto GNU quiere que los que  recibieron el software sepan que no es el original, de esta manera en caso de problemas se salva  la reputación del autor. 

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

1­ 4
P O W E R E D   B Y   G N U

LGPL
Licencia Pú blica General Reducida GNU (LPGL) La Licencia Pública General Reducida GNU es usada por algún software. Esta licencia fue llamada  en un principio GPL para bibliotecas pero se cambio el nombre debido a que el nombre antiguo  animaba a la gente a emplear esta licencia más de lo debido. Esta es una licencia de software libre, pero no una licencia de copyleft, porque permite el enlace  con módulos no libres. Es compatible con GPL. GNU recomienda su uso en circunstancias  especiales solamente. Esta licencia se aplica a las personas que designan módulos de software, normalmente librerías.  Otras personas pueden decidir usar este software. Si se distribuye copias de una librería ya sea gratis o por un costo, se debe dar a los que reciben el  software todo los derechos del software original, deben poder tener el código fuente o una  referencia de donde se encuentra.

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

1­ 5
P O W E R E D   B Y   G N U

FDL
Licencia Libre de Documentació n GNU (FDL) La Licencia Libre de Documentación GNU es una forma de copyleft para ser usada en un manual,  libro de texto u otro documento que asegure que todo el mundo tiene la libertad de copiarlo y  redistribuirlo, con o sin modificaciones, de modo comercial o no comercial. Secundariamente, la licencia preserva un crédito del trabajo realizado por parte del autor y del  publicista. Mientras no se considera las posibles modificaciones hechas por otros. Esta licencia se ha designado principalmente para los manuales que se realizan del software libre. Copyleft Copyleft es la forma general de hacer un programa software libre y requiere que todas las  modificaciones y versiones extendidas del programa sean también software libre.

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

1­ 6
P O W E R E D   B Y   G N U

Libre no es gratis

no libre, gratis : Internet Explorer, MacTCP, Acrobat Reader, freeware, etc. no libre, pago : [sin comentarios] . . . 

libre, gratis : Mozilla, Linux, FreeBSD, OpenBSD, sendmail, perl, etc. libre, pago :  distribuciones comerciales de Linux, el software que usted va a encargar a un programador, que  va a contratar, . . . y pagar!

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

P O W E R E D   B Y   G N U

2
DESARROLLO DE SOFTWARE LIBRE

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

2­1
P O W E R E D   B Y   G N U

SOFTWARE LIBRE VS SOFTWARE  PROPIETARIO

Software libre (acceder/modificar el có digo fuente):  •Ventajas pedagógicas indiscutibles : se crean ingenieros mas competentes •Multiplica los verificadores, divide los piratas: el acceso al código fuente atrae a los  programadores competentes •Devuelve el control al usuario Software propietario (ni acceder ni modificar): •No permite personalizar el software, ni estudiarlo •Ningún control de la evolución tecnológica •Multiplica los piratas, divide los verificadores •Facilita la creación de monopolios que cobran un impuesto a la información.

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

2­2
P O W E R E D   B Y   G N U

AMBIENTES DE DESARROLLO PARA  SOFTWARE LIBRE
Existe una buena cantidad de ambientes de desarrollo de software libre para diferentes lenguajes  de programación. •Editores modo texto •Editores modo gráfico

Ambientes de desarrollo modo texto Los editores de texto utilizados con mayor frecuencia  para  desarrollar  software  son  vim  y  emacs.  Ambos  editores  suelen  ser  un  poco  difíciles  de  utilizar  (sus  comandos  son  poco  intuitivos)  pero  muy  eficientes  una vez que el usuario se ha familiarizado con ellos.  Ofrecen las principales características que se pueden  esperar  en  un  editor  de  software  moderno.  Por  ejemplo,  tienen  coloración  de  sintaxis para una gran  cantidad  de  lenguajes  de  programación,  permiten  editar  archivos  remotamente  (sobre  FTP,  Secure  Shell u otros protocolos), etc.
Ing. Alberto Grájeda Chacón UPB – Cochabamba ­ Bolivia

2­3
P O W E R E D   B Y   G N U

AMBIENTES DE DESARROLLO PARA  SOFTWARE LIBRE (2)
•Para  compilar  los  archivos  se  suele  ejecutar  GCC,  el  compilador  del  proyecto  GNU,  capaz  de  compilar  código  en  C, C++,  Fortran, Java  y  otros  lenguajes.  La  integración entre GCC y estos editores les permite a los  últimos reportar los errores detectados en el proceso de  compilación de manera eficiente. Para manejar programas con varios archivos de código  fuente  se  suelen  utilizar  archivos  Makefile,  manejados  por  GNU  Make,  en  los  que  se  describen  las  dependencias  entre  los  archivos.  Para  proyectos  de  gran  tamaño  es  recomendable  utilizar  Autoconf  y  Automake,  dos  herramientas  también  del  proyecto  GNU,  que  ayudan  con  la  generación  de  los  archivos  Makefile. •Para  depurar  código  de  C  o  C++  se  suele  utilizar  GDB.  La  integración  de  Emacs  con  GDB  permite  controlar  el  proceso  de  depuración  enteramente  desde Emacs de manera bastante práctica.
Ing. Alberto Grájeda Chacón UPB – Cochabamba ­ Bolivia

2­4
P O W E R E D   B Y   G N U

AMBIENTES DE DESARROLLO PARA  SOFTWARE LIBRE (3)
Otra alternativa diferente es utilizar un ambiente de desarrollo integrado (a éstos se les suele llamar  IDEs, del inglés “integrated development environment”). Entre algunos de los IDEs disponibles en  software libre se encuentran los siguientes:

Anjuta Un  ambiente  de  desarrollo  pensado  especialmente en C y C++. Fue escrito por  el  proyecto  GNOME  utilizando  GTK+  y  provee  manejo  de  proyectos,  guías  (wizards)  para  guiar  la  creación  de  aplicaciones,  depuración  interactiva  y  edición de código. http://anjuta.sourceforge.net

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

2­5
P O W E R E D   B Y   G N U
Eclipse.

AMBIENTES DE DESARROLLO PARA  SOFTWARE LIBRE (4)
Un avanzado ambiente de desarrollo, que suele ser muy utilizado para proyectos basados en Java. Es  bastante  modular  y  existe  una  gran  cantidad  de  plugins  que  aumentan  su  funcionalidad,  excelente  herramienta para trabajar J2EE. http://eclipse.org

KDevelop
Un  ambiente  desarrollado  por  el  proyecto  KDE.  Provee  manejo  de  proyectos  (generación  de  archivos  Makefile),  integración  con  herramientas  de  traducción  e internacionalización, depuración interativa,  control  de  versiones,  edición  de  código  y  generación  de  interfaces  gráficas  (tanto  para  KDE/Qt  como  para  GNOME/GTK+).  Soporta  proyectos  basados  en  C,  C++,  Java, Add, Perl, Ruby y Pascal. http://www.kdevelop.org
Ing. Alberto Grájeda Chacón UPB – Cochabamba ­ Bolivia

2­6
P O W E R E D   B Y   G N U

AMBIENTES DE DESARROLLO PARA  SOFTWARE LIBRE (5)
GPHPEDIT Excelente herramienta para editar código en php, presenta coloración de sintaxis, verificación de código  fuente, panel clases, etc. http://www.gphpedit.org

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

2­7
P O W E R E D   B Y   G N U

¿QUÉ  SIGNIFICA UN PARADIGMA DE  PROGRAMACIÓ N?

Un paradigma de programación, refleja la manera de pensar de los desarrolladores, la  manera en que afrontan los problemas y construyen sus soluciones. Los principales paradigmas de programación son la programación orientada a objetos,  la programación funcional, la programación orientada a tablas, la programación lógica, la  programación orientada a aspectos y la programación imperativa. Algunos  paradigmas  son  muy  profundos  y  tienen  muchas  implicaciones  sobre  la  actividad  de  desarrollar  software,  mientras  que  otros  se  centran  en  aspectos  mucho  menores  pero  que,  según  sus  proponentes,  hacen  que  este  proceso  sea  mucho  más  eficiente. 

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

2­8
P O W E R E D   B Y   G N U

¿QUÉ  PROGRAMAS DE SOFTWARE LIBRE HAN SIDO DESARROLLANDO  UTILIZANDO PROGRAMACIÓ N ORIENTADA A OBJETOS?

Muchos  programas  importantes  de  software  libre  han  sido  desarrollados  utilizando  programación orientada a objetos. Por  ejemplo,  para  los  dos  proyectos  de  escritorios  gráficos  de  software  libre  más  importantes:  GNOME ­ http://www.gnome.org KDE ­ http://www.kde.org  La  metodología  de  programación  orientada  a  objetos  ha  sido  fundamental  y  está  presente en sus librerías más importantes. Otros ejemplos importantes los constituyen: Mozilla, uno de los más importantes programas de navegación, http://www.mozilla.org OpenOffice,  la  suite  de  herramientas  de  oficina  de  software  libre  más  avanzada,  http://www.openoffice.org

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

2­9
P O W E R E D   B Y   G N U

MODELO CATEDRAL VS. MODELO BAZAR
Eric S. Raymond
MODELO CATEDRAL DE LA MAYORÍA DEL SOFTWARE COMERCIAL  CONTRA EL MODELO BAZAR DEL SOFTWARE LIBRE.

Modelos opuestos en la depuració n de software • Linux  apareció a principios de 1993 • Estilo de desarrollo de Linus Torvalds: "libere rápido y a menudo, delegue todo lo que pueda,  sea abierto hasta el punto de la promiscuidad" • El bazar parecía funcionar bien, comunidad linux colmado de individuos y con diferentes  necesidades. • Pensamiento de los programadores, analistas de sistemas, ingenieros de sistemas y todas  las personas envueltas en el proceso de desarrollo de software.

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

2­10 PROCESO DEL DESARROLLO DE SOFTWARE
P O W E R E D   B Y   G N U
EL CICLO DE VIDA CLÁ SICO •Requisitos del sistema. •Análisis •Diseño •Implementación •Pruebas •Mantenimiento Requisitos del Sistema Abarca la recopilación de requisitos globales a nivel del sistema Análisis Comprender el ámbito de información, así como la funcionalidad. Diseñ o Cuatro enfoques: Estructura de los datos, Arquitectura de Software, detalles procedimentales  y la interfaz.
Ing. Alberto Grájeda Chacón UPB – Cochabamba ­ Bolivia

2­11 PROCESO DEL DESARROLLO DE SOFTWARE (2)
P O W E R E D   B Y   G N U
Implementació n Llevar a código de máquina el diseño del paso anterior. Pruebas Pruebas de validación del programa realizado. Mantenimiento El software probablemente sufrirá cambios, debido a nuevos requerimiento o errores  encontrados. ¿Y EN EL SOFTWARE LIBRE...? • Análisis y diseño, normalmente por el impulsor del proyecto a desarrollar. • Implementación, por un número indefinido de programadores. • Pruebas, por un número indefinido de usuarios que se interesen en el software. • Mantenimiento: Nuevos programadores que interesados en el software, así como todos los  antiguos.
Ing. Alberto Grájeda Chacón UPB – Cochabamba ­ Bolivia

2­12
P O W E R E D   B Y   G N U

PROYECTO DE SOFTWARE LIBRE
Todo buen trabajo de software comienza a partir de las necesidades  personales del programador (o la empresa).  Todo buen trabajo empieza cuando uno tiene que rascarse su propia  comezó n. Pasos a seguir en un proyecto de software libre 
1)Hacer el planteamiento del problema. ¿ Qué problema, que necesidad satisfaceré con el software?. 2)Análisis y diseño siguiendo cualquier metodología de software 3)Implementación:  a) Usar un lenguaje de programación estandard b) Pensar en una implementación abierta (bases de datos, paradigma de programación,etc) c) Desarrollar una codificación fácil de entender (tabulaciones, comentarios) d) Documentación muy importante (cualquiera puede ver lo que hacemos) 4)Subir el proyecto a internet, por ejemplo a http://www.sourceforge.net (sitio completo que brinda  administración del sitio, estadísticas, etc).

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

2­13
P O W E R E D   B Y   G N U

PROYECTO DE SOFTWARE LIBRE (2)
5) Coordinación entre los programadores del software. (CVS) 6) Publicar versiones de los adelantos realizados. Versiones beta(en desarrollo) y versiones estables. 7) Hacer un seguimiento y mantener informados a los clientes de las mejoras hechas, así como escuchar sus  nuevos requerimientos. 8) Tener publicado un seguimiento a los huecos de seguridad y actualizaciones. (Bugzilla) 9) Cuando se haya llegado a una meta cambiar la versión del software a) Versión 0.1 b) Versión 0.1­1 c) Versión 1.0  d) etc 10) Repetir desde paso cinco.  Dada una base suficiente de desarrolladores asistentes y beta­testers, casi cualquier problema puede ser  caracterizado rápidamente, y su solución ser obvia al menos para alguien.

 La perfección (en diseño) se alcanza no cuando ya no hay nada que agregar, sino cuando ya no hay algo  que quitar.

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

2­14
P O W E R E D   B Y   G N U

BUGZILLA
HERRAMIENTA PARA LA PUBLICACIÓN DE BUGS  Permite a los usuarios, testeadores y programadores reportar un bug de la aplicación. ✔ Ver un listado de todos los bugs encontrados en la aplicación. ✔ Permite buscar bugs. ✔ Permite ver diagramas de los bugs. ✔ Permite a los programadores publicar las mejores hechas de los bugs encontrados.

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

2­15
P O W E R E D   B Y   G N U
Ing. Alberto Grájeda Chacón

BUGS

UPB – Cochabamba ­ Bolivia

2­16
P O W E R E D   B Y   G N U

BUSQUEDA EN BUGZILLA

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

2­17
P O W E R E D   B Y   G N U

CONFIGURACIÓ N DE SOFTWARE Y MANEJO DE VERSIONES
El desarrollo de software en equipo debe tener coordinación cuando se trabaja sobre el mismo material:

La complejidad de interacción incrementa cuadráticamente con el tamaño del equipo. DOBLE MANTENIMIENTO  Mantenimiento de múltiples copias idénticas del programa. ✔ Escenario típico: ✔ Programador  X descubre un paquete para formatear fechas. ✔ El paquete de X corre bien hasta feb. del 2005 ✔ Mientras tanto, el original ya había sido corregido ✔ Inevitablemente múltiples copias divergen.

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

2­18
P O W E R E D   B Y   G N U

CONFIGURACIÓ N DE SOFTWARE Y MANEJO DE VERSIONES (2)
DATOS COMPARTIDOS  Cuando muchas personas acceden  y modifican los mismos datos ✔ Escenario típico: ✔ En un proyecto el código y los ejecutables son almacenados en un espacio compartido. ✔ No hay múltiples copias. ✔ Programador Y arregla un bug, introduce uno nuevo, sobreescribe el anterio código. ✔ Programador X encuentra un código malo, usa el bug de Y. ✔ Cambios compartidos pueden interferir ACTUALIZACIÓN SIMULTÁNEA  Cambiar una copia, modificarla, testear y luego reemplazarla con la original parecería una buena práctica. ✔ Escenario típico: ✔ No hay dobles copias ni datos compartidos. ✔ X e Y tienen la copia del mismo módulo ✔ X reescribe archivo original. ✔ Y hace cambios y reescribe archivo original, los cambios de X no estan en ese archivo.

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

2­19
P O W E R E D   B Y   G N U

CONFIGURACIÓ N DE SOFTWARE Y MANEJO DE VERSIONES (3)
REQUERIMIENTOS  Identificación: esta X usado por Y?? ✔ Seguimiento a los cambios: Esta el problema B resuelto por C?? ✔ Selección de versiones: La última versión, bugs arreglados. ✔ Desarrollo ✔ Actualización simultánea: Están incluidas las modificaciones hechas por P y Q.

CVS
Concurrent  Versions System: http://www.cvshome.org  Inicializando un repositorio: cvs ­d DemoCVSRep init ✔ Usando un repositorio como cliente: cvs ­d :local:DemoCVSRep ... ✔ Importando un proyecto: cvs import  ­m “Inicial” Proy SE v_1_0 ✔ En la modificación del proyecto: cvs checkout Proy ✔ Actualización de una copia local: cvs update ✔ Actualización de un archivo: cvs add src/text.c ✔ Commit cambios: cvs commit  ­m “adicionar test.c”

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

2­20
P O W E R E D   B Y   G N U

EMPEZAR EL DESARROLLO DE SOFTWARE  DESDE CERO
¿DEBEMOS REINVENTAR LA PÓLVORA?

 Pensamiento japones: Observa al mejor de la competencia, iguala y luego mejora. Los buenos programadores saben qué escribir.  Los mejores, que reescribir (y reutilizar).  Existe un costo grande en empezar un proyecto, muchas horas destinadas 

  Si  necesitamos  un  software,  el  mejor  lugar  para  buscar  internet  (http://www.sourceforge.net),  bajamos  el  software,  instalamos,  usamos,  chequeo  del  código  fuente  y  decidimos  adaptarlo. (ver  estadísticas de uso,  historia de modificaciones y bugs  en su sitio web)

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

P O W E R E D   B Y   G N U

3
SOFTWARE LIBRE EN LA EMPRESA ¿COMO NUESTRO PAÍS SE BENEFICIA?

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

3­1
P O W E R E D   B Y   G N U

SOFTWARE LIBRE EN LA EMPRESA
Coste del software Uno de los apartados que sin duda han contribuido al éxito del software libre es su bajo coste,  tanto para el cliente como para la empresa • ¿Quién quiere pagar por la herramienta? • El hecho de la piratería informática • Minimizar los costes de instalación • IMPORTANTE: tomar en cuenta el coste de pagar a gente especializada. Motivaciones para usar software libre • Motivaciones personales: el afán de superación, la necesidad de reconocimiento, la mejora de  currículum, adquisición de conocimiento • El software libre como potenciador del ego ¿Pero la empresa tiene ese tipo de motivaciones?
Ing. Alberto Grájeda Chacón UPB – Cochabamba ­ Bolivia

3­2
P O W E R E D   B Y   G N U

EMPRESA Y SOFTWARE

El concepto de la venta de software de por sí, deja de tener sentido, dando paso a otras  alternativas. El software deja de ser un producto, sino que se convierte en un medio para  vender otros productos. Es una práctica muy común pues, sin llegar al uso del software libre el hecho de regalar el  software, como estrategia de captación de clientes, de creación de usuarios cautivos, y sobre  todo, de crear necesidades alrededor del software que se regala, como pueda ser  documentación, cursos, mantenimiento, etc. Por todo ello no es de extrañar el apoyo de muchas empresas al software libre: Apoyo puede  realizarse de múltiples maneras, bien colaborando con algún proyecto, directamente o  mediante financiación, bien creando servicios de valor añadido entorno a un proyecto de  software libre. Otras veces el método consiste en la utilización pura y dura del software libre.

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

3­3
P O W E R E D   B Y   G N U

EMPRESA BASADA EN SOFTWARE LIBRE
PRIMERO Y MUY IMPORTANTE Concientizar  a  todo  el  personal  de  la  empresa  (especialmente  a  la  gerencia)  de  las  consecuencias, tanto a nivel organizativo, como de metodología de trabajo, que debe asumir y  hacer  suyas.  La  primera  ,  y  principal  es  la  de  adaptar  el  modelo  de  trabajo  de  sus  programadores al modelo de software libre. Estrategias de desarrollo Debido que el modelo de desarrollo de software libre es contrapuesto al del software tradicional,  los conceptos de planificación de trabajos, reparto de tareas, integración, paso a producción,  etc. difieren de gran manera con el desarrollo de software tradicional. Bazar Modelo bazar funciona bien en entornos no empresariales, una empresa no puede dejar al azar  el desarrollo y evolución de su software. Pero siempre debe hacer que el proyecto este dirigido  a  sus  intereses.  Por  ello  el  modelo  bazar  "puro"  no  es  aceptable,  sino  que  el  grupo  de  desarrolladores de la empresa debe asumir las funciones de un "supervisor de proyecto"
Ing. Alberto Grájeda Chacón UPB – Cochabamba ­ Bolivia

3­4
P O W E R E D   B Y   G N U

MARKETING Y “VENTA” DEL SOFTWARE  LIBRE

Tenemos una empresa organizada entorno al software libre, y con un  producto. Ahora toca venderlo y ganar dinero. ¿Có mo se puede vender un  producto que es "libre"?.

• Una primera aproximación consiste en ahorrarle al usuario trabajo, a cambio de un mínimo  coste. El concepto de "distribución de paquetes" sigue este modelo. • La segunda alternativa es la venta de funcionalidades añadida. • Una tercera vía es la venta de documentación. • Por último: la de dar cursillos y entrenamiento a los usuarios • Como efecto marginal, los responsables del proyecto tienen: conferencias, charlas exposiciones,  etc, son también fuentes de ingreso para la empresa.

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

3­5
P O W E R E D   B Y   G N U

RECURSOS ESCASOS!!

Cualquier empresa que normalmente comienza con el desarrollo de software libre tiene escasos  recursos, algunas técnicas para captar recursos: • Esponsorización o apadrinamiento. • Empresa invierte dinero en una fundación, o asociación, o incluso en un proyecto de  investigación de una universidad • Optimización de recursos de la empresa, mediante técnicas de inversión de capital. • Valores en la bolsa de (solo para empresas grandes, ejemplo: netscape, RedHat). • Liberalización de software • Restricción a la distribución: se suele prohibir el uso comercial del código fuente liberado • Restricción al formato: los parches y añadidos deben ir aparte de la distribución oficial  Clausula de terminación: La empresa puede restringir sin previo aviso el uso del software  liberado, tanto en fuentes como en ejecutables • Captura de proyectos. Venta del producto a otras empresas. (Tora)

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

3­6
P O W E R E D   B Y   G N U

ALGUNAS CONCLUSIONES
Software libre como modelo de desarrollo sostenible
Se puede afirmar, sin temor a equivocarnos que este modelo es viable, y que constituye un modelo de desarrollo  sostenible, basado en que compartir información constituye una manera de aumentar el bienestar colectivo, y  que con una adecuada orientación y gestión, el modelo es, no sólo productivo, sino también rentable

No perder el objetivo: obtener beneficios Focalización de objetivos
•Los proyectos coordinados por organizaciones sin ánimo de lucro se centrarán en el software como  herramienta, esto es:           o El núcleo del sistema operativo           o El entorno de trabajo           o Las herramientas de desarrollo           o Las aplicaciones de productividad           o Control de estándares y modelos de implementación • Las empresas obtienen más beneficios del software de valor añadido, tales como:           o Herramientas de administración y gestión           o Soluciones a medida           o Proyectos de integración           o Herramientas específicas para soluciones particulares
Ing. Alberto Grájeda Chacón UPB – Cochabamba ­ Bolivia

3­7
P O W E R E D   B Y   G N U

DESARROLLO DE SOFTWARE LIBRE EN  NUESTRO MEDIO
Con la apertura del software, se observan los siguientes fenómenos correlacionados: • Las naciones en desarrollo tienen acceso a tecnología de primer nivel, • están al alcance de individuos y organizaciones herramientas para el trabajo, para los  negocios y para los estudios, que no eran accesibles, • se genera y enriquece una masa crítica y una inercia que permiten mayor desarrollo más  rápidamente; esto está dado por la acumulación y distribución de experiencias y de código,  así como por la formación de comunidades colaborativas. ES  MUY  IMPORTANTE  EL  APOYO  ACADÉ MICO  DE  LAS  UNIVERSIDADES  AL  SOFTWARE  LIBRE,  PARA  QUE  LOS  NUEVOS  PROFESIONALES  TENGAN  UNA  GAMA  MAS  GRANDE  DE  CONOCIMIENTO  EN  DIFERENTES  TIPOS  DE  HERRAMIENTAS,  LENGUAJES DE PROGRAMACIÓ N, ETC.

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

3­8
P O W E R E D   B Y   G N U

DESARROLLO DE SOFTWARE LIBRE EN  NUESTRO MEDIO (2)
El gobierno debería usar y apoyar el software libre. ¿Por qué? • Porque así no se exportan grandes capitales. • Porque así se genera riqueza intelectual. •  Porque  el  apoyo  económico  y  moral  a  universidades  y  organizaciones  de  educación que lo promueven significa un beneficio indirecto enorme, tanto para el  gobierno mismo como para la población en general. •  Porque  la  creación  de  laboratorios  de  software  libre  colocará  a  países  en  desarrollo  en  una  posición  tecnológicamente  competitiva  con  el  resto  de  las  naciones de primer mundo. • Porque se elimina la dependencia de monopolios. • Porque significa grandes ahorros. • Porque permite un nacionalismo sano.

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

3­9
P O W E R E D   B Y   G N U

DESARROLLO DE SOFTWARE LIBRE EN  NUESTRO MEDIO (3)
El software libre es un eje estratégico para los países en desarrollo:  Desarrollo sustentable El modelo económico del software libre privilegia la pequeña y mediana industria local de  servicios, mientras el propietario favorece la concentración de riqueza en pocas multinacionales Creación de empleos calificados Y de alto valor agregado de proximidad. Crear una industria automotriz nacional necesita  inversiones ingentes. Crear una industria de servicios en software libre solo necesita materia  gris. . . y una buena conexión Internet. Protección contra los vínculos impuestos por quien impulsa la  propiedad intelectual  Control de la tecnología : la informática es el sistema nervioso del estado. Reducción de costos

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

P O W E R E D   B Y   G N U
Ing. Alberto Grájeda Chacón

4
 CONCLUSIONES

UPB – Cochabamba ­ Bolivia

4­1
P O W E R E D   B Y   G N U

CONCLUSIONES

Software con licencia propietaria.  Es un software sujeto a varias limitaciones: se debe pagar la licencia (se compra), se está  sujeto a las  posibles limitaciones técnicas de estos programas y las que la licencia impone. El software libre, en cambio, no está sujeto a estas limitaciones de mejora puesto que su  licencia lo permite explícitamente. Está disponible en forma de código fuente abierto y, por lo  tanto, todo el mundo y puede acceder y puede emplear como quiera.

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

4­2
P O W E R E D   B Y   G N U

VENTAJAS DEL SOFTWARE LIBRE
Inversión pública e innovación tecnológica • Todas las mejoras que se realicen no tienen restricciones  • Se fomenta la innovación tecnológica del país Escrutinio público • Proceso de corrección de errores muy dinámico Independencia del proveedor • Disponemos del código fuente del programa • No estamos supeditados a las condiciones del mercado de nuestro proveedor Idioma • Traducción • Corrección ortográfica y gramatical  Mejora de la presencia de nuestra lengua

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

4­3
P O W E R E D   B Y   G N U

VENTAJAS DEL SOFTWARE LIBRE (2)

Datos personales, privacidad y seguridad • Los sistemas de almacenamiento y recuperación de la información son públicos •Más dificultad para introducir código malicioso, espía o de control remoto • Seguridad nacional Garantía de continuidad

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

4­4
P O W E R E D   B Y   G N U

CRITERIOS PARA LA SELECCIÓ N DE  SOFTWARE

Universalidad y accesibilidad • Que el software sea de amplia difusión y tenga un precio asequible • Que el software incluya la posibilidad de ejecutarse sobre máquinas con recursos limitados. • Que se garantice la accesibilidad en cualquier plataforma tecnológica. • Garantizar la accesibilidad a personas con escasos conocimientos. Dependencia tecnológica. Protocolos y formatos de intercambio de datos. Extensibilidad y  adaptabilidad • Es necesario que el software use protocolos y formatos estándar.  • Es necesario que el software sea extensible y adaptable, utilizando interfaces abiertas y  públicas

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

4­5
P O W E R E D   B Y   G N U

CRITERIOS PARA LA SELECCIÓ N DE  SOFTWARE (2)

Idioma • Es necesario que el programa disponga de una versión en nuestro idioma • Es necesario que se garantice el servicio técnico sobre la versión traducida. • Libre traducción y adaptación. Seguridad y privacidad • Riesgo de filtración. • Riesgo de imposibilidad de acceso. • Riesgo de manipulación. Soporte técnico y servicios

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

4­6
P O W E R E D   B Y   G N U

CONTRAS

Soporte Técnico • Sino se tiene un programador de la aplicación, esperar a que solucionen el bug, el tiempo de  respuesta depende de: si el software sigue en desarrollo, el número de desarrolladores, etc.  En la mayoría de los casos la respuesta es más rápida que en un software comercial. Cambios locales del software • Riesgo de incompatiblidad con siguientes versiones  ¿Cómo se harán las actualizaciones de huecos de seguridad?.

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

4­7
P O W E R E D   B Y   G N U

ARTICULOS VINCULADOS CON LA  PRESENTACIÓ N

•La Catedral y el Bazar  ­ Eric S. Raymond •Software Libre: Una oportunidad y una necesidad para el desarrollo del mundo digital ­  Roberto Di Cosmo •La empresa ante el software libre ­ Juan Antonio Martínez •El software libre como un importante motor de las economías en desarrollo ­ Sandino Araico  Sánchez, Bruno Antonio Unna Ruiz 

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

4­8
P O W E R E D   B Y   G N U

COMENTARIOS, PREGUNTAS, RECLAMOS... ETC !!!

Ing. Alberto Grájeda Chacón

UPB – Cochabamba ­ Bolivia

P O W E R E D   B Y   G N U
Ing. Alberto Grájeda Chacón

MUCHAS GRACIAS !!!

UPB – Cochabamba ­ Bolivia