stkener / tareas

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Seguimiento de tareas

Tareas

Antes de empezar: algunos consejos

El enunciado tiene mucha información, van a necesitar leerlo varias veces. La sugerencia es que lo lean entero una vez (para tener una idea general) y luego vuelvan a consultarlo las veces que hagan falta.

Concentrensé en los requerimientos y, excepto que se traben mucho, respeten el orden sugerido. No es necesario que hagan TDD, pero sí sería interesante que vayan creando las distintas clases y métodos a medida que resuelven cada requerimiento y no antes.

En otras palabras: trabajen completando cada requerimiento antes de pasar al siguiente, con los tests que aseguran que funciona incluidos. Si al avanzar en los requerimientos les parece necesario refactorizar, adelante, van a tener los tests que garantizan que no rompieron nada. 😏

Descripción del dominio

Una consultora de software necesita implementar un sistema para hacer el seguimiento del desarrollo de tareas. A estas tareas las clasificaremos en dos tipos distintos: simples y de integración.

Tareas simples

Cada tarea simple tiene una cantidad de horas estimadas para ser terminada, un responsable y algunos empleados asignados. De cada empleado se conoce cuánto cobra por hora trabajada. Las horas necesarias para finalizar una tarea son las horas estimadas que requiere divido la cantidad de empleados que tiene asignados (sin contar al responsable de la misma, que no aporta nada para reducir este número).

El costo de una tarea simple es el costo de la infraestructura necesaria para llevarla a cabo (que se configura para cada tarea) más los salarios que les corresponden a cada uno de los empleados asignados por cada hora que tuvieron que trabajar. Al responsable se le paga la totalidad de las horas estimadas de la tarea.

Esto mismo, en pseudocódigo, sería así:

Costo de Tarea Simple = 
  Sumatoria de (Horas de trabajo de cada empleado * Sueldo por hora de cada empleado)
  + Horas estimadas * Sueldo del responsable 
  + Costo de infraestructura
  
Horas de trabajo de cada empleado = Horas estimadas / Cantidad de empleados

Tareas de integración

Este tipo de tareas consisten en coordinar otras tareas. Las tareas de integración no tienen un costo propio por infraestructura, ni empleados directamente a cargo, aunque sí tienen un responsable.

Las horas necesarias para realizarla se calculan como la suma de lo que tardan sus subtareas, más una hora para reuniones de planificación por cada 8 horas de trabajo. Se considera que su costo es la suma de los costos de sus subtareas más un bonus que se le paga al responsable, equivalente al 3% de esa suma. Para la nómina de empleados, se debe incluir a las nóminas de las subtareas más al responsable de la tarea de integración.

El sistema debe poder soportar que una tarea de integración tenga como subtarea tanto a tareas simples como a tareas de integración.

Requerimientos

Se pide resolver los siguientes requerimientos sin utilizar casteos ni chequeos de tipo (o sea, no vale usar as ni is).

  1. Poder consultar la nómina de empleados de una tarea (una lista), conformada por sus empleados y su responsable.
  2. Saber cuántas horas se necesitan para finalizar una tarea.
  3. Obtener el costo de una tarea.
  4. Incorporar al modelo las tareas de integración.

Créditos

Enunciado original creado por Fernando Dodino y el equipo de Diseño de Sistemas de Información para UTN - FRBA. Transformado a Markdown, reformateado y reorganizado por Federico Aloi para UNaHur.

About


Languages

Language:Kotlin 100.0%