- ¿POR QUÉ SE LE DIO EL NOMBRE DE LA CATEDRAL?
Porque es el nombre dado al modelo típico de desarrollo de software propietario o en que las tareas y los roles están bien definidos. - ¿CÓMO ESTÁ DIRIGIDO EL MODELO CATEDRAL?
De manera centralizada y el proceso de desarrollo está restringido a un grupo de programadores quienes depuran los códigos. - ¿QUÉ ES EL BAZAR?
Es un modelo de desarrollo propuesto por Erick Raymond en 1977, basado en observación sobre el desarrollo del Kernel de Linux. Incorpora patrones y elementos comunes de muchos proyectos. - ¿POR QUÉ SE LE LLAMÓ BAZAR A ESTE MÉTODO?
Porque Raymond asemeja el desarrollo del software libre con una feria en que cada persona tiene distintos intereses y promueve su visión particular. - ¿CÓMO ESTÁ DIRIGIDO EL MÉTODO BAZAR?
No es centralizada la construcción de la aplicación de una comunidad de interesados que libera cada versión desarrollada. - ¿EN QUÉ SE BASA EL MODELO CATEDRAL?
En la necesidad de un arquitecto al mando de un staff. - ¿EL MODELO BAZAR CUANDO ENCUENTRA DIFICULTAD PARA PRODUCIR COOPRACIÓN?
Cuando se empiezan proyectos desde cero o cuando se ensaya en grupos reducidos. - ¿CUÁLES SON LAS TRES MÁXIMAS DEL MODELO BAZAR?
1.- Liberar rápido y a menudo.
2.-Distribuir responsabilidades y tareas todo lo posible.
3.Ser abierto hasta la promiscuidad para estimar al máximo la cooperación.
domingo, 8 de mayo de 2011
CUESTIONARIO MODELOS BAZAR Y CATEDRAL
martes, 3 de mayo de 2011
CUESTIONARIO
1. QUÉ SON LAS METODOLOGÍAS AGILES
Las metodologías ágiles como puede entenderse mal, no están en contra de administrar procesos de desarrollo. Por el contrario promueve la formalización de procesos adaptables.
La compilación de los principios y valores que resaltan las metodologías ágiles fue formalizada en el manifiesto para el desarrollo de software ágil
Basadas en heurísticas provenientes de prácticas de producción de código, Especialmente preparados para cambios durante el proyecto.
2. MANIFIESTO ÁGIL
XP es una de las metodologías ágiles más extendidas y populares, además es considerada como una metodología posmoderna cuyas grandes capacidades se generan a través de procesos emergentes.
3. CICLO DE DESARROLLO, PROCESO, PRACTICAS Y CICLO DE VIDA XP
Consiste de seis fases: Exploración, Planificación de la Entrega (Release), Iteraciones, Producción, Mantenimiento y Muerte del Proyecto.
4. PROGRAMACIÓN EXTREMA
Es una metodología ágil centrada en potenciar las relaciones interpersonales como clave para el éxito en desarrollo de software, promoviendo el trabajo en equipo, preocupándose por el aprendizaje de los desarrolladores, y propiciando un buen clima de trabajo. XP se basa en realimentación continua entre el cliente y el equipo de desarrollo, comunicación fluida entre todos los participantes, simplicidad en las soluciones implementadas y coraje para enfrentar los cambios. XP se define como especialmente adecuada para proyectos con requisitos imprecisos y muy cambiantes, y donde existe un alto riesgo técnico.
5. LAS HISTORIAS DE USUARIO EN LA XP
Son la técnica utilizada para especificar los requisitos del software. Se trata de tarjetas de papel en las cuales el cliente describe brevemente las características que el sistema debe poseer, sean requisitos funcionales o no funcionales. El tratamiento de Metodologías Ágiles las historias de usuario es muy dinámico y flexible. Cada historia de usuario es lo suficientemente comprensible y delimitada para que los programadores puedan implementarla en unas semanas.
6. THE AGILE ALLIANCE
Una organización, sin ánimo de lucro, dedicada a promover los conceptos relacionados con el desarrollo ágil de software y ayudar a las organizaciones para que adopten dichos conceptos. El punto de partida es fue el Manifiesto Ágil, un documento que resume la filosofía ágil.
7. PRINCIPIO DEL MANIFIESTO ÁGIL
Son características que diferencian un proceso ágil de uno tradicional. Los dos primeros principios son generales y resumen gran parte del espíritu ágil. El resto tienen que ver con el proceso a seguir y con el equipo de desarrollo, en cuanto metas a seguir y organización del mismo. Los principios son:
I. La prioridad es satisfacer al cliente mediante tempranas y continuas entregas de software que le aporte un valor.
II. Dar la bienvenida a los cambios. Se capturan los cambios para que el cliente tenga una ventaja competitiva.
III. Entregar frecuentemente software que funcione desde un par de semanas a un par de meses, con el menor intervalo de tiempo posible entre entregas.
IV. La gente del negocio y los desarrolladores deben trabajar juntos a lo largo del proyecto.
V. Construir el proyecto en torno a individuos motivados. Darles el entorno y el apoyo que necesitan y confiar en ellos para conseguir finalizar el trabajo.
VI. El diálogo cara a cara es el método más eficiente y efectivo para comunicar información dentro de un equipo de desarrollo.
VII. El software que funciona es la medida principal de progreso.
VIII. Los procesos ágiles promueven un desarrollo sostenible. Los promotores,
Desarrolladores y usuarios deberían ser capaces de mantener una paz constante.
IX. La atención continua a la calidad técnica y al buen diseño mejora la agilidad.
X. La simplicidad es esencial.
XI. Las mejores arquitecturas, requisitos y diseños surgen de los equipos organizados por sí mismos.
XII. En intervalos regulares, el equipo reflexiona respecto a cómo llegar a ser más efectivo, y según esto ajusta su comportamiento
8. QUE METODOLOGÍAS SON APLICABLES AL MUNDO DEL SOFTWARE LIBRE
· SCRUM
· Crystal Methodologies
· Dynamic Systems Development Method
· Adaptive Software Development
· Feature -Driven Development
· Lean Development
9. HERRAMIENTAS DE DESARROLLO DISTRIBUIDO EN EL SOFTWARE LIBRE.
El desarrollo de software libre se basa en gran parte en unas herramientas que permiten sincronizarse con el trabajo de los diferentes desarrolladores del proyecto, de manera que la distribución geográfica no suponga un problema. Los sistemas de control de versiones y los gestores de erratas (también usados ocasionalmente para tareas de planificación) se han convertido en herramientas imprescindibles para proyectos de software libre grandes, y no tan grandes.
10. MÉTRICAS Y MODELOS UTILIZADOS EN EL SOFTWARE LIBRE
MÉTRICAS DE CALIDAD: proporcionan una indicación de cómo se ajusta el software a los requisitos implícitos y explícitos del cliente. Es decir cómo voy a medir para que mi sistema se adapte a los requisitos que me pide el cliente.
MÉTRICAS DE PRODUCTIVIDAD. Se centran en el rendimiento del proceso de la ingeniería del software. Es decir que tan productivo va a ser el software que voy a diseñar.
MÉTRICAS ORIENTADAS A LA PERSONA. Proporcionan medidas e información sobre la forma que la gente desarrolla el software de computadoras y sobre todo el punto de vista humano de la efectividad de las herramientas y métodos. Son las medidas que voy a hacer de mi personal que va hará el sistema.
MÉTRICAS ORIENTADAS AL TAMAÑO. Es para saber en que tiempo voy a terminar el software y cuantas personas voy a necesitar. Son medidas directas al software y el proceso por el cual se desarrolla, si una organización de software mantiene registros sencillos.
MÉTRICAS ORIENTADAS A LA FUNCIÓN. Son medidas indirectas del software y del proceso por el cual se desarrolla. En lugar de calcularlas las LDC, las métricas orientadas a la función se centran en la funcionalidad o utilidad del programa
11. MEDICIÓN Y ANÁLISIS DE SOFTWARE LIBRE.
La medición y el análisis de datos relacionados con el desarrollo de software libre se hacen imprescindibles para alcanzar los objetivos que la ingeniería del software libre persigue.
Además, es de capital importancia que los procesos que se desarrollen puedan ser verificados por terceras personas, por lo que las herramientas utilizadas deberían tener una licencia de software libre.
FUENTE DE REFERENCIA
http://www.willydev.net/descargas/prev/TodoAgil.pdf
http://www.seccperu.org/files/Metodologias%20Agiles.pdf
http://curso-sobre.berlios.de/curso/trab/grex/sobre-trabajo-grex.pdf
martes, 15 de marzo de 2011
DESARROLLO BAJO MODELOS LIBRES
Se puede encontrar proyectos que iniciaron como pequeños y sin siquiera imaginar que llegarían a tener la importancia mundial que ahora tienen, como el muy conocido caso del manejador de ventanas y conjunto de programas GNOME, desarrollado en sus inicios por el mexicano Miguel de Icaza y que ahora se encuentra ejecutándose en muchas de las computadoras del mundo que cuentan con sistema operativo GNU/Linux.
Como también ya es conocido por todos, de Icaza junto con Nat Friedman fundaron su propia compañía, Ximian GNOME (que ciertamente no tiene su sede en México, sino en la ciudad de Boston en los Estados Unidos), la cual hasta la fecha realiza desarrollos importantes para el software libre en general, principalmente con el proyecto GNOME y el proyecto MONO, que es una implementación libre de la plataforma .NET y que promete tener mucho futuro dentro del desarrollo del software libre al proporcionar e integrar herramientas de programación.
El de GNOME y MONO no son los únicos casos, aunque sí unos de los más reconocidos. También podemos encontrar una variedad de programas y herramientas de uso cotidiano, como el checkinstall del mexicano Felipe Eduardo Sánchez, mejor conocido como Izto y que se utiliza y se encuentra en varias distribuciones de Linux para poder manejar de una manera sencilla los programas que se descargan y compilan, teniendo de esta manera un mejor control de lo que se encuentra instalado en el sistema operativo.
Como estos proyectos, podría seguir nombrando algunos otros, pero creo que el punto se ha dado: en México sí se desarrollan proyectos de software libre, de éxito internacional y de reconocimiento mundial.
Internacionalmente aún recibimos comentarios del tipo “el movimiento del software libre en México parece estar cinco o seis años atrás del mismo en los Estados Unidos, pero se está actualizando rápidamente” como fue publicado en Newsforge (que es un sitio de notas ampliamente reconocido) recientemente por Robin Miller refiriéndose al Congreso Nacional del Software Libre 2003 realizado en México, el hecho es que necesitamos dar todo el apoyo para que se continúen realizando los desarrollos importantes en este sentido y además darlos a conocer a la comunidad internacional. Sin apoyo por parte de todos, el desarrollo del software libre en México no puede cobrar su verdadero potencial.
De lo que en este momento se carece en México con respecto al software libre es de una organización, coordinación o dirección de proyectos en general, que sea un organismo integrador de las diferentes herramientas con que se cuenta, y que al mismo tiempo proporcione orientación y recursos a los nuevos organismos y usuarios que quieran integrarse al uso y desarrollo de software libre. En este sentido ya se han realizado algunas propuestas por demás útiles e interesantes, como la Fundación de Software Libre, que es un organismo ya constituido legalmente y la cual, según sus propias palabras “es una asociación civil dedicada a promover, difundir y apoyar el uso y desarrollo del Software Libre”, lograda gracias al trabajo e interés de Salvador Fernández y un nutrido grupo de colaboradores y que tiene el potencial de convertirse en esa Organización que el software libre en México necesita.
También encontramos a la Red Nacional del Software Libre, que “es un esfuerzo conjunto llevado a cabo por la comunidad mexicana de usuarios de software libre con la finalidad de proporcionar un medio que contribuya a facilitar el desarrollo de proyectos de software en la nación así como para la organización y difusión de eventos que contribuyan al avance tecnológico, social y cultural de la comunidad mexicana de usuarios.”.
Así como estas asociaciones, existen grupos de usuarios de software libre locales o regionales, que en su mayoría han iniciado siendo “GULs” (Grupos de Usuarios de Linux) como es el caso del GLIB (Grupo Linuxero del Bajío), GLO (Grupo Linux de Occidente), GULM (Grupo de Usuarios de GNU/Linux de Monterrey) entre muchos otros pero que poco a poco se empiezan a mover hacia lo más general, como “GUSLs” (Grupos de Usuarios de Software Libre) .
Para poder integrar a los usuarios de software libre a nivel nacional y asimismo permitirles intercambiar ideas y desarrollos, existen varias conferencias nacionales como el ya mencionado CONSOL (Congreso Nacional de Software Libre), organizado por la Universidad Pedaógica Nacional, junto con otras dependencias. Asimismo, se realizó el Congreso Nacional de GNU/Linux.
Ya que se mencionó sobre el desarrollo y difusión que ha tenido el software libre a nivel nacional, me gustaría comentar un par de casos particulares que si bien pueden no tener un gran impacto a nivel global, nos pueden dar una idea clara y concisa sobre en dónde estamos y hacia dónde es posible dirigirnos.
En México ha avanzado en el ámbito de lo Legal.
Desafortunadamente el ritmo tecnológico avanza a pasos mucho mayores que el legal en nuestro país, y es por eso que aún no se cuenta con leyes o políticas oficiales con respecto a la posición y uso de software libre. El Diputado Jacobo Bonilla de la Asamblea Legislativa es quien se ha interesado mayormente en la promoción del Software Libre a nivel legislativo, y está en nuestras manos apoyar a quienes deban modificar las leyes para que tengan todos los elementos necesarios para tomar las mejores decisiones en ese aspecto.
Así las cosas es evidente que al hablar del software libre no podemos soslayar la importancia de la compatibilidad de éste con respecto al software propietario más comúnmente usado. Este ha sido uno de los mayores retos, si no es que el más grande, pero se ha ido logrando superar en gran medida gracias al importante desarrollo de herramientas de trabajo tal como el OpenOffice.Org que permite sustituir por completo a su contraparte propietaria que se encuentra en el mercado, y la cual es el Microsoft Office. Esta herramienta de software libre no es la única que se presta a realizar este trabajo, pero si una de las más completas.
jueves, 10 de marzo de 2011
SOFTWARE LIBRE "UN VERDADERO FENÓMENO"
Con el Internet el software libre extendió sus fronteras y sumó miles de adeptos deseos de colaborar en su producción.
El software libre representa hoy un verdadero fenómeno: es el principio emergente de un movimiento que procura re-definir las reglas actuales sobre la propiedad intelectual; reglas que están condicionando la evolución de la llamada Sociedad de la información.
Hoy en día este fenómeno es abordado considerando tres campos de análisis socio-político, técnico y económico-financiero.
Aspectos socio-políticos
El manejo de las tecnologías relacionadas al software es un aspecto estratégico para la comunidad. Basta saber que el software es la herramienta con la que las personas pueden acceder a los datos y a las redes de información, es decir, al conocimiento de nuestro tiempo. El software se usa para los negocios, la educación y la prestación de salud, es un aspecto que impacta a toda la población y a todas las actividades de la población.
Aspectos Técnicos.
Actualmente es posible encontrar productos de software liberados bajo la modalidad de software libre para casi todas las necesidades demandadas. Así en el ambiente del Desktop (escritorio) para la mayoría de las aplicaciones comerciales existe un producto de software libre equivalente. En el ambiente de servidores la situación es similar, con casos donde los productos OSS presentan mayores fortalezas que sus equipos propietarios.
Quizá las mayores creencias para el software libre se den actualmente en el ámbito de las aplicaciones comerciales transaccionales pa
martes, 1 de marzo de 2011
CUADRO COMPARATIVO
RESUMEN DE LICENCIAS
Software/licencias de dominio público. Total libertad para realizar todo lo que se quiera con el software. En este software se disponen de las fuentes. Es equivalente al Freeware (software gratuito) cuando en este último también se proporcionan de las fuentes. Carece de copyright al estar vencido o cedido a la comunidad.
Open Source / Software Libre /GNU GPL o simplemente GNU. Software del que siempre se dispone de los fuentes, pero u uso está restringido a que el software destino debe quedar como mínimo bajo este tipo de licencia. Por este motivo, a esta licencia se le suele llamar de tipo vírico ya que contagia este tipo de licencia al resto de software junto al que se usa (copyleft). Por tanto no es válido para crear software propietario.
LGPL. Es un tipo especial de licencia open source (menos restrictivo) que permite su utilización dentro de software propietario siempre y cuando este software se utilice como librerías adicionales al mismo. Por tanto se puede utilizar en software propietario si se "linkan" (enlazan) los paquetes LGPL por separado.
Licencias de tipo BSD. Son las licencias libres por antonomasia. Sólo se reservan los derechos de autor y la propiedad intelectual. Básicamente requiere que el autor sea mencionado orrectamente. Entre ellas están a demás de la propia de la licencia BSD, las licencias de tipo Apache, de tipo Mozilla (MPL), y de tipo CDDL. Estas licencias si se pueden usar dentro de software propietario.
Por tanto si no tenemos intención de comercializar nuestro desarrollo o deseamos comercializarlo junto con los fuentes desarrollados, podemos elegir de partida software con cualquier tipo de licencia, y para nuestro producto final la más lógica sería la licencia GNU GPL con copyleft para que todos incluidos nosotros nos podamos aprovechar de los sucesivos desarrollos que otros realicen. En caso contrario, si deseamos comercializar nuestro desarrollo sin publicar nuestro código, sólo podemos utilizar durante el desarrollo, software de dominio público, software con Licencias de tipo BSD y a lo sumo software con licencia LGPL.











