lunes, 12 de abril de 2010

Filosofía y motivaciones del Software Libre

El Software Libre (SL) tiene para algunos matices políticos e ideológicos, para otros un trasfondo principalmente social, hay quienes han destacado en el SL sus competencias tecnológicas, y quienes han aprovechado las oportunidades de negocio que este ofrece; todo esto contribuyendo, desde diferentes perspectivas, a la difusión, desarrollo y evolución del SL.

A mi parecer, esta diversidad de enfoques, que comparten el valor de las libertades que defiende el SL, es lo que ha enriquecido e impulsado este movimiento, apoyado además por el gran desarrollo de la Web 2.0 que ha facilitado la plataforma tecnológica para la creación y evolución de estas Redes Sociales y Comunidades Virtuales que se han conformado alrededor del SL.

lunes, 5 de abril de 2010

El fascinante Cibermundo

El ciberespacio es un mundo realmente fascinante, en plena evolución y desarrollo. Allí abundan los conceptos, las teorías, los análisis sociales, económicos, culturales, políticos y tecnológicos.

Trasladamos al ciberespacio dinámicas de nuestro mundo "real" y hablamos de la Sociedad de la Información, de la Sociedad del Conocimiento, de Redes Sociales, de Comunidades Virtuales, de Comercio Electrónico, de Tecnologías de Información y Comunicación en la Educación, en los Negocios, en la Administración Pública, entre muchos otros ámbitos.

Algunos usuarios más jóvenes son llamados nativos digitales, otros un poco mayores inmigrantes digitales, en todo caso, nadie puede escapar de la influencia y el impacto que Internet ha traído a nuestra sociedad.

Internet es una plataforma donde se defienden derechos fundamentales al conocimiento y a la libertad de expresión, y donde también se violan otros derechos relacionados con el respecto, los derechos de autor, invasión de privacidad, vulnerabilidad, entre otros. Quizás necesitemos desarrollar un poco más de conciencia hacia nuestros deberes en la web.

En todo caso, considero que esto es imparable, nos guste o no somos parte de esta Sociedad de la Información, y para convivir en ella necesitamos desarrollar competencias que nos habiliten para beneficiarnos de las bondades de la gran red y protegernos de sus riesgos y amenazas.

Finalmente, aún nos mantenemos a un clic de distancia, no sólo para ser cibernautas activos, sino también para desaparecer. Aún en la Web mantenemos nuestro libre albedrío.





domingo, 15 de marzo de 2009

Cierre del Foro Motivaciones del SL

Motivos que impulsan el desarrollo del SL en Venezuela (decreto 3390 y otras consideraciones):

  • Incentivar y fortalecer la producción de bienes nacionales
  • Fortalecer la industria del SL nacional (desarrollo local)
  • Lograr la apertura social del SL
  • Lograr la independencia tecnológica e informática frente a las empresas multinacionales
  • Mayor seguridad al permitir ver el código fuente
  • Reducir costos
  • Fortalecer el capital humano en el área del SL
  • Economizar costos dejando de utilizar software privativo que implica una inversión significativa en pago de licencias
  • Procurar la independencia tecnológica y garantizar la privacidad de los datos
  • Libertad de uso y distribución favorece el desarrollo de la Sociedad de la Información y el Conocimiento
  • Fomento de la libre competencia al basarse en servicios y no licencias
  • Corrección mas rápida y eficiente de errores
  • Democratización del Conocimiento

Algunas Lecciones aprendidas:

  • Los cambios importantes no se imponen, se aceptan
  • La articulación del área académica, laboral y gubernamental, potencia el desarrollo del SL

viernes, 28 de noviembre de 2008

Cierre del Foro Calidad y Pruebas del Software

