-
Notifications
You must be signed in to change notification settings - Fork 6
/
gestion.tex
162 lines (117 loc) · 15 KB
/
gestion.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
\chapter{Gestión y Calidad de Proyectos de Software Libre}
\section{Qué es una comunidad de Software Libre}
Una Comunidad de Software Libre es un {\bf grupo de personas que cooperan entre sí en distintas áreas relacionadas con el Software Libre}. Dependiendo del área de la comunidad, sus objetivos van a variar.
\\
\\
Pero todas tienen en común:
\begin{itemize}
\item El espíritu cooperativo.
\item La búsqueda continua del mejoramiento y difusión del software libre y del conocimiento.
\item Su principal interés es la libertad de los usuarios
\item Hay un dominio o interés compartido que le da identidad.
\item La comunidad es creada y mantenida a partir de las interacciones determinadas, por ejemplo, por actividades conjuntas o discusiones.
\item Existe una práctica compartida, por ejemplo a través del intercambio de buenas prácticas o lecciones aprendidas.
\end{itemize}
La comunidad de código abierto es diversa y esta altamente motivada. Las comunidades se caracterizan por crear y amplificar el efecto de red, donde la colaboración enriquece los recursos y a las organizaciones que las adoptan.
\\
\\
El éxito de una iniciativa de código abierto depende de: {\bf la sensibilización y la adopción del proyecto}. Manteniendo los foros con vida a través de la información, preguntas y desafíos.
%\pagebreak
Uno de los casos conocidos de éxito de una comunidad de software libre es el estilo de desarrollo de Linus Torvalds en el cual se destaca, lanzar versiones de prueba enseguida y a menudo, delegar cuanto sea posible. La comunidad Linux, parecía semejarse a un gran bazar bullicioso con diferentes agendas y enfoques (adecuadamente reflejado por los depósitos de software Linux, que admitían contribuciones de cualquiera) del cual solo parecía posible que emergiera un sistema coherente y estable mediante una sucesión de milagros.
\section{¿ Quiénes pertenecen a una comunidad?}
Las personas que forman parte de una comunidad de SL pueden ser usuarios, desarrolladores, distribuidores, soportistas, traductores entre otras cosas. Las comunidades pueden abarcar todas estas áreas, o enfocarse en algunas específicas.
\\
\\
Se puede deducir que existe una gran influencia universitaria en el software libre. Esto no es de extrañar, ya que, como se ha podido ver en el capítulo de historia, el software libre –{\bf antes incluso de llevar esta denominación}– ha estado íntimamente ligado a las instituciones educativas superiores. Aún hoy, el verdadero motor del uso y expansión del software libre siguen siendo las universidades y los grupos de usuarios estudiantiles. No es, por tanto, de extrañar que más de un 70\% de los desarrolladores cuenten con una preparación universitaria. El dato tiene mayor importancia si tenemos en cuenta que del 30\% restante muchos no son universitarios porque todavía están en su fase escolar. Aun así, también tienen cabida –{\bf y no por ello son menos apreciados}– desarrolladores que no han accedido nunca a estudios superiores, pero que son amantes de la informática.
\\
\\
Dentro de las comunidades de software libre existe un conjunto de pasos que facilita al simple usuario transformarse en un activo participante del proyecto, tales como:
\begin{itemize}
\item Ganar experiencia instalando el software en su computadora o en un servidor Web.
\item Contribuir a los foros de discusión.
\item Contribuir a la documentación y a la promoción.
\item Reportar errores y verificar las distintas versiones.
\item Modificar el código para personalizar una operación o corregir un error.
\item Crear un módulo para extender la funcionalidad.
\item Entregar parches y módulos para revisión por pares e incorporarlos en el tronco principal del proyecto.
\end{itemize}
%\newpage
Por otro lado, también se ha podido constatar una gran interdisciplinariedad: uno de cada cinco desarrolladores proviene de campos diferentes al de las tecnologías de la información. Esto, unido al hecho de que existe también un número similar de desarrolladores no universitarios, refleja la existencia de una gran riqueza en cuanto a intereses, procedencias y, en definitiva, a la composición de los equipos de desarrollo. Es muy difícil encontrar una industria moderna donde el grado de heterogeneidad sea tan grande como el que se puede ver en el software libre, si es que existe.
\\
\\
En cualquier caso, dentro de una comunidad la mayoría quiere aprender y desarrollar nuevas habilidades ({\bf acerca de un 80\%}) y que muchos lo hacen para compartir conocimientos y habilidades ({\bf 50\%}) o para participar en una nueva forma de cooperación ({\bf alrededor de un tercio}). El primer dato no parece nada sorprendente, habida cuenta de que un profesional con mayores conocimientos se encuentra más cotizado que uno que no los posee. El segundo dato, sin embargo, no es tan fácil de explicar e incluso parece ir en contra de la afirmación de Nikolai Bezroukov, que viene a decir que los líderes de los proyectos de software libre tienen a buena cuenta no compartir toda la información de la que poseen para perpetuar su poder. Mientras tanto, la tercera opción más frecuente es, sin lugar a dudas, fiel reflejo de que los propios desarrolladores se muestran entusiasmados por la forma en la que generalmente se crea el software libre; es difícil encontrar una industria en la que un grupo de voluntarios levemente organizados pueda plantar cara tecnológicamente a las grandes compañías del sector.
\\
\\
La gente que dedica su tiempo al software libre en líneas generales podemos afirmar que el desarrollador de software libre es un varón joven con estudios universitarios ({\bf o en vías de conseguirlos}). La relación del mundo del software libre con la universidad ({\bf estudiantes y profesores}) es muy estrecha, aunque sigue predominando el desarrollador que no tiene que ver nada con el ámbito académico. En cuanto a la dedicación en número de horas, se ha mostrado cómo existe una gran desigualdad al estilo de la postulada en la ley de Pareto.
Las motivaciones de los desarrolladores –{\bf según ellos mismos}– lejos de ser monetarias y egocéntricas, tal y como suelen asumir economistas y psicólogos, está más bien centrada en compartir y aprender. \emph{Para finalizar, se puede decir que los personajes del mundo del software libre, en el cual la reputación en la gran comunidad del software libre suele depender de más razones que solamente de la codificación de una aplicación libre exitosa}.
\section{¿ Qué roles exiten?}
Dentro de las comunidades de software libre existen varios roles, cada uno de estos aportan al mismo en mayor o menor medida de acuerdo a la categoría:
\begin{itemize}
\item \textbf{Usuario}
\item \textbf{Contribuyente}
\item \textbf{Mantenedor}
\end{itemize}
\textbf{Usuario:} Una forma fácil y divertida de ayudar a Software Libre es usar el Software Libre para todas las tareas de su computadora. Al hacerlo, se está uniendo a una comunidad de personas que están viviendo sus creencias. Comience instalando una cualquier distribución de Software Libre, que está disponible sin costo alguno a través de Internet. Estos software son mantenido por voluntarios en todo el mundo. Si usted siente que necesita más apoyo (y está dispuesto a pagar por ello) hay muchas distribuciones comerciales. Los usuarios pueden ayudar en muchas formas importantes, como escribir informes de errores de alta calidad, realizar solicitudes de funciones y recopilar los requisitos funcionales. Los usuarios proporcionan retroalimentación importante a los mantenedores.
\textbf{Contribuyente:} Muchas personas quieren ayudar a proyectos con código, documentación, empaquetado, etcétera, pero no están listos para hacer el compromiso (o no tienen la experiencia) de ser mantenedores. Los contribuyentes hacen compromisos no triviales con el proyecto, pero usualmente a una intensidad menor que los mantenedores. Los colaboradores pueden reportar errores, pero a menudo arreglan los que encuentran, o al menos investigan sus causas.
\textbf{Mantenedor:} Los mantenedores son los líderes del proyecto; Comprometen mucho tiempo, energía y emoción en sus proyectos. Normalmente, un mantenedor será el árbitro final de cualquier problema de diseño o codificación que surja dentro del proyecto. Es un título de prestigio, pero requiere esfuerzo para ganar y una inversión sustancial para mantener.
\section{¿ Como se ingresa?}
Si aprendimos sobre Software libre y te gustaría ayudar, entonces la siguiente pregunta es, ¿ qué te gustaría hacer?, se puede ayudar de muchas maneras,como Fred Brook señalo, \textit{hay mucho mas para construir productos de software exitoso que simplemente escribir un programa de computadora}, se necesita gente que escriba documentos como libros, guías de referencia e información en linea, también que escriba software, investigue y muchas otras tareas, no tienes que ser un desarrollador de software con experiencia para ayudar, respondida esta pregunta es como nos introducimos a una comunidad haciendo contacto con un miembro de ella para empezar aportar de acuerdo a nuestro perfil y la cantidad de tiempo que dispongamos.
\section{¿ Cómo se gestiona una comunidad de Software Libre?}
La catedral y el bazar es un ensayo sobre el software de código abierto, escrito por el hacktivista \textit{Eric S. Raymond} en 1997.
Cuidadosamente ensamblados por trabajadores en un espléndido aislamiento, sin que hubiera lugar al lanzamiento de versiones de prueba antes de que hubiera llegado el momento.
El ensayo analiza dos modelos de producción de software bien diferenciados. Por un lado, la catedral, que representa el modelo de desarrollo más hermético y vertical característico del Software propietario, cuidadosamente ensamblados por trabajadores en un espléndido aislamiento, sin que hubiera lugar al lanzamiento de versiones de prueba antes de que hubiera llegado el momento; y por el otro el bazar, con su dinámica horizontal y "bulliciosa", con diferentes agendas y enfoques del cual solo parecía posible que emergiera un sistema coherente y estable mediante una sucesión de milagros, que caracterizó al desarrollo del kernel Linux y otros proyectos de software libre que se potenciaron con el trabajo comunitario a través de Internet del código abierto.
Estilo de desarrollo de Linus Torvalds
\begin{itemize}
\item Lanzar versiones de prueba enseguida y a menudo
\item Delegar cuando sea posible
\item Hacer crecer la comunidad
\item Estar abierto al cambio
\end{itemize}
\textbf Libere pronto, Libere a menudo. Y escucha a los usuarios
\begin{itemize}
\item Minimizar la redundancia de esfuerzos mediante la difusión rápida de correcciones ya realizadas.
\item Continuo estímulo y una recompensa constante a los usuarios
\item Constante revision en cada publicacion. Con el potencial de detectar los errores de forma temprana.
\item Menor costo en caso de error.
\end{itemize}
\textbf Delegar cuando sea posible
Aquel que dependa tan sólo de su cerebro al desarrollar un sistema va estar siempre en desventaja frente al que sepa cómo crear un ambiente abierto y en evolución, en el cual la búsqueda de errores y las mejoras se confíen a cientos de personas.
\textbf Hacer crecer la comunidad
Tratar a tus usuarios como colaboradores es el camino menos complicado para mejorar con rapidez y depurar eficazmente un programa.
Dada una base lo suficientemente amplia de probadores y colaboradores, casi todos los problemas se identificarán con rapidez y su solución será obvia para alguien.
Un número mayor de usuarios encuentra más errores debido a que añade muchas más formas diferentes de forzar el programa.
Contexto social de las comunidades de Software Libre
Una comunidad de software libre se asemeja mucho aspectos a un mercado libre o sistema ecológico.
Una colección de agentes autónomos que intentan maximizar la utilidad en un proceso que termina en un orden derivado de la autocorrección mucho mas eficiente y elaborado de lo que hubiera podido lograr cualquier cantidad de planificación
Para trabajar y competir con eficacia, programadores que quieran desarrollar un proyecto en colaboración deben aprender a reclutar y motivar a la gente en base a intereses comunes
Una forma de conectar la individualidad de los colaboradores tan firmemente como fuera posible para llevarla a culminar objetivos difíciles solo alcanzables mediante una colaboración sostenida.
Esto no quiere decir que la visión y la brillantez individual ya no importan. Los proyectos más trascendentales en el mundo del software abierto serán los de aquellos que comiencen a partir de la visión y la brillantez individual, y amplifiquen su importancia mediante la construcción eficaz de grupos con intereses comunes.
\section{¿ Cómo se toman las desiciones?}
Las desiciones se toman teniendo en cuenta aspectos tales como:
\begin{itemize}
\item Nivel de impacto
\item Experiencia de los miembros de la comunidad
\item Diferentes áreas
\end{itemize}
Las desiciones más importantes son tomadas por un grupo de personas a cargo, generalmente desicines respecto al core. Para desiciones de menor impacto las discuciones son menos, como la mejora de caracteristicas de un paquete.
Dentro de un proyecto de software existen direfentes áreas por lo que sus respectivos líderes son los encargados de guiar a sus miembros al objetivo que se halla planteado.
\section{¿ Cómo se comparte código e información?}
El desafío radica en hacer sentir a todos los miembros de una comunidad distribuida que están trabajando juntos en una misma oficina.
Para tal fin, la mayor parte de los proyectos de software libre de código abierto ofrecen como mínimo un conjunto de herramientas entre las que se encuentran:
\begin{itemize}
\item Sitio Web: para transmitir la información del proyecto al público en general
\item Listas de correo electrónico: foro de comunicación dentro del proyecto por excelencia y también el medio registral
\item Control de versiones: para administrar los cambios en el código fuente, incluyendo la posibilidad de revertir los mismos
\item Administrador de bugs: permite a los desarrolladores llevar registro de las actividades en las que están trabajando
\item Chat en tiempo real: un medio para discusiones rápidas e intercambios del tipo pregunta/respuesta
\end{itemize}
\section{¿ Qué es un fork?}
Una bifurcación (fork en inglés), en el ámbito del desarrollo de software, es la creación de un proyecto en una dirección distinta de la principal u oficial tomando el código fuente del proyecto ya existente.
\section{Herramientas de gestión}
Las herramientas por exelencia utilizan internet como medio de comunicación,
\begin{itemize}
\item Listas de correo electrónico: foro de comunicación dentro del proyecto por excelencia y también el medio registral
\item Control de versiones: para administrar los cambios en el código fuente, incluyendo la posibilidad de revertir los mismos
\item Chats, Foros, Blogs
\item Gestión de reportes de fallas
\end{itemize}