sábado, 1 de outubro de 2016

Product Backlog

O jogo será composto por basicamente duas telas: tela para seleção de projetos (chamada de Projects Dashboard) e a tela do projeto selecionado (que terá o nome do projeto).

Projects Dashboard

Para a tela de Projects Dashboard, temos os seguintes requisitos:

  1. Na parte superior devem haver 6 barras distribuidas horizontalmente com as seguintes funções:
    1. Money: dinheiro acumulado pela empresaaté o momento
    2. Reputation: reputação acumolada pela empresa nos projetos que concluiu
    3. Done: quantidade de projetos concluidos
    4. Doing: quantidade de projetos em execução
    5. Available: quantidade de projetos os quais a empresa pode iniciar
    6. Blocked: quantidade de projetos os quais a empresa não pode iniciar
  2. A empresa deve começar com uma quantia suficiente para custear um funcionário ao longo de um projeto
  3. Os pontos de reputação são calculados de acordo com a conclusão de um projeto
  4. A reputação é a soma dos pontos de reputação adquiridos em cada projeto
  5. Os projetos nos quais a empresa pode iniciar dependem das restrições de quantidade de membros disponíveis e da reputação da empresa impostas em cada projeto
  6. Cada projeto, antes de ser iniciado, deverá ter os seguintes atributos:
    1. Budget: quantidade máxima, em dinheiro, que a empresa poderá ganhar ao concluir o projeto
    2. Developers: quantidade mínima requerida de desenvolvedores para execução do projeto
    3. Features: quantidade de funcionalidades naquele projeto
    4. Difficolty: dificuldade daquele projeto
    5. Due Date: dias limite para a entrega do projeto
    6. Reputation: reputação mínimia requerida para execução do projeto
  7. A quantidade de dinheiro ganha em um projeto depende da quantidade de funcionalidades entregues
  8. Um projeto pode abrigar mais desenvolvedores do que o mínimo necessário
  9. A dificuldade do projeto representará a quantidade de reputação ganha pela empresa ao concluir aquele projeto
  10. Cada projeto, depois de ser iniciado, deverá ter os seguintes atributos:
    1. Members: funcionários presentes naquele projeto
    2. Reward: dinheiro ganho no projeto até o momento
    3. Features: barra contendo a quantidade de funcionalidades entregues até o momento
    4. Reputation: pontos de reputação que o projeto irá render se concluido naquele momento
    5. Time Left: dias restantes para a data limite de entrega do projeto
    6. Bugs: barra contendo a quantidade de bugs presentes no projeto
  11. Uma vez atribuido a um projeto, um funcionário não poderá ser remanejado entre projetos, devendo concluir o projeto atual
  12. Assim que uma funcionalidade é concluida, o seu valor em dinheiro é creditado na conta da empresa
  13. Os pontos de reputação que o projeto irá render dependem da dificuldade e são ponderados de acordo com a quantidade de funcionalidades concluidas e da quantidade de bugs encontrados no projeto
  14. O tempo restante deve ser contado a partir do início do projeto
  15. No canto esquerdo, deve aparecer a equipe de funcionários da empresa:
    1. Cada funcionário possui os seguintes atributos:
      1. Custo inicial: representa o valor para sua contratação. O objetivo deste campo é evitar a rotatividade da equipe por parte do jogador uma vez que um funcionáro demitido a curto prazo incorre em custos maiores
      2. Custo por hora: representa o valor que deve ser descontado toda vez que o funcionário estiver trabalhando em uma atividade (descrita na seção de Project Name abaixo)
      3. Habilidade: destreza que o funcionário possui para escrever um código. Maior habilidade, menos bugs serão inseridos dentro de uma tarefa
      4. Produtividade: capacidade produtiva para finalização de tarefas. A produtividade deve ser atenuada pelo foco do funcionário
    2. Os funcionários devem possuir cores diferentes para identificar aqueles que estão disponíveis daqueles que estão alocados em um projeto
    3. Quando clicado sobre um funcionário, algumas informações deverão aparecer:
      1. Atributos descritos no item 15.1.4
      2. O projeto em que está alocado, se estiver
      3. A opção "fire" para dispensar aquele funcionário da empresa
    4. Ao concluir um projeto, todos os funcionários alocados devem ser dinamicamente alterados para refletir que estão disponíveis
  16. No centro da tela, devem aparecer os projetos:
    1. Os projetos devem possuir cores diferentes para identificar aqueles que estão conluidos, em execução, disponíveis e indisponíveis
    2. Quando houver um clique simples em um projeto, as suas informações deverão ser exibidas de acordo com seu estado:
      1. Projetos conluidos: devem aparecer as informações finais do projeto
      2. Projetos em execução: devem aparecer as informações de acordo com o item 10
      3. Projetos disponíveis: devem aparecer as informações de acordo com o item 6
      4. Projetos indisponíveis: devem aparecer as informações de acordo com o item 6
    3. Ao concluir um projeto, a cor do projeto deve ser alterada dinamicamente refletindo que este mudou de estado
    4. Ao concluir um projeto, uma tela de pop-up deve ser exibida com as informações do projeto de acordo com o item 16.2.1
  17. Quando houver um clique duplo em um projeto, deve ser redirecionado para a tela do projeto
  18. No canto direito, devem aparecer os candidatos disponíveis para contratação
    1. Ao clicar sob um candidato, as seguintes informações devem ser exibidas:
      1. Atributos como custo inicial, custo por hora, habilidade e produtividade
      2. A opção "hire" para contratar aquele candidato
    2. Os candidatos devem receber um salário inicial para inibir a rotatividade de funcionários, fazendo com que não seja vantajoso contratar e demitir funcionários
    3. Candidatos cujo custo inicial superam o valor que empresa possui em caixa devem possuir cores diferentes para identificar que a sua contratação não é possível
    4. A coloração dos candidatos deve ser dinâmica de acordo com o valor em caixa da empresa
  19. Na parte inferior da tela, teremos as informações como data e hora
    1. Cada minuto representa um segundo do tempo real