1. La calidad del software se mide usualmente en términos de rendimiento (tiempo de respuesta), respuesta esperada a determinadas acciones (confiabilidad), accesibilidad (facilidad de acceso), seguridad (control de acceso), etc.
2. El plan de pruebas consiste en la elaboración de un conjunto de test y listas de chequeo que los usuarios aprueban una vez se apliquen en el software en evaluación.
3. Todo proyecto de software debe integrar dentro de su ciclo de desarrollo procesos de control de calidad y pruebas.
4. Existen varios modelos de gestión de la calidad del software. Según la norma ISO 9126 las características son portabilidad, eficiencia, confiabilidad, usabilidad, funcionabilidad y mantenibilidad (ver más detalle en: http://es.wikipedia.org/wiki/ISO_9126).
5. Los modelos son generales y deben ser particularizados a cada caso.
6. Los proyectos mientras más complejos y ambiciosos menos posibilidades tienen de implementarse exitosamente. Pueden ser concebidos desde la globalidad, pero su desarrollo e implementación debe ser progresivo y esta es una de las banderas del Software Libre, liberar versiones frecuentes del producto, utilizando estrategias que aseguren la escalabilidad e interoperabilidad del software gracias al uso de estándares abiertos.
7. El criterio de usabilidad debe garantizarse desde la concepción del proyecto, se fortalece en el diseño y cristaliza en el desarrollo.
8. Si el usuario es un miembro activo del equipo de trabajo en todas las fases de desarrollo del mismo, al momento de realizar las pruebas ya estará familiarizado con el aplicativo. Lo esperado es que la aplicación responda a las especificaciones de funcionamiento dadas por el usuario.
9. Un software de calidad es el resultado de un trabajo en equipo donde cada miembro hace bien su trabajo y la comunicación es constante, fluída y basada en un lenguaje común.
10. Los proyectos de software requieren de testeadores o probadores responsables de validar el funcionamiento de los productos de software.
11. Es responsabilidad del desarrollador entregar código depurado, así que las pruebas se focalizan en la integración, eficiencia y aceptación de usuarios.

Cierre del Foro Conceptualización de la Ingeniería del Software Libre

1. La Ingeniería del Software suministra metodologías, procesos y herramientas, es decir un marco común de trabajo para la comunidad de desarrolladores, administradores y usuarios.
2. El Ciclo de Vida del desarrollo del Software debe pasar por todas las fases (requerimientos, análisis, diseño, desarrollo, pruebas, implantación, uso, mantenimiento y obsolescencia) utilizando un Modelo Iterativo que permita que los productos se mantengan en constante construcción y crecimiento.
3. Conformación de un Comité de Gestión del proyecto, quienes toman decisiones que dan inicio al desarrollo de producto y delegan en grupos de trabajo el desarrollo. La aprobación sigue el proceso inverso hasta llegar al comité, quién decide si los cambios o nuevos productos se incorporan al proyecto o no.
4. Establecimiento de un claro esquema de Comunicación, que integre a usuarios y desarrolladores en la comunidad de desarrollo.
5. Uso de metodologías ágiles de desarrollo tales como eXtreme Programming, que faciliten la publicación frecuente de nuevas funcionalidades y versiones.
6. La Colaboración y la Planificación son factores claves en el éxito del sistema.
7. Uso intensivo de Internet como plataforma de comunicación y distribución del software.
8. La Flexibilidad de la Ingeniería del Software para adaptarse a las particularidades del Software Libre, brindando un basamento teórico y metodológico que respeta las 4 libertades del SL (ERA, LV,
9. Ambientes colaborativos de desarrollo que estimulan la Creatividad y el Trabajo en equipo facilitando la participación activa de usuarios y programadores.
10. Énfasis en Pruebas y Calidad. Liberación de versiones para evaluación y pruebas agilizan a través del trabajo colaborativo la obtención de productos de calidad.
11. Estimaciones basadas en proyectos similares y técnicas de descomposición en paquetes de trabajo para reducir la incertidumbre y mejorar la precisión de la planificación.
12. Uso de métodos de análisis como el FODA (Fortalezas, Oportunidades, Debilidades y Amenazas) fortalecen el estudio y comprensión del sistema.
13. Realizar estudios de factibilidad holísticos e integrales que consideren aspectos funcionales, técnicos y económicos para garantizar la viabilidad del proyecto y establecer claramente el alcance del desarrollo del software.
14. Usar diagramas como casos de uso y diagramas de actividad de procesos ayudan en la comunicación y entendimiento de las especificaciones a ser desarrollada.
15. La documentación es un tema de debate en Software Libre, dado que requiere recursos que compiten con los recursos de desarrollo de productos y es fundamental para garantizar la comunicación, validación y calidad de los productos. Debe ser concreta y concisa (asertiva), y con mecanismos de generación eficientes (a lo largo del ciclo de desarrollo utilizando por ejemplo historias de usuario) donde se logren sus objetivos dentro de un balance positivo de costo-beneficio.
16. Tecnologías para la ejecución de pruebas unitarias o modelos como el pair-programming o el peer-testing (programación y pruebas en parejas), ayudan a mantener una disciplina en el desarrollo y a aumentar la calidad del resultado del proyecto.
17. Agilidad y libertad son los principios que deben respetar las metodologías que soporten el desarrollo de SL. La Ingeniería del Software ofrece métodos y herramientas que otorgan un marco común de trabajo orientado al logro de la Calidad del Software. Un reto importante es incorporar la "Ingeniería" en el desarrollo del SL, manteniendo en primer lugar estos preceptos y contribuyendo además a la conformación de equipos de trabajo de alto desempeño que generen productos estables y etiquetados de excelente calidad.

sábado, 11 de octubre de 2008

Software Libre y de Código Abierto

Richard Stallman, considerado el filósofo del Software Libre, en su libro “Software Libre para una Sociedad Libre”, establece principios fundamentalmente éticos relacionados con los derechos y beneficios que estos conceptos traen a la sociedad: “La Libertad Uno es la libertad de ayudarte a ti mismo haciendo cambios que se ajusten a tus propias necesidades. La Libertad Dos es la libertad de ayudar a tus amigos distribuyendo copias. Y la Libertad Tres es la libertad de construir tu comunidad haciendo modificaciones y publicándolas para que las use otra gente. Si tienes todas estas libertades, el programa es software libre para ti” (Stallman, 2004, página 176).

Por otra parte, en 1998, Perens y Raymond fundaron la “Open Source Initiative”, una organización dedicada a la promoción del código abierto. Código abierto (en inglés open source) es el término con el que se conoce al software distribuido y desarrollado libremente. A diferencia del movimiento del Software Libre promovido por Stallman, las motivaciones del código abierto no son éticas; son fundamentalmente prácticas, y desde ese punto de vista completamente equivalentes.

“La filosofía del Open Source centra su atención en la premisa de que al compartir el código, el programa resultante tiende a ser de calidad superior al software propietario, es una visión meramente técnica. Por otro lado, el Software Libre funciona bajo un ideal: el software propietario, al no poder compartirse, es antiético dado que prohibir compartir entre seres humanos va en contra de las leyes naturales”. (Wikipedia, http://es.wikipedia.org/wiki/ C%C3%B3digo_abierto).

En resumen, la visión del software libre es principalmente ética mientras que la del código abierto es práctica.
Para evitar estas confusiones surge el concepto FOSS: Free and Open Source Software, es decir, Software Libre y de Código abierto, sin hacer distinciones entre sus diferencias, y también el de FLOSS, o F/LOSS, Free/Libre Open Source Software, para clarificar que free es de libre y no de gratis.
Para más información consulta: http://es.wikipedia.org/wiki/FOSS_-_FLOSS.

Mi perspectiva sobre el proceso de Aprendizaje

Los procesos de aprendizaje están condicionados por múltiples factores: a) sus participantes: docentes y estudiantes, con diferencias cognitivas, psicológicas, biológicas, culturales, sociales; b) factores ambientales: sociales, institucionales, académicos; c) características de los conocimientos y habilidades a ser desarrolladas: conceptuales, procedimentales, ejecuciones técnicas, procesos de toma de decisiones, resolución de problemas; d) complejidad del nivel de procesamiento de la información: bajo (asociaciones, memorizaciones), medio (clasificaciones, ejecución de procedimientos) y alto (solución de problemas no estructurados); e) etapa en la adquisición del conocimiento y nivel de formación del estudiante: inicial (novatos), avanzada (profesionales) o expertos (profesionales con experiencia); entre otros factores.

