Voltar para o projeto RioSIM

Manager Master é um emulador baseado em turnos que permite ao usuário personificar um gerente de projetos de software. Na medida em que o projeto é executado, você deve tomar decisões importantes acerca das atividades e desenvolvedores alocados para realizá-las. A sua missão: concluir o projeto o mais rápido possível utilizando o menor orçamento que você puder.

 

O Projeto

O projeto a ser desenvolvido é um sistema de informação gerencial de controle acadêmico para departamentos de ciência da computação. O departamento tem diferentes áreas de pesquisa, com diversos professores. Estes, oferecem disciplinas, em que alunos podem se matricular. 

O sistema deve controlar as linhas de pesquisa existentes, seus professores associados, as disciplinas que eles oferecem, os alunos existentes e suas matrículas nas turmas das disciplinas oferecidas. Adicionalmente, o sistema deve controlar o acesso de usuários.

O processo de desenvolvimento do projeto se assemelha às suas funcionalidades principais. O projeto é decomposto em diversas atividades. Estas atividades são associadas com etapas do desenvolvimento de software, ou seja, análise de requisitos, projeto arquitetural, projeto detalhado, codificação e testes. Outras atividades, em particular, inspeções, são também consideradas. Elas são opcionais, ou seja, o gerente deve decidir se devem ou não ser executadas no processo.

As atividades  têm relações de dependência: não é possível codificar o que não foi projetado. Em um diagrama do processo, as atividades são representadas por nódulos circulares, enquanto as dependências são apresentadas por meio de linhas conectando os nódulos.

As atividades são  executadas por desenvolvedores. No projeto simulado, diversos desenvolvedores estão disponíveis para participar do projeto. O gerente pode selecionar quantos desenvolvedores desejar para formar sua equipe. Os desenvolvedores têm habilidades e experiências diferentes. A base de dados da organização contém informações sobre a experiência de cada desenvolvedor para cada etapa do desenvolvimento de software. Desenvolvedores experientes têm taxas de produtividade altas e produzem artefatos melhores, porém, o valor de suas horas de trabalho é, geralmente, mais caro.

Em uma situação normal, desenvolvedores trabalham 8 horas diárias. Em tempos difíceis, como projeto com cronograma atrasado, o gerente pode solicitar que os desenvolvedores trabalhem mais horas diárias. Porém lembre da lei de deMarco: quanto pressionados para trabalhar mais horas diárias, desenvolvedores trabalham mais, não melhor. As taxas de geração de erros podem aumentar.

Entretanto, ninguém trabalha em ritmo duro para sempre. Desenvolvedores trabalhando mais do que seu ritmo normal ficam progressivamente exaustos. A exaustão reduz a a vontade do desenvolvedor de fazer hora-extra. Portanto, quando sua exaustão cresce a um nível predefinido, por causa de horas-extras contínuas, o desenvolvedor simplesmente retorna ao seu ritmo normal de trabalho, recusando-se a fazer hora-extra até que tenha descansado suficientemente do período puxado.

 

O Emulador

A figura abaixo apresenta a tela principal do emulador, que é composta por seis seções.

A coluna da esquerda contém a seção de comando. Ela contém botões para ativar os comandos do emulador. Botões coloridos representam comandos disponíveis, enquanto os cinzentos representam comandos que não estão disponíveis no contexto atual. Os comandos deste painel serão detalhados posteriormente. 

A coluna da direita contém a seção da equipe. Pequenas fotografias dos desenvolvedores da equipe são apresentadas nesta coluna, em conjunto com ícones e alertas que indicam suas principais características.

O painel central é a seção do processo. O processo do projeto é apresentado nesta seção. Cada atividade é representada por um círculo com uma porcentagem de execução dentro. A  porcentagem muda de forma a apresentar o estado da execução da atividade, ou seja, o quanto da atividade já foi realizada. A cor da atividade também é modificada segundo a porcentagem.

O painel central na parte inferior da janela contém a seção de mensagens, em que o emulador apresenta informações para o gerente de projetos. Quando necessário, uma barra de rolagem vertical aparece no lado direito do painel, permitindo que o gerente analise as mensagens anteriores.

O pequeno painel no canto inferior direito da janela apresenta a duração e o custo atuais do projeto. A duração é atualizada quando o gerente executa o comando Next Turn. O custo é calculado pela soma da hora de trabalho de cada desenvolvedor alocado na equipe a cada turno.

 

