Entornos y metodologías

Aplicativo

El portal de microdatos es una herramienta dispuesta en el software CKAN, que es un software Open Source (código abierto); es decir, aunque el portal de microdatos no es un desarrollo in house como sucede con otras herramientas de la Comisión de la Verdad, tiene la ventaja de no generar costos de licenciamiento, y contar con un desarrollo colaborativo que permite implementar nuevas funcionalidades a partir del desarrollo de plugins.

El CKAN es una aplicación licenciada bajo la licencia GNU AGPL (Affero General Public License), de autoría de Open Knowledge Foundation.

Tecnologías y arquitectura

Para el desarrollo web:

✔️ El proceso de anonimización de las bases de datos se hace a través de scripts de R y Stata.

✔️ Los desarrolladores de la Comisión de la Verdad, hicieron modificaciones al código de Ckan e implementaron algunos plugins para mejorar y extender la aplicación. Entre los plugins implementados se encuentran:

  • Plugin DDI adaptado a la Comisión de la Verdad (con el fin de incorporar algunos campos de la Data Documentation Initiative -metadatos DDI-).

  • Plugin para hacer login con el directorio activo (plugin Ldap).

  • Plugin para dar permisos especiales de acceso a los dataset (para aquellos usuarios que solicitan acceder a bases de datos privadas no anonimizadas o con algún tipo de reserva) - plugin Extrapermissions.

✔️ La modificación del código se hizo en función de:

  • Mejorar el rendimiento.

  • Organizar requerimientos específicos de la Comisión: licencias, niveles de acceso, público/privado, obligatoriedad o no de algunos campos, entre otros aspectos. No existe un plugin para estos ajustes, por tanto, se optó por modificar directamente el código, el núcleo donde ya venían esquematizados.

✔️ Las modificaciones a CKAN en función de la Comisión de la Verdad se hicieron, en su gran mayoría, en el componente Logic, donde se encentra toda la lógica de programación. En el componente Models se encuentran todas las conexiones a las bases de datos, allí se modificaron algunos campos con el fin de que fueran opcionales. Finalmente, dentro del componente Views se modificó la forma de presentar los datos.

El componente Logic del portal de microdatos de la Comisión de la Verdad, se encuentra en:

comisiondelaverdad/sim-ckan/-/tree/main/ckan/logic

Metodologías

  • Programación Sprint Scrum:

    • Historias de usuario

    • Definición de tableros y actividades (sprints)

    • Planeación y seguimientos

Esta metodología se lleva a cabo a través de tableros Jira, donde se hace seguimiento a los sprints.

Buenas prácticas

Programación Scrum: se recomienda trabajar bajo la metodología de programación Sprint Scrum, dado que es una metodología que permite la articulación fácil y rápida de modelos simples y funcionales, los cuales pueden ir evolucionando con el feedback y las necesidades del cliente.

Bajo esta metodología estaremos en función de un desarrollo iterativo o incremental, el cual consiste en dividir el trabajo en pequeñas partes o bloques temporales (sprint). Al final de cada etapa se entrega una funcionalidad completa. Para estructurar la evolución se recomienda crear el Mínimo Producto Viable (Minimum Viable Product, MVP): producto con suficientes características para satisfacer a los clientes y proporcionar retroalimentación para el desarrollo futuro.

MVP: herramienta que permite aprender mientras se desarrolla. Gracias a la iteración, el producto evoluciona y se reduce el tiempo para la validación de nuevas ideas.

Estandarizar código: definir unas reglas de trabajo; es decir, estandarizar la manera en que se van a crear y llamar las funciones, los métodos, las variables, los atributos, etc. La normalización del código es fundamental para el mantenimiento óptimo del desarrollo.

Comentar el código: es una buena práctica comentar el código a fin de que se convierta en un texto legible, autoexplicativo y facilite las modificaciones y el mantenimiento.

Interacción con usuarios: es una buena práctica tener entrevistas previas con los usuarios del sistema; dichos encuentros permiten entender los requerimientos puntuales y las funcionalidades concretas sobre las que debe basarse el desarrollo. Además, se recomienda encontrar un lenguaje común entre lo técnico del sistema y el requerimiento del usuario, a fin de no generar reprocesos y lograr comunicar fácilmente las funcionalidades del sistema.

Last updated