Product SiteDocumentation Site

1.3. El funcionamiento interno del proyecto Debian

Los abundantes resultados finales producidos por el proyecto Debian derivan simultáneamente del trabajo de sus desarrolladores experimentados en la infraestructura, trabajo individual o grupal de desarrolladores en paquetes Debian y comentarios y sugerencias de usuarios.

1.3.1. Los desarrolladores Debian

Debian developers have various responsibilities, and as official project members, they have great influence on the direction the project takes. A Debian developer is generally responsible for at least one package, but according to their available time and desire, they are free to become involved in numerous teams, acquiring, thus, more responsibilities within the project.
Package maintenance is a relatively regimented activity, very documented or even regulated. It must, in effect, comply with all the standards established by the Debian Policy. Fortunately, there are many tools that facilitate the maintainer's work. The developer can, thus, focus on the specifics of their package and on more complex tasks, such as squashing bugs.
The Policy, an essential element of the Debian Project, establishes the norms ensuring both the quality of the packages and perfect interoperability of the distribution. Thanks to this Policy, Debian remains consistent despite its gigantic size. This Policy is not fixed in stone, but continuously evolves thanks to proposals formulated on the mailing list. Amendments that are agreed upon by all interested parties are accepted and applied to the text by a small group of maintainers who have no editorial responsibility (they only include the modifications agreed upon by the Debian developers that are members of the above-mentioned list). You can read current amendment proposals on the bug tracking system:
La Normativa cubre en detalle los aspectos técnicos de la creación de paquetes. El tamaño del proyecto también genera problemas de organización; estos son tratados por la Constitución Debian («Debian Constitution»), que establece una estructura y los medios para tomar decisiones. En otras palabras: un sistema formal de gobierno.
Esta constitución define cierta cantidad de roles y posiciones además de las responsabilidades y atribuciones de cada uno. Es particularmente importante notar que los desarrolladores Debian siempre tienen la autoridad máxima en cuanto a decisiones mediante sus votos a resoluciones generales, en ellas se necesita una mayoría calificada de tres cuartos (75%) de los votos para realizar modificaciones significativas (como aquellas que tendrán impacto en los documentos fundacionales). Sin embargo, los desarrolladores eligen un «líder» cada año para representarlos en reuniones y asegurar la coordinación interna entre varios equipos. Esta elección es siempre un período de discusiones intensas. El rol del líder no está formalmente definido en ningún documento: los candidatos al puesto generalmente ofrecen su propia definición para el mismo. En la práctica, el rol de líder incluye ser representante frente a los medios, coordinar equipos «internos» y dar una guía general al proyecto con la que los desarrolladores empaticen: la visión del líder («DPL» por sus siglas en inglés) son aprobadas implícitamente por la mayoría de los miembros del proyecto.
Específicamente, el líder realmente tiene autoridad: sus votos deciden votaciones empatadas, pueden tomar decisiones sobre aquello que no esté a cargo de alguien más y pueden delegar parte de sus responsabilidades.
Since its inception, the project has been successively led by Ian Murdock, Bruce Perens, Ian Jackson, Wichert Akkerman, Ben Collins, Bdale Garbee, Martin Michlmayr, Branden Robinson, Anthony Towns, Sam Hocevar, Steve McIntyre, Stefano Zacchiroli, Lucas Nussbaum, Mehdi Dogguy and Chris Lamb.
La constitución también define un «comité técnico». El rol esencial de este comité es tomar decisiones en asuntos técnicos cuando los desarrolladores involucrados no llegaron a un acuerdo entre ellos. De lo contrario, el comité tiene un rol de consejero para cualquier desarrollador que no tome una decisión en una cuestión de la que son responsables. Es importante notar que el comité sólo se involucra cuando alguna de las partes así lo solicita.
Por último, la constitución define la posición de «secretario del proyecto» quien está a cargo de organizar las votaciones relacionadas a las varias elecciones y resoluciones generales.
The “general resolution” procedure is fully detailed in the constitution, from the initial discussion period to the final counting of votes. The most interesting aspect of that process is that when it comes to an actual vote, developers have to rank the different ballot options between them and the winner is selected with a Condorcet method (more specifically, the Schulze method). For further details see:
Aún cuando la constitución establece una democracia aparente, la realidad diaria es muy diferente: Debian sigue naturalmente las reglas de una «do-ocracia» (el gobierno de los que hacen) en el software libre: es aquél que hace las cosas el que decide cómo hacerlas. Se puede desperdiciar mucho tiempo discutiendo los méritos respectivos de varias formas de abordar un problema; la solución elegida será la primera que sea tanto funcional como satisfactoria... que saldrá del tiempo que una persona competente invirtió en ella.
Esta es la única forma en que ganará sus insignias: haga algo útil y muestre que ha trabajado bien. Muchos equipos «administrativos» en Debian funcionan por cooptación, prefiriendo voluntarios que ya han realizado contribuciones palpables y demostrado ser competentes. La naturaleza pública del trabajo de estos equipos hace posible que nuevos colaboradores la observen y empiecen a ayudar sin ningún privilegio especial. Esta es la razón por la que Debian es normalmente descripto como una «meritocracia».
Este método de operaciones es efectivo y garantiza la calidad de los contribuyentes en los equipos «clave» de Debian. Este método dista de ser perfecto y ocasionalmente algunos no lo aceptan. La selección de desarrolladores aceptados en los grupos puede parecer arbitraria o incluso injusta. Lo que es más, no todos tienen la misma definición de los servicios esperados de estos equipos. Para algunos es inaceptable tener que esperar ocho días para la inclusión de un nuevo paquete en Debian, mientras que otros esperarán pacientemente por tres semanas sin problemas. Por ello, regularmente hay quejas sobre la «calidad de servicio» de algunos equipos por aquellos que están descontentos.

