Code for Puerto Rico intenta trabajar sobre iniciativas y no proyectos. La razón principal para esto está en nuestros valores, Nos esforzamos por desarrollar aplicaciones y soluciones funcionales, no publicar código. Desde nuestra perspectiva una iniciativa puede tener un sin número de proyectos que la apoyen, que no necesariamente son tecnológicos.
Pero esto es Code for Puerto Rico, por que no van a ser tecnologicos?
Esto es una excelente pregunta. Desde nuestro punto de vista, iniciativas de impacto social necesitan más que una solución tecnológica, necesitan también el elemento y participación humana. Tenemos que entender como nuestras soluciones van a afectar y como van a ser utilizadas para entonces poder tomar las decisiones de una manera informada. Nuestras implementaciones deben seguir un proceso iterativo de "publicar para aprender" (ship to learn), donde se toma la retroalimentación de l@s usuari@s y se implementan cambios de ser necesarios.
Para esto una iniciativa necesita el apoyo de no solo tecnolog@s sino de practicantes de diseño y experiencia de usuari@s, personas que prueben el producto o proceso, personas que entrevisten usuarios y finalmente l@s usuari@s. Como ven toma el conjunto de personas interesadas, trabajando juntas, para que una iniciativa y por ende sus proyectos tengan exito e impacto.
Dicho todo esto, Code for Puerto Rico tiene espacio para colaboraciones que son solo proyectos. Con este propósito vamos dividir nuestro trabajo en iniciativas de Code for Puerto Rico e iniciativas o proyectos comunitarios. Ambos tienen la misma importancia para nosotr@s.
Iniciativas de Code for Puerto Rico son aquellas que están manejadas por el equipo principal de Code for Puerto Rico. Estas iniciativas tienen que cumplir con procesos más rigurosos que un proyecto comunitario. En adición estas iniciativas tendrán que reportar su progreso y finanzas de manera transparente. En adición el equipo trabajando sobre estas iniciativas necesitan estar de acuerdo con el método de trabajo y estar dispuest@s a proveer métricas mensuales a Code for Puerto Rico. A su vez Code for Puerto Rico estará reportando a entes interesados (stakeholders) el progreso de la iniciativa. Estos "stakeholders" pueden incluir Code for America, entidades patrocinadoras, gobiernos municipales o estatales y/o entidades de gobierno como agencias.
Pulse aqui para ver o esconder los detalles
- Toda iniciativa tiene que cumplir con los valores y el código de conducta de Code for Puerto Rico.
- Toda iniciativa tendrá un punto de contacto que reportara el progreso al equipo de Code for Puerto Rico y/o partidas asociadas
- Toda iniciativa trabajará por defecto de una manera abierta y pública.
- Todo proyecto creado o utilizado por una iniciativa estará disponible al publico sin necesidad de crear una cuenta en alguna plataforma.
- Toda iniciativa creará un canal público en el espacio de Slack de Code for Puerto Rico
- El equipo principal de una iniciativa también tendrá un canal privado en Slack para discutir temas sensitivos tales como hostigamiento (sexual o no sexual), racismo, comportamiento inadecuado o cualquier otra infracción a nuestro código de conducta.
- El canal privado también se puede utilizar para organización interna del equipo y discusiones que no estén listas para la comunidad en general. Dicho esto estas discusiones y cualquier decisión se deben de traer a la comunidad una vez el equipo esté listo y solo se deben de limitar a temas sensitivos.
- Toda iniciativa tendrá un Google group con un correo asociado que servirá para comunicaciones fuera de Slack y para obtener retroalimentación de personas que no quieran unirse al Slack de Code for Puerto Rico.
Lo que sigue le aplica a todo proyecto de Code for Puerto Rico:
- La plataforma oficial para el almacenamiento de código es GitHub. Todo código generado por una iniciativa o proyecto tendrá que estar en esta plataforma bajo la organización de Code4PuertoRico
- Se utilizará GitHub issues para manejar tareas y comunicación comunitaria sobre las mismas
- En el evento de que una persona externa no tenga cuenta de GitHub y no quiera crear una, el equipo debe de proveer una manera para obtener retroalimentación y luego deberá colocarla en un issue. Se debe de mencionar de dónde vino la retroalimentación
- Todo cambio al código necesita pasar por un pull request y necesita ser aprobado por el equipo.
- Todo código generado o utilizado tiene que estar bajo una licencia de Código Abierto (Open Source Licence).
- Por el momento estamos limitandonos a las licencias mencionadas aqui
- Nuestra preferencia es utilizar Apache 2.0 como nuestra licencia por defecto. Esto puede cambiar y se puede ajustar dependiendo del proyecto y las necesidades de este.
- Todo proyecto debe de tener un README.md que:
- Introduzca al proyecto
- Indique cómo contactar al equipo
- Canal de Slack
- Google group
- etc.
- Indique a qué iniciativa pertenece
- Indique donde se esta manejando sus tareas (enlace a GitHub issues)
- indique dónde se puede obtener la documentación del proyecto (enlaces a la documentación)
- Todo proyecto debe de tener un CONTRIBUTING.md donde se delinee como interactuar con el proyecto y como participar y someter código.
Estas son iniciativas o proyectos que nos llegan de la comunidad y de las cuales nosotr@s participamos. La intención de Code for Puerto Rico no es de controlar que significa civic tech y mucho menos de dictaminar que proyectos son importantes para las multitudes de comunidades en Puerto Rico. Una meta importante de Code for Puerto Rico es de apoyar proyectos comunitarios y de crear a su vez una comunidad civica mas grande e inclusiva en Puerto Rico y nuestra diáspora.
Los proyectos que nacen de nuestras comunidades siempre tienen el apoyo de Code for Puerto Rico. Estamos aquí para ayudar a buscar recursos, facilitar transiciones de proyectos, facilitar el manejo de proyectos y facilitar la creación de equipos que impulsen proyectos que tengan impacto en nuestras comunidades.
Proyectos deben de estar de acuerdo con lo siguiente para participar:
- Tiene que ser un proyecto de código, data y cultura abierta.
- Tiene que ir acorde con el código de conducta y los valores de Code for Puerto Rico.
- El proyecto debe de ser transparente con la comunidad sobre si el proyecto obtiene algún tipo de renumeración o que opere bajo auspicio o un grant
- Esta información se le tiene que dejar claro a cualquier persona que quiera participar
- Esto ayudará a las personas interesadas a tomar una decisión de participacion informada
- Code for Puerto Rico no tendrá autoridad sobre esta parte del proyecto y no es responsable por el cumplimiento de cualquier acuerdo con terceros u otros miembros de la comunidad.
- Dicho esto, nos reservamos el derecho de incluir o no un proyecto de esta índole. Esto dependerá que como el equipo maneje el proyecto y si la comunidad de Code for Puerto Rico lo acepta.
- Por que no prohibir esto de primera?
- En Code for Puerto Rico no creemos que el trabajar sobre proyectos de código abierto no tiene que ser gratuito, aunque esa sea la norma.
- Si un equipo puede crear un proyecto de impacto social que le deje sustento, nosotros no somos quienes de prohibirles eso.
- Siempre y cuando el proyecto siga las expectativas de ser open source software e inclusivo con la comunidad está bienvenido
Pulse aqui para ver o esconder los detalles
Code for Puerto Rico le proveerá a proyectos comunitarios:
- Un espacio en el Slack de Code for Puerto Rico
- Un espacio en los eventos de Code for Puerto Rico
- Promoción en medios sociales (esto dependerá del proyecto y circunstancias al momento)
- Ayuda buscando auspicios de ser necesario
- Mención en las propiedades de Code for Puerto Rico
- Uso de los logos de Code for Puerto Rico, siempre y cuando se mencione que el proyecto es parte de la comunidad de Code for Puerto Rico y no hecho por Code for Puerto Rico
- Acceso a recursos otorgados por Code for America u otras entidades asociadas
Siendo un proyecto comunitario esta parte dependerá del equipo trabajando en el proyecto. La comunidad de Code for Puerto Rico puede dar sugerencias y mentoría de como mejor manejar un proyecto pero al final esto depende del equipo y su comodidad.
Como ya mencionado, la única exigencia es que el proyecto sea de código abierto, que sea inclusivo y accesible a tod@s y que acepte e implemente el código de conducta y los valores de Code for Puerto Rico.
Algunas sugerencias para equipos que se estén formando:
- Utilicen GitHub o GitLab para almacenar su código.
- Utilicen un mecanismo como GitHub issues para organizar tareas e incluir a la comunidad.
- Tenga un buen README en su proyecto.
- Tenga un código de conducta en su proyecto (debe de ser compatible con el codigo de conducta de Code for Puerto Rico)
- Utilicen pull request / merge request o algún mecanismo similar para manejar las contribuciones de la comunidad.
- Utilicen markdown o restructuredtext para su documentación y mantengala al dia dentro de su repositorio