Comandos

O gerente deve tomar decisões. Estas decisões são tomadas por meio de comandos. Existem dois tipos de comandos: explícitos e implícitos. Os explícitos são aplicados ao pressionar botões da coluna da esquerda. Os seguintes comandos estão disponíveis:

  • Define Team permite que o gerente selecione a equipe do projeto a partir dos desenvolvedores disponíveis. Este é o primeiro comando que o gerente executa no emulador para definir sua equipe inicial;
  • Work Hours permite que o gerente solicite a um desenvolvedor trabalhar um número diferente de horas diárias. Este comando está disponível se houver um desenvolvedor selecionado e se ele não estiver descansando de um período de horas-extras excessivo;
  • Task Time permite que o gerente decida o tempo que será investido nas atividades de inspeção. Quanto mais tempo for dedicado para inspeções, maior o número de erros encontrados. Entratanto, tempo pesa no orçamento e erros podem ser difíceis de encontrar.

O único comando implícito disponível é executado via "arrastar e soltar" um desenvolvedor da seção de equipe para uma atividade na seção de processo. Este comando aloca o desenvolvedor à atividade.

 

Desenvolvedores

Antes de iniciar a execução do projeto, o gerente deve selecionar os desenvolvedores que irão compor a equipe do projeto, a partir de desenvolvedores disponíveis. O comando Define Team permite esta selação por meio da seguinte janela de diálogo. 

A janela de diálogo de seleção da equipe apresenta uma lista de desenvolvedores, o custo por hora e a experiência de cada um para as etapas do processo de desenvolvimento de software (análise, projeto, codificação, testes e inspeções).

O gerente pode navegar pela lista de desenvolvedores utilizando o rato ou as teclas de direção do teclado. Para cada desenvolvedor, a janela de diálogo indica se ele ou ela é um membro da equipe do projeto. A mensagem Out of Team é apresentada se o desenvolvedor não está participando da equipe. O gerente pode pressionar a barra de espaço do teclado ou realizar um clique-duplo sobre um desenvolvedor para selecionar ou deselecionar o desenvolvedor na equipe.

Desenvolvedores selecionados aparecem na seção de equipe da janela principal. Eles podem ser selecionados e arrastados para uma das atividades na seção de processo. O desenvolvedor selecionado é exibido com uma  moldura azul na seção de equipe.

Ao realizar um clique-duplo em um desenvolvedor na seção de equipe, o emulador apresenta uma janela de diálogo que contém informações detalhadas sobre o desenvolvedor selecionado. Estas informações incluem o nome, custo por hora, horas de trabalho diárias, nível de exaustão, dias no projeto e experiência para todas as etapas do desenvolvimento de software.

O comando Work Hours, ativado por meio do segundo botão na seção de comandos, torna-se disponível se um desenvolvedor é selecionado. Ele permite ao gerente aumentar ou diminuir o ritmo de trabalho do desenvolvedor, que deve ficar entre 8 e 12 horas diárias. O comando abre uma janela de diálogo na qual o gerente digita ao ritmo de trabalho desejado para o desenvolvedor selecionado.

Se desenvolvedores são solicitados a fazer muitas horas-extras, eles irão aceitar a solicitação até que fiquem exaustos. A exaustão do desenvolvedor é indicada pelo termômetro no canto direito da fotografia do desenvolvedor na seção de equipe. O nível do termômetro sobe refletindo a exaustão do desenvolvedor e também diminiu quando ele está descansando. Pequenos ícones na parte inferior da fotografia indicam que o desenvolvedor está fazendo horas-extras

Inspeções

Inspeções estão disponíveis no processo de desenvolvimento, porém são opcionais. Como padrão, nenhum tempo do projeto é dedicado para inspeções. O gerente pode modificar isto selecionando uma atividade de inspeção e clicando no botão de comando Task Time. Este comando abre uma janela de diálogo que permite ao gerente definir o número de horas dedicados para a atividade de inspeção.

 

Avanço do Tempo

Quando todas as decisões para o próximo dia forem tomadas, o gerente pode avançar o tempo em um dia, ativando o comando Next Turn. Este comando atualiza o custo e o cronograma do projeto.