1.3.2. El papel activo de los usuarios

Uno se podría preguntar si es relevante mencionar a los usuarios entre aquellos que trabajan dentro del proyecto Debian, pero la respuesta es un sí definitivo: tienen un papel crítico en el proyecto. Lejos de ser «pasivos», algunos usuarios utilizan versiones de desarrollo de Debian y reportan fallos regularmente para indicar problemas. Otros van más allá aún y envían ideas para mejoras reportando errores con gravedad «wishlist» o inclusive envían correcciones al código fuente, llamados «parches» (revise el recuadro VOLVER A LOS CIMIENTOS Parches, la forma de mandar una corrección).
Additionally, numerous satisfied users of the service offered by Debian like to make a contribution of their own to the project. As not everyone has appropriate levels of expertise in programming, they may choose to assist with the translation and review of documentation. There are language-specific mailing lists to coordinate this work.
Todos estos mecanismos de colaboración son más eficientes con el comportamiento de los usuarios. Lejos de ser una colección de personas aisladas, los usuarios son una verdadera comunidad en la que ocurren numerosos intercambios. Notamos especialmente la impresionante actividad en la lista de correo para discusión de usuarios (el Capítulo 7, Resolución de problemas y búsqueda de información relevante discute esto en más detalle).
No sólo los usuarios se ayudan entre ellos (y a otros) con problemas técnicos que los afectan directamente sino que también discuten las mejores formas para contribuir con el proyecto Debian y ayudar moverlo adelante — discusiones que frecuentemente resultan en sugerencias para mejoras.
Como Debian no gasta fondos en capañas de promoción sus usuarios cumplen un papel esencial en su difusión, asegurando su fama con el boca a boca.
Este método funciona bastante bien ya que se encuentran fanáticos de Debian en todos los niveles de la comunidad de software libre: desde festivales de instalación (talleres en los que usuarios experimentados ayudan a novatos a instalar el sistema) organizado por grupos de usuarios Linux («LUG» por sus siglas en inglés), hasta puestos de la asociación en grandes convenciones técnicas que tienen que ver con Linux, etc.
Volunteers make posters, brochures, stickers, and other useful promotional materials for the project, which they make available to everyone, and which Debian provides freely on its website and on its wiki:

1.3.3. Equipos y subproyectos

Debian ha estado organizado, desde sus comienzos, alrededor del concepto de paquetes fuente, cada uno con su encargado o grupo de responsables. Con el tiempo, han aparecido numerosos equipos de trabajo asegurando la administración de la infraestructura, la organización de tareas que no son específicas a un paquete en particular (control de calidad, normativa de Debian, instalador, etc.), con los últimos equipos creciendo alrededor de subproyectos.

1.3.3.1. Subproyectos Debian existentes

¡Para cada uno, su Debian! Un subproyecto es un grupo de voluntarios interesados en adaptar Debian a una necesidad específica. Además de seleccionar un subgrupo de programas destinados a un dominio particular (educación, medicina, creación multimedia, etc.) los subproyectos están involucrados en mejorar paquetes existentes, crear nuevos paquetes de software, adaptar el instalador, crear documentación específica y más.
A continuación se muestra una pequeña selección de los subproyectos actuales:
  • Debian-Junior, por Ben Armstrong, ofrece un sistema Debian atractivo y fácil de usar para los niños;
  • Debian-Edu, por Petter Reinholdtsen, centrado en la creación de una distribución especializada para el mundo académico;
  • Debian-Med, por Andreas Tille, dedicada a la campo de la medicina;
  • Debian Multimedia, que se ocupa del trabajo de sonido y multimedia;
  • Debian-Desktop que se centra en el escritorio y coordina la creación del tema por defecto;
  • Debian GIS que se cuida de las aplicaciones y los usuarios de los Sistemas de Información Geográfica (SIG);
  • Debian Accessibility, finalmente, mejora Debian para suplir las necesidades de las personas con discapacidades.
