En cualquier proyecto software, ya sea de datos o no, es necesario la creación de paquetes de código que puedan ser, por un lado, utilizables varias veces dentro de un proyecto e, idealmente, utilizables también en otros proyectos donde se puedan resolver casuísticas similares. Esto permite un aumento de la productividad de los proyectos y también la construcción de bloques lógicos probados en distintos entornos que dan lugar a componentes robustos.