El diseñador instruccional debe disponer de las competencias que le permitan, conociendo las estrategias y técnicas propuestas por cada una de las teorías de aprendizaje, estudiar la situación específica del entorno en que se aplicará el mismo, y diseñar un estrategia académica ajustada a las particularidades de dicho contexto, donde seguramente hará uso de diferentes metodologías de enseñanza - aprendizaje.
Las tecnologías de información y comunicación están impulsando las estrategias de aprendizaje constructivista, dado que en las aulas virtuales, el docente juega un rol principalmente de moderador o tutor, y son los participantes los protagonistas, quienes con su activa participación van construyendo su aprendizaje a través de la lectura y reflexión de materiales didácticos, intervención en foros de discusión y uso de otros recursos multimedia que favorecen los procesos de construcción colectiva del conocimiento en lo que se ha denominado Comunidades de Aprendizaje.
Estos entornos de aprendizaje a distancia están exigiendo nuevas competencias en los diseñadores de instrucción, docentes y estudiantes. Los diseñadores instruccionales deben incluir dinámicas efectivas que faciliten el desarrollo y mantenimiento de un clima social favorable dentro del aula virtual; el docente debe monitorear la calidad de la comunicación, validando los niveles de apoyo, confianza, seguridad y respeto, es decir, debe contribuir al desarrollo de un ambiente social participativo, ameno y colaborativo; y el estudiante asumir la responsabilidad y compromiso que exigen estos ambientes, manteniéndose conectado con la frecuencia que exige la dinámica del curso y cumpliendo las normas y asignaciones por éste establecidas.-