Esta lista seguramente continuará creciendo con el tiempo y la mejor percepción de las ventajas de los subproyectos Debian. Completamente apoyados en la infraestructura Debian existente pueden enfocar su trabajo en valor agregado real sin preocuparse por mantenerse sincronizados con Debian ya que son desarrollados dentro del proyecto.

1.3.3.2. Grupos administrativos

La mayoría de los equipos administrativos son relativamente cerrados y sólo reclutan miembros por cooptación. La mejor forma de convertirse en miembro de uno es asistir inteligentemente a miembros actuales demostrándoles que uno entiende sus objetivos y métodos de operación.
Los «ftpmasters» están a cargo del archivo oficial de paquetes Debian. Mantienen el programa que recibe los paquetes enviados por desarrolladores y los almacena automáticamente en el servidor de referencia luego de algunas revisiones (ftp-master.debian.org).
Antes de incluirlo en el conjunto de paquetes existentes, deben también verificar la licencia de todo paquete nuevo para asegurar que Debian puede distribuirlos. Cuando un desarrollador desea eliminar un paquete, se dirige a este equipo a través del sistema de seguimiento de errores y el «pseudopaquete» ftp.debian.org.
El equipo Debian System Administrators (DSA, «administradores de sistemas de Debian», ) es, como uno esperaría, responsable de la administración de los muchos servidores utilizados por el proyecto. Aseguran el funcionamiento óptimo de todos los servicios base (DNS, sitio web, correo, consola, etc.), instalar software pedido por desarrolladores Debian y tomar todas las precauciones necesarias en cuanto a seguridad.
Los «listmasters» administran el servidor de email que gerencian las listas de correo. Crean nuevas listas, manejan rechazos (anuncios de fallo de entrega) y mantienen filtros de spam (correo masivo no solicitado).
Each specific service has its own administration team, generally composed of volunteers who have installed it (and also frequently programmed the corresponding tools themselves). This is the case of the bug tracking system (BTS), the package tracker, salsa.debian.org (GitLab server, see sidebar TOOL GitLab, Git repository hosting and much more), the services available on qa.debian.org, lintian.debian.org, buildd.debian.org, cdimage.debian.org, etc.

1.3.3.3. Equipos de desarrollo, equipos transversales

A diferencia de los equipos de administradores los equipos de desarrollo son más abiertos, incluso a los colaboradores externos. Incluso si Debian no tuviera vocación de crear software, el proyecto necesita algunos programas concretos para alcanzar sus objetivos. Desarrollado por supuesto bajo una licencia de software libre, estas herramientas hacen uso de métodos probados en otras partes del mundo del software libre.
Debian desarrolló poco software propio, pero algunos programas asumieron roles centrales y su fama se propagó más allá de los alcances del proyecto. Son buenos ejemplos dpkg, el programa de administración de paquetes de Debian (su nombre es, de hecho, una abreviación de paquete Debian - «Debian PacKaGe» y generalmente se lo nombra «dee-package» en inglés) y apt, una herramienta para instalar automáticamente cualquier paquete Debian y sus dependencias garantizando la consistencia del sistema luego de la actualización (su nombre es acrónimo de herramienta avanzada para paquetes - «Advance Package Tool»). Sus equipos son, sin embargo, mucho más pequeños ya que se necesitan habilidades de programación algo avanzadas para entender el funcionamiento de este tipo de programas.
El equipo más importante probablemente sea el del programa de instalación de Debian, debian-installer, que ha llevado a cabo una obra de increíbles proporciones desde su concepción en 2001. Fueron necesarios numerosos colaboradores ya que es difícil escribir un único programa capaz de instalar Debian en una docena de arquitecturas diferentes. Cada una con su propio mecanismo de arranque y su propio gestor de arranque. Todo este trabajo es coordinado en la lista de correo bajo la dirección de Cyril Brulebois.
El (pequeñísimo) equipo del programa debian-cd tiene un objetivo mucho más modesto. Muchos contribuyentes «pequeños» son responsables de su arquitectura ya que el desarrollador principal no puede conocer todas sus sutilezas ni la manera exacta para iniciar el programa de instalación desde el CD-ROM.
Muchos equipos tienen que colaborar con otros en la actividad de empaquetado: intenta, por ejemplo, garantizar la calidad en todos los niveles del proyecto Debian. La lista desarrolla la normativa Debian de acuerdo con las propuestas de todos lados. Los equipos encargados de cada arquitectura () compila todos los paquetes, adaptándolos a su arquitectura particular si es necesario.
Otros equipos administran los paquetes más importantes con el fin de asegurar el mantenimiento sin colocar una carga demasiado pesada sólo sobre un par de hombros; este es el caso de la biblioteca C y , el compilador C en la lista , Xorg en (este grupo también es conocido como la Fuerza de Ataque X — «X Strike Force»).