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:
- Na parte superior devem haver 6 barras distribuidas horizontalmente com as seguintes funções:
- Money: dinheiro acumulado pela empresaaté o momento
- Reputation: reputação acumolada pela empresa nos projetos que concluiu
- Done: quantidade de projetos concluidos
- Doing: quantidade de projetos em execução
- Available: quantidade de projetos os quais a empresa pode iniciar
- Blocked: quantidade de projetos os quais a empresa não pode iniciar
- A empresa deve começar com uma quantia suficiente para custear um funcionário ao longo de um projeto
- Os pontos de reputação são calculados de acordo com a conclusão de um projeto
- A reputação é a soma dos pontos de reputação adquiridos em cada projeto
- 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
- Cada projeto, antes de ser iniciado, deverá ter os seguintes atributos:
- Budget: quantidade máxima, em dinheiro, que a empresa poderá ganhar ao concluir o projeto
- Developers: quantidade mínima requerida de desenvolvedores para execução do projeto
- Features: quantidade de funcionalidades naquele projeto
- Difficolty: dificuldade daquele projeto
- Due Date: dias limite para a entrega do projeto
- Reputation: reputação mínimia requerida para execução do projeto
- A quantidade de dinheiro ganha em um projeto depende da quantidade de funcionalidades entregues
- Um projeto pode abrigar mais desenvolvedores do que o mínimo necessário
- A dificuldade do projeto representará a quantidade de reputação ganha pela empresa ao concluir aquele projeto
- Cada projeto, depois de ser iniciado, deverá ter os seguintes atributos:
- Members: funcionários presentes naquele projeto
- Reward: dinheiro ganho no projeto até o momento
- Features: barra contendo a quantidade de funcionalidades entregues até o momento
- Reputation: pontos de reputação que o projeto irá render se concluido naquele momento
- Time Left: dias restantes para a data limite de entrega do projeto
- Bugs: barra contendo a quantidade de bugs presentes no projeto
- Uma vez atribuido a um projeto, um funcionário não poderá ser remanejado entre projetos, devendo concluir o projeto atual
- Assim que uma funcionalidade é concluida, o seu valor em dinheiro é creditado na conta da empresa
- 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
- O tempo restante deve ser contado a partir do início do projeto
- No canto esquerdo, deve aparecer a equipe de funcionários da empresa:
- Cada funcionário possui os seguintes atributos:
- 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
- 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)
- Habilidade: destreza que o funcionário possui para escrever um código. Maior habilidade, menos bugs serão inseridos dentro de uma tarefa
- Produtividade: capacidade produtiva para finalização de tarefas. A produtividade deve ser atenuada pelo foco do funcionário
- Os funcionários devem possuir cores diferentes para identificar aqueles que estão disponíveis daqueles que estão alocados em um projeto
- Quando clicado sobre um funcionário, algumas informações deverão aparecer:
- Atributos descritos no item 15.1.4
- O projeto em que está alocado, se estiver
- A opção "fire" para dispensar aquele funcionário da empresa
- Ao concluir um projeto, todos os funcionários alocados devem ser dinamicamente alterados para refletir que estão disponíveis
- Cada funcionário possui os seguintes atributos:
- No centro da tela, devem aparecer os projetos:
- Os projetos devem possuir cores diferentes para identificar aqueles que estão conluidos, em execução, disponíveis e indisponíveis
- Quando houver um clique simples em um projeto, as suas informações deverão ser exibidas de acordo com seu estado:
- Projetos conluidos: devem aparecer as informações finais do projeto
- Projetos em execução: devem aparecer as informações de acordo com o item 10
- Projetos disponíveis: devem aparecer as informações de acordo com o item 6
- Projetos indisponíveis: devem aparecer as informações de acordo com o item 6
- Ao concluir um projeto, a cor do projeto deve ser alterada dinamicamente refletindo que este mudou de estado
- 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
- Quando houver um clique duplo em um projeto, deve ser redirecionado para a tela do projeto
- No canto direito, devem aparecer os candidatos disponíveis para contratação
- Ao clicar sob um candidato, as seguintes informações devem ser exibidas:
- Atributos como custo inicial, custo por hora, habilidade e produtividade
- A opção "hire" para contratar aquele candidato
- 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
- 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
- A coloração dos candidatos deve ser dinâmica de acordo com o valor em caixa da empresa
- Ao clicar sob um candidato, as seguintes informações devem ser exibidas:
- Na parte inferior da tela, teremos as informações como data e hora
- Cada minuto representa um segundo do tempo real
Project Name
Para a tela de Project Name, temos os seguintes requisitos:
- No canto superior esquerdo deve aparecer o campo Money conforme descrito no item 1.1 dos requisitos do Projects Dashboard
- No canto esquerdo, deve aparecer e equipe alocada para este projeto:
- Os funcionários devem estar coloridos de acordo com a tarefa que estão desempenhando (doing, inspecting, testing ou idle)
- Funcionários que estiverem envolvidos com algum compromisso (reunião ou treinamento) devem desaparecer desta lista e reaparecer assim que o compromisso for finalizado
- 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
- Funcionários ociosos (idle) não recebem remuneração (o restante recebe, mesmo que em reunião ou treinamento)
- No canto superior direito, teremos um botão para retornar à tela de Projects Dashboards
- No canto direito teremos duas listas:
- Lista para os funcionários em reunião:
- Funcionários em reunião aumentam o foco, contribuindo para o foco da equipe
- Maior foco, maior é a produtividade do funcionário
- 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
- Lista para os funcionários em treinamento:
- Funcionários em treinamento aumentam a sua habilidade, diminuindo a inserção de bugs
- Lista para os funcionários em reunião:
- Na parte central da tela, teremos:
- Indicadores do projeto e da equipe:
- 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
- Time Spent: representa a quantidade de dias corridos desde o início do projeto (dias corridos/dias total do projeto)
- Bugs: representa a quantidade média de bugs nas tarefas
- Focus: representa a quantidade média de foco que a equipe possui
- Os estágios de produção de software serão dividios em três:
- Elaboração:
- Todas as tarefas do projeto devem aparecer inicialmnete em "To Do"
- Uma vez atribuido um funcionário para realizar uma tarefa, esta deve ir para "Doing"
- Quando a tarefa for concluida, ela deve ir para "Done"
- 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
- Inspeção:
- O jogador deve selecionar quais tarefas ele deseja inspecionar, transferindo as tarefas que estiverem em "Done" e colocá-las em "To Inspect"
- Quando uma tarefa estiver sendo inspecionada, ela deve aprecer em "Inspecting"
- Assim que uma tarefa for inspecionada, ela deve automaticamente ir para o campo "Inspected"
- 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
- Inspeção são capazes por retirar 50% dos bugs presente naquela tarefa
- Testes:
- 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"
- Quando uma tarefa estiver sendo testada, ela devem aparecer em "Testing"
- Assim que a tarefa for testada, ela deve automaticamente ir para o campo "Tested"
- 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
- Testes são capazes por retirar 50% dos bugs presente naquela tarefa
- Elaboração:
- Cada estágio conterá tarefas. Cada tarefa terá os seguintes atributos:
- Size: tamanho da tarefa
- 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
- Difficulty: dificuldade daquela tarefa e contribui com o aparecimento de bugs
- Bugs: bugs taquela tarefa. Este campo começa em 0% e varia até 100%
- Status: deve mostrar se a tarefa foi "Done", "Inspected" ou "Tested"
- Indicadores do projeto e da equipe:
- Na parte inferior da tela deve aparecer os logs do projeto como por exemplo:
- Funcionário F foi alocado para a tarefa T
- Funcionário F transferiu a tarefa T do estado E1 para o estado E2
- Funcionário F está ocioso
- Funcionário F1, F2, F3 estão em reunião
- Além dos logs do projeto selecionado, devem aparecer logs dos outros projetos que estiverem em execução
- 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