INTRODUCCION
En el dinámico y desafiante campo del desarrollo de software, la planificación y
estimación son aspectos cruciales que impactan directamente en la ejecución y el
resultado final de un proyecto. La adopción de métricas específicas y técnicas de
estimación precisa proporciona a las organizaciones la capacidad de evaluar
detalladamente la complejidad, el rendimiento y los recursos necesarios para llevar a
cabo un proyecto de software de manera eficiente y efectiva. Estas herramientas no
solo permiten una gestión más estratégica y fundamentada, sino que también facilitan
la asignación óptima de recursos, la toma de decisiones informadas y el control preciso
de los plazos y costos del proyecto, lo que contribuye a la satisfacción de los
interesados y al logro de los objetivos establecidos.
Es fundamental identificar y evitar los errores comunes que pueden surgir en la
planificación de proyectos de software, como el análisis insuficiente de requisitos, la
falta de una estrategia clara y la subestimación de los recursos necesarios. Estos
errores pueden tener repercusiones significativas en la calidad, el cronograma y el
presupuesto del proyecto, lo que a su vez puede afectar la satisfacción del cliente y la
reputación de la organización en el mercado. Por otro lado, la implementación de
actividades obligatorias, como la definición precisa del alcance del proyecto y la
descomposición en tareas más pequeñas para estimaciones detalladas, desempeña un
papel fundamental en la gestión efectiva de proyectos de software, al garantizar una
planificación sólida y una ejecución eficiente.
Además, los puntos de función, que se calculan en base a las entradas, salidas y
procesos del sistema, representan una herramienta valiosa para medir la funcionalidad
y el tamaño de un sistema de software. Estos puntos de función permiten una
estimación más precisa del esfuerzo y los recursos necesarios para el desarrollo del
software, lo que a su vez facilita la toma de decisiones estratégicas, la planificación
efectiva y la optimización de los recursos disponibles. En resumen, la correcta
aplicación de métricas, estimaciones y actividades obligatorias en proyectos de
software es esencial para garantizar el éxito, la eficiencia y la satisfacción de todas las
partes interesadas involucradas en el proyecto, así como para fomentar la innovación,
la excelencia y la competitividad en el ámbito del desarrollo de software en la
actualidad.
OBJECTIVO GENERAL
El objetivo general del documento es ofrecer una detallada orientación sobre la
implementación de métricas y estimaciones en proyectos de software, con el propósito
de mejorar la planificación, la eficacia y la calidad en el desarrollo de sistemas
informáticos. Se pretende proporcionar herramientas para evaluar la funcionalidad del
software, estimar el trabajo humano necesario y evitar errores comunes en la gestión
de proyectos de software, con el objetivo de perfeccionar el proceso de ingeniería de
software y asegurar la entrega exitosa de sistemas de alta calidad y rendimiento.
OBJECTIVOS ESPECIFICOS
Definir métricas específicas orientadas a la función, técnicas, de calidad y
productividad para evaluar diferentes aspectos del desarrollo de software.
Establecer procedimientos detallados para estimar el esfuerzo humano, la
duración y el costo de los proyectos de software de manera precisa.
Identificar y abordar errores comunes en la gestión de proyectos de software
para mejorar la eficiencia y calidad de los sistemas desarrollados.
Desarrollar un sistema de medición de la funcionalidad del software basado en
puntos de función y otras métricas relevantes
Implementar estrategias para calcular la productividad del equipo en relación
con el esfuerzo y el tamaño del proyecto.
Establecer criterios para evaluar la calidad del software mediante la relación
entre errores encontrados y el tamaño del código.
Diseñar un método para calcular el costo por kilolínea de código (KLDC) como
indicador de eficiencia en la producción de software.
MARCO TEORICO
PLANIFICACION Y SEGUIMIENTO METRICAS DEL PROYECTO
1. MEDIDAS, MÉTRICAS E INDICADORES
La medición es una actividad fundamental en cualquier disciplina de ingeniería, y la
ingeniería del software en general y la gestión de proyectos de software en
particular no son excepciones a esta regla ya que dicha actividad proporciona un
mecanismo para realizar evaluaciones objetivas.
Fenton [Fenton 1998] indica que la actividad de medición persigue tres objetivos:
• Colaborar en la comprensión del estado de las actividades que llevan a la
elaboración del
• producto.
• Permitir identificar e implementar controles.
• Posibilitar y guiar la implementación de mejoras en los procesos y
productos.
Aunque comúnmente se los utiliza como sinónimos, es preciso destacar las
diferencias que existen entre las medidas, las mediciones, las métricas y los
indicadores; así, en base al Glossary of Software Engineering Terminology del
Institute of Electrical and Electronics Engineers Computer Society
[IEEE 1993] se definen:
• Una medida proporciona una indicación cuantitativa de la extensión,
cantidad, dimensiones, capacidad o tamaño de algunos atributos de un
proceso o producto.
• La medición es el acto de determinar una medida.
• Una métrica es una medida cuantitativa del grado en que un sistema,
componente o proceso ,posee un atributo dado.
• Un indicador es una métrica (o el resultado de la combinación de varias)
que brinda información
objetiva que junto a criterios de decisión definidos permiten a los participantes de
un proyecto
medir la ejecución y realizar ajustes tanto en el producto como en los procesos que
se emplean.
Los conceptos antes mencionados constituyen la piedra basal para la ejecución del
proceso de
medición que, según la visión clásica aportada por Pressman [Pressman 2004],
puede dividirse en cinco
grandes actividades:
a) Formulación: La definición de medidas y métricas de software
apropiadas para la representación del proceso o producto en
cuestión.
b) Recolección: La acumulación de los datos necesarios para obtener
las métricas formuladas.
c) Análisis: El cálculo de las métricas y la aplicación de herramientas
matemáticas.
d) Interpretación: La evaluación de los resultados de las métricas.
e) Realimentación: La elaboración de las recomendaciones obtenidas
de la interpretación de las métricas.
Atendiendo a que una buena parte del cumplimiento del objetivo del presente
trabajo de tesis
estará ligada a la definición de un conjunto de métricas, resulta indispensable
comprender cuales son las
etapas que llevan a la elaboración de un apropiado diseño de las mismas
(nuevamente se utilizan los
principios expresados por Pressman [Pressman 2004] para lograr este propósito):
a) Establecer definiciones claras que hagan las veces de estándares y que eviten
confusiones y malas interpretaciones resultantes de dar comprensiones
diferentes a un mismo término.
b) Definir el modelo para la métrica, es decir, especificar cómo se la va a calcular.
c) Establecer un criterio de conteo unívoco para aquellas métricas primitivas (es
decir, las cuantificables de manera directa).
d) Fijar objetivos, o de un modo más coloquial, decidir qué es bueno y qué es malo
en relación a los posibles valores obtenidos para una métrica. Es aquí, entonces,
donde se da origen a los objetivos que, combinados con criterios de decisión y
los valores de las métricas mismas, operancomo indicadores del rendimiento
del proceso o producto en cuestión.
e) Decidir el reporte, incluyendo no solo temas de formato sino también otros aspectos
tales como la frecuencia, los criterios de distribución, las características de
disponibilidad, etc
De todo lo antes expuesto, resulta evidente que es necesario no solo contar con un
método de definición de métricas y con una base para su formalización sino también llevar
a cabo una muy buena planificación respecto a la información a ser recolectada en las
métricas de modo tal de que una vez recopilada sea útil y comprensible. Estos propósitos
sólo podrán ser alcanzados si, al momento de crear y usar las mediciones, se respetan una
serie de principios básicos aportados por Fenton [Fenton 1999]:
• Se deben definir y/o seleccionar métricas en base a los objetivos perseguidos, ya que
las mismas deben brindar información relevante y en respuesta a las metas fijadas.
• Se debe proveer realimentación con regularidad y claridad.
• Se debe transmitir a los equipos el sentimiento de su propiedad sobre las métricas,
logrando así su compromiso para el logro de los indicadores establecidos.
• No se debe medir a los individuos sino a los procesos y/o productos.
• No se deben ignorar los datos al momento de tomar decisiones y definir acciones.
• No se debe emplear una sola métrica ya que la mejora de una puede conseguirse a
expensas de empeorar otras.
2. METRICAS ORIENTADAS AL TAMAÑO Y FUNCION PLANIFICACION DE
PROYECTO DE SOTWARE
2.1. METRICAS ORIENTADAS AL TAMAÑO
Son medidas directas del software y del proceso por el cual se desarrolla. Se obtiene
considerando las medidas de productividad y normalizándolas por el tamaño del
código, es decir las líneas de código LDC.
Se lista cada proyecto de desarrollo de software de los últimos años y los
correspondientes datos orientados al tamaño de cada uno, se basan en a utilización de
registros sencillos para las medidas más relevantes al desarrollo de nuestro proyecto.
Tabla 1. Actividades de Ingeniería de software IS (análisis, diseño, codificación y
prueba)3
2.2. METRICAS ORIENTADAS A LA FUNCION
Son medidas indirectas del software y del proceso por el cual se desarrolla. Se
centran en la funcionalidad o utilidad del programa. Las métricas orientadas a la
función fueron el principio propuestas por Albercht quien sugirió un acercamiento
a la medida de la productividad del desarrollo de un proyecto de software
denominado método del punto de función. Los puntos de función que obtienen
utilizando una función empírica basando en medidas cuantitativas del dominio de
información del software y valoraciones subjetivos de la complejidad del software.
[Link]
En el principio el costo del Software constituía un pequeño porcentaje del costo
total de los sistemas basados en Computadoras. Hoy en día el Software es el elemento
más caro de la mayoría de los sistemas informáticos.
Un gran error en la estimación del costo puede ser lo que marque la diferencia entre
beneficios y perdidas, la estimación del costo y del esfuerzo del software nunca será
una ciencia exacta, son demasiadas las variables: humanas, técnicas, de entorno,
políticas, que pueden afectar el costo final del software y el esfuerzo aplicado para
desarrollarlo.
Para realizar estimaciones seguras de costos y esfuerzos tienen varias opciones
posibles:
Deje la estimación para más adelante (obviamente podemos realizar una
estimación al cien por cien fiable después de haber terminado el proyecto.
Base las estimaciones en proyectos similares ya terminados.
Utilice técnicas de descomposición relativamente sencillas para generar las La
técnica de descomposición basada en el problema se basa en la
descomposición del producto en funciones y estimar el tamaño del software. Se
puede considerar dos tamaños del software: LDC y PF
En cualquier caso la precisión de la estimación depende de e grado en el que el
planificador ha estimado adecuadamente el tamaño del producto a construir.
Este tipo de estimación puede basarse en datos históricos y experiencia o
intuición
Otra técnica de descomposición es la estimación en el proceso que se va a
utilizar. Utilizando el proceso se identifica un conjunto pequeñas actividades de
trabajo o tareas de trabajo y se estima el esfuerzo requerido para llevar a cabo
cada tarea. estimaciones de costos y esfuerzo del proyecto.
Desarrolle un modelo empírico para él cálculo de costos y esfuerzos del
Software.
[Link] DE DESCOMPOSICION
La técnica de descomposición basada en el problema se basa en la descomposición del
producto en funciones y estimar el tamaño del software. Se puede considerar dos
tamaños del software: LDC y PF
En cualquier caso la precisión de la estimación depende de e grado en el que el
planificador ha estimado adecuadamente el tamaño del producto a construir.
Este tipo de estimación puede basarse en datos históricos y experiencia o intuición.
Otra técnica de descomposición es la estimación en el proceso que se va a utilizar.
Utilizando el proceso se identifica un conjunto pequeñas actividades de trabajo o
tareas de trabajo y se estima el esfuerzo requerido para llevar a cabo cada tarea.
Definir métricas específicas orientadas a la función, técnicas, de calidad y
productividad para evaluar diferentes aspectos del desarrollo de software.
Establecer procedimientos detallados para estimar el esfuerzo humano, la
duración y el costo de los proyectos de software de manera precisa.
Identificar y abordar errores comunes en la gestión de proyectos de software
para mejorar la eficiencia y calidad de los sistemas desarrollados.
Desarrollar un sistema de medición de la funcionalidad del software basado en
puntos de función y otras métricas relevantes
Implementar estrategias para calcular la productividad del equipo en relación
con el esfuerzo y el tamaño del proyecto.
Establecer criterios para evaluar la calidad del software mediante la relación
entre errores encontrados y el tamaño del código.
Diseñar un método para calcular el costo por kilolínea de código (KLDC) como
indicador de eficiencia en la producción de software.
[Link] EMPIRICOS DE ESTIMACION
Utilizan fórmulas derivadas empíricamente de una muestra limitada de proyectos
para predecir el esfuerzo en función de LOC o PF.
* La estimación de los valores de LOC y PF se realizan utilizando las técnicas de
descomposición.
* Los valores resultantes se aplican a la fórmula del modelo que se haya escogido
para obtener el esfuerzo en hombres-mes.
* Precisamente por venir de una muestra limitada, no son adecuados para toda
clase de software ni para todo medio ambiente de desarrollo.
Modelo COCOMO
Creado por Barry Boehm en 1981. Su nombre significa COnstructive COst MOdel
(Modelo constructivo de costo) y se puede dividir en tres modelos.
Los modelos COCOMO están definidos para tres tipos de proyectos de software:
Orgánicos.
Proyectos pequeños y sencillos.
Equipos pequeños con experiencia en la aplicación.
Requisitos poco rígidos.
Semiacoplados.
Proyectos de tamaño y complejidad intermedia.
Equipos con variado niveles de experiencia.
Requisitos poco o medio rígidos.
Empotrados.
* Proyectos que deben ser desarrollados con un conjunto de requisitos
(hardware y software) muy restringidos.
COCOMO básico
Las ecuaciones del modelo COCOMO básico son de la forma:
Donde:
Los coeficientes a y c y los exponentes b y d se obtienen de la siguiente tabla:
Aplicando el modelo COCOMO básico al ejemplo anterior y usando un tipo de
proyecto orgánico obtenemos una estimación para el esfuerzo:
Para calcular la duración del proyecto usamos la estimación de esfuerzo:
El valor de la duración del proyecto permite al planificador recomendar un número
de personas N para el proyecto.
El planificador puede decidir emplear sólo una o dos personas y ampliar por tanto la
duración del proyecto.
COCOMO intermedio
En el COCOMO intermedio, la ecuación para calcular el tiempo de desarrollo es la
misma que la del COCOMO básico. La ecuación para calcular el esfuerzo es:
A cada atributo se le asigna un número real de acuerdo a la tabla siguiente:
El número indica el grado con el que cada factor puede influenciar la productividad.
Un valor menor que 1 indica que el factor puede decrementar el calendario y el
esfuerzo. Un valor mayor que 1 denota un factor que extiende el calendario y el
esfuerzo. Finalmente, un valor igual a 1 no extiende ni decrementa el calendario y
el esfuerzo (esta clase de factor se llama nominal).
Para obtener el EAF se multiplican cada uno de los 15 factores.
Se puede simplificar el cálculo del EAF porque hay una tendencia a considerar los
atributos marcados en (*), como los más relevantes y que deberían ser tomados en
cuenta.
La ecuación del software
Propuesta por Putnam y Myers en 1992.
Asume una distribución específica del esfuerzo a lo largo de la vida de un
proyecto.
Se obtuvo a partir de datos de productividad de unos 4,000 proyectos.
Es de la forma:
Para simplificar el proceso de estimación se sugiere un conjunto de
ecuaciones obtenidas de la ecuación del software.
Un tiempo mínimo de desarrollo de software se define como:
Aplicando las ecuaciones al ejemplo anterior, obtenemos:
a) Modelos de crecimiento de poblaciones: Utilizados en biología y ecología para
estimar el crecimiento de poblaciones a lo largo del tiempo, como el modelo
logístico.
6. PLANIFICACION TEMPORAL DEL PROYECTO: TECNICAS EMPLEADAS
La planificación temporal de un proyecto de software no difiere mucho de la de
cualquier otro esfuerzo de desarrollo multitarea. Además, se pueden utilizar las
técnicas y herramientas generales de planificación temporal de proyectos para el
desarrollo de software, con pequeñas modificaciones.
La técnica de evaluación y revisión de programas (“Program Evaluation and Review
Technique”— PERT) y el método del camino crítico (“Critical Path Method” — CPM) son
dos métodos de planificación temporal de proyectos que pueden aplicarse al desarrollo
de software. Ambas técnicas desarrollan una descripción de la red de tareas del
proyecto: es decir, una representación gráfica o tabular de las tareas que deben
acometerse desde el principio hasta el final del proyecto (Figura 6.1). La red se define
desarrollando una lista de todas las tareas asociadas con el proyecto específico, lista
que a veces se denomina estructura de descomposición de trabajos (“Work Breakdown
Structure” — WBS) del proyecto, y una lista de secuenciamientos (a veces llamada lista
de restricciones), que indica en qué orden deben realizarse las tareas.
Tanto PERT como CPM proporcionan herramientas cuantitativas que permiten al
planificador del software: (1) determinar el camino crítico —la secuencia de tareas que
determina la duración total del proyecto, (2) establecer las estimaciones de tiempo
más probables para las tareas individuales con la aplicación de modelos estadísticos y
(3) calcular los límites de tiempo que definen una "ventana temporal" para cada tarea
individual.
El cálculo de los límites de tiempo puede ser muy útil en la planificación del proyecto
de software. Un descuido en el diseño de una función, por ejemplo, puede retrasar el
desarrollo de otras funciones posteriores. Existen ciertos límites de tiempo importantes
que pueden obtenerse de la red PERT ó CPM:(1) lo más pronto que puede comenzar
una tarea cuando todas las tareas precedentes se terminan en el mínimo tiempo
posible; (2) lo más tarde que se puede iniciar la tarea sin que se retrase el tiempo
mínimo de finalización del proyecto; (3) el final mas temprano —la suma del comienzo
mas temprano y la duración de la tarea; (4) el final más tardío —el comienzo más
tardío sumado a la duración de la tarea; (5) el margen total —la cantidad de tiempo
sobrante o margen permitido en la planificación de tareas, de forma que el camino de
la red se mantenga dentro de la agenda. Los cálculos de los límites de tiempo llevan a
la determinación del camino crítico y proporcionan al gestor un método cuantitativo
para la evaluación del progreso a medida que se van terminando las tareas.
[Link] DEL PROYECTO GESTION DE RIESGO
Un proceso efectivo de gestión de riesgos es un componente importante en todo
proyecto de desarrollo de software exitoso. La gestión de riesgos permite definir en
forma estructurada, operacional y organizacional, una serie de actividades para
gestionar los riesgos de los proyectos a lo largo de todas las fases de su ciclo de vida
de desarrollo de software. En la mayor parte de los casos, esto se traduce en la
creación de planes tendientes a impedir que los riesgos se transformen en problemas,
o a minimizar su probabilidad de ocurrencia o impacto.
A nivel organizacional, una política de gestión de riesgos debería considerar, al
menos, los siguientes aspectos:
• Todos los riesgos relacionados con los proyectos de desarrollo de software
deben ser identificados, analizados, priorizados y revisados, siguiendo un
Plan de Gestión de Riesgos.
• El Plan de Gestión de Riesgos debe ser documentado apropiadamente, ya
sea como un documento independiente o formando parte del Plan de
Proyecto.
• Como consecuencia de los constantes cambios, la lista de los riesgos y la
información relacionada con su estado actual e historia reciente, deben ser
gestionados en una
• Base de Datos específica de Riesgos.
• La información contenida en la Base de Datos de Riesgos debe ser
enriquecida a través del tiempo.
8. IDENTIFICACION DEL RIESGO
La Identificación de Riesgos en proyectos de software consiste en la determinación de
elementos de riesgos potenciales mediante la utilización de algún método consistente
y estructurado; este es el paso más importante entre todos aquellos que componen las
actividades de Gestión de Riesgos, ya que, sin la correcta determinación de los riesgos,
no es posible desarrollar e implementar anticipadamente respuestas apropiadas a los
problemas que puedan surgir en el proyecto.
9. PROYECCION DEL RIESGO
El análisis y la gestión del riesgo son una serie de pasos que ayudan al equipo del
software a comprender y a gestionar la incertidumbre.
Por tal razón es importante:
Los pasos que se deben seguir son:
La estimación del riesgo mide el riesgo de dos maneras:
La probabilidad de que el riesgo sea real
Las consecuencias de los problemas asociados con el riesgo, si ocurriera
Se realizan cuatro actividades de proyección del riesgo:
10. ELECCIÓN DE ESTRATEGIAS PARA MANEJAR EL RIESGO
Cuando se trata de manejar el riesgo en el ámbito del software, existen varias
estrategias específicas que puedes considerar:
1. Pruebas exhaustivas: Realizar pruebas exhaustivas de tu software puede
ayudar a identificar y mitigar errores y fallos antes de que lleguen a los usuarios
finales. Esto incluye pruebas de unidad, pruebas de integración, pruebas de
sistema y pruebas de aceptación del usuario.
2. Desarrollo iterativo: Utilizar metodologías ágiles como Scrum o Kanban puede
ayudar a identificar y abordar los riesgos de manera temprana y continua a lo
largo del ciclo de desarrollo del software. Al dividir el proyecto en iteraciones
más cortas, se pueden identificar y abordar los problemas rápidamente.
3. Control de versiones y seguimiento de cambios: Implementar un sistema de
control de versiones como Git y un proceso robusto de seguimiento de cambios
puede ayudar a gestionar el riesgo asociado con los cambios en el código. Esto
permite revertir cambios problemáticos y rastrear quién hizo qué y cuándo.
4. Seguridad en el desarrollo: Integrar la seguridad en el proceso de desarrollo
desde el principio puede ayudar a mitigar los riesgos de seguridad del software,
como vulnerabilidades y brechas de datos. Esto implica realizar análisis
estáticos y dinámicos de seguridad, así como pruebas de penetración.
5. Documentación y capacitación: Proporcionar documentación detallada y
capacitación adecuada a los desarrolladores y usuarios finales puede ayudar a
reducir los riesgos asociados con malentendidos, errores de configuración y uso
incorrecto del software.
6. Respuesta a incidentes: Desarrollar un plan de respuesta a incidentes para
estar preparado en caso de que ocurra un problema de seguridad o un fallo
importante en el software. Esto implica establecer procedimientos claros para
detectar, contener, mitigar y recuperarse de incidentes.
Al implementar estas estrategias en el desarrollo y mantenimiento de software, puedes
reducir significativamente los riesgos asociados y mejorar la calidad y seguridad del
producto final.
11. APICACIONES DE INTERES
1. Productividad y Organización:
Microsoft Office 365: Ideal para crear documentos, hojas de cálculo,
presentaciones y correos electrónicos. Ofrece herramientas como Word,
Excel, PowerPoint, Outlook, OneDrive y Teams, facilitando la
colaboración en línea y la gestión de proyectos.
Google Workspace (anteriormente G Suite): Ofrece aplicaciones como
Gmail, Google Drive, Docs, Sheets y Slides, junto con otras herramientas
de colaboración como Calendar y Meet. Es especialmente útil para la
colaboración en tiempo real y el trabajo en equipo en línea.
2. Desarrollo de Software:
GitHub: Es una plataforma de desarrollo colaborativo de software
basada en Git. Permite a los desarrolladores alojar y revisar el código,
gestionar proyectos y colaborar con otros miembros del equipo de
desarrollo.
Visual Studio Code: Un editor de código fuente ligero pero potente, que
ofrece soporte para una amplia gama de lenguajes de programación.
Viene con características útiles como resaltado de sintaxis, finalización
de código y depuración integrada.
Jira: Es una herramienta de gestión de proyectos y seguimiento de
problemas ampliamente utilizada en entornos ágiles de desarrollo de
software. Permite a los equipos planificar, rastrear y lanzar software de
alta calidad.
Slack: Una plataforma de comunicación en equipo que ofrece
mensajería instantánea, llamadas de voz y video, así como integraciones
con otras herramientas de desarrollo. Facilita la colaboración y la
coordinación entre los miembros del equipo.
3. Diseño y Creatividad:
Adobe Creative Cloud: Ofrece una amplia gama de aplicaciones de
diseño gráfico, edición de fotos, diseño web y creación de video,
incluyendo Photoshop, Illustrator, InDesign y Premiere Pro. Esencial para
profesionales creativos.
Sketch: Una herramienta de diseño vectorial popular entre los
diseñadores de interfaz de usuario y experiencia de usuario (UI/UX).
Permite crear prototipos de diseño y colaborar en proyectos de diseño
de manera eficiente.
Canva: Una plataforma de diseño gráfico en línea que proporciona
plantillas y herramientas fáciles de usar para crear gráficos,
presentaciones, publicaciones en redes sociales y otros materiales
visuales de forma rápida y profesional.
4. Gestión de Proyectos y Colaboración:
Asana: Una herramienta de gestión de proyectos y tareas que ayuda a
los equipos a organizar, dar seguimiento y coordinar su trabajo de
manera efectiva.
Basecamp: Una plataforma de gestión de proyectos todo en uno que
ofrece herramientas para la comunicación, la colaboración y la
organización de tareas. Es especialmente útil para equipos remotos y
distribuidos.
[Link]: Una herramienta visual de gestión de proyectos que
permite a los equipos crear tableros personalizados para organizar y dar
seguimiento al trabajo en equipo de manera intuitiva y colaborativa.