Project Name

Para a tela de Project Name, temos os seguintes requisitos:

  1. No canto superior esquerdo deve aparecer o campo Money conforme descrito no item 1.1 dos requisitos do Projects Dashboard
  2. No canto esquerdo, deve aparecer e equipe alocada para este projeto:
    1. Os funcionários devem estar coloridos de acordo com a tarefa que estão desempenhando (doing, inspecting, testing ou idle)
    2. Funcionários que estiverem envolvidos com algum compromisso (reunião ou treinamento) devem desaparecer desta lista e reaparecer assim que o compromisso for finalizado
    3. Quando um funcionário é alocado para alguma tarefa, deve ser calculado automaticamente o gasto com sua remuneração de acordo com o tempo gasto e o valor cobrado
    4. Funcionários ociosos (idle) não recebem remuneração (o restante recebe, mesmo que em reunião ou treinamento)
  3. No canto superior direito, teremos um botão para retornar à tela de Projects Dashboards
  4. No canto direito teremos duas listas:
    1. Lista para os funcionários em reunião:
      1. Funcionários em reunião aumentam o foco, contribuindo para o foco da equipe
      2. Maior foco, maior é a produtividade do funcionário
      3. Produtividade deve ser dada pela produtividade do funcionário multiplicada pelo foco (em percentual), ou seja, se ele estiver focado 50%, então metade de sua produtividade será comprometida
    2. Lista para os funcionários em treinamento:
      1. Funcionários em treinamento aumentam a sua habilidade, diminuindo a inserção de bugs
  5. Na parte central da tela, teremos:
    1. Indicadores do projeto e da equipe:
      1. Progress: representa a quantidade de tarefas realizadas no projeto. Deve ser levado em conta o tamanho, progresso, dificuldade e bugs das tarefas para calcular este campo
      2. Time Spent: representa a quantidade de dias corridos desde o início do projeto (dias corridos/dias total do projeto)
      3. Bugs: representa a quantidade média de bugs nas tarefas
      4. Focus: representa a quantidade média de foco que a equipe possui
    2. Os estágios de produção de software serão dividios em três:
      1. Elaboração:
        1. Todas as tarefas do projeto devem aparecer inicialmnete em "To Do"
        2. Uma vez atribuido um funcionário para realizar uma tarefa, esta deve ir para "Doing"
        3. Quando a tarefa for concluida, ela deve ir para "Done"
        4. O tempo de execução de uma tarefa deve ser calculado levando em conta o tamanho da tarefa, a produtividade e o foco do funcionário que irá realizá-la
      2. Inspeção:
        1. O jogador deve selecionar quais tarefas ele deseja inspecionar, transferindo as tarefas que estiverem em "Done" e colocá-las em "To Inspect"
        2. Quando uma tarefa estiver sendo inspecionada, ela deve aprecer em "Inspecting"
        3. Assim que uma tarefa for inspecionada, ela deve automaticamente ir para o campo "Inspected"
        4. O tempo de inspeção de uma tarefa deve ser calculado de acordo com a metade do valor calculado no item 5.2.1.4, ou seja, a inspeção demora metade do tempo de execução de uma tarefa
        5. Inspeção são capazes por retirar 50% dos bugs presente naquela tarefa
      3. Testes:
        1. O jogador deve selecionar quais tarefas ele deseja testar, transferindo as tarefas que estiverem em "Done" ou em "Inspected" e colocá-las em "To Test"
        2. Quando uma tarefa estiver sendo testada, ela devem aparecer em "Testing"
        3. Assim que a tarefa for testada, ela deve automaticamente ir para o campo "Tested"
        4. O tempo de teste de uma tarefa deve ser calculado de acordo com o valor calculado no item 5.2.1.4, ou seja, o teste demora o mesmo tempo de execução de uma tarefa
        5. Testes são capazes por retirar 50% dos bugs presente naquela tarefa
    3. Cada estágio conterá tarefas. Cada tarefa terá os seguintes atributos:
      1. Size: tamanho da tarefa
      2. Progress: progresso da tarefa. Este campo começa em 0% e varia até 100% de acordo com a produtividade, o foco e o tempo gasto por um funcionário na tarefa
      3. Difficulty: dificuldade daquela tarefa e contribui com o aparecimento de bugs
      4. Bugs: bugs taquela tarefa. Este campo começa em 0% e varia até 100%
      5. Status: deve mostrar se a tarefa foi "Done", "Inspected" ou "Tested"
  6. Na parte inferior da tela deve aparecer os logs do projeto como por exemplo:
    1. Funcionário F foi alocado para a tarefa T
    2. Funcionário F transferiu a tarefa T do estado E1 para o estado E2
    3. Funcionário F está ocioso
    4. Funcionário F1, F2, F3 estão em reunião
    5. Além dos logs do projeto selecionado, devem aparecer logs dos outros projetos que estiverem em execução
  7. Ainda na parte inferior, deve permanecer a barra de tempo conforme descrito no item 19 dos requisitos do Projects Dashboard


As prioridades seguem a ordem desse documento: primeiro, a tela do Projects Dashboard seguida da tela do Project Name. Dentro de cada tela, as prioridades devem seguir a lista de requisitos que a acompanha (1 a 19 para Projects Dashboard e 1 a 7 para Project Name).

Quaisquer dúvidas, estou à disposição.


Vitor Guilherme Ribeiro Lopes
Product Owner

Nenhum comentário:

Postar um comentário