8/11/2007

Papéis em um time MSF

Retomando meus estudos das disciplinas dentro do Microsoft Solutions Framework (MSF), vou descrever os papeis dos membros de um time MSF:

  • GERENTE DE PRODUTO e suas responsabilidades são:
    • Garantir a satisfação do Cliente;

    • Advogar em favor do Cliente, defender seus interesses;

    • Conhecer o negócio do Cliente;

    • Ajudar os membros do time, quanto a dúvidas sobre o negócio;

    • Manter a matriz Trade-Off (Funcionalidades x Tempo x Recursos);



  • GERENTE DE PROGRAMA e suas responsabilidades são:
    • Entregar o sistema de acordo com a matriz Trade-Off;

    • Gerenciar o projeto;

    • Facilitar a comunicação entre os membros do time;

    • Recebe de cada membro do time o status do trabalho;

    • Informar cada membro do time sobre o status do projeto;

    • Elaborar e manter a Matriz de Risco;


  • DESENVOLVEDOR e suas responsabilidades são:
    • Construir a especificação da solução;

    • Elaborar o desenho físico do sistema;

    • Descobrir as necessidades tecnológicas da solução;

    • Estimar o tempo e o esforço de cada funcionalidade;

    • Desenvolver e acompanhar o desenvolvimento de cada funcionalidade;

    • Preparar o Setup da solução;


  • GERENTE DE TESTE e suas responsabilidades são:
    • Aprovar sistema para Release (distribuição);

    • Elaborar o plano de testes;

    • Gerenciar a equipe de testes;


  • EXPERIÊNCIA DO USUÁRIO e suas responsabilidades são:
    • Elaborar um plano de treinamento;

    • Elaborar o Manual do Usuário;

    • Elaborar o Help do sistema;

    • Quebrar a resistência do usuário ao novo sistema;


  • GERENTE DE IMPLANTAÇÃO e suas responsabilidades são:
    • Especialista em infra-estrutura;

    • Implantar a solução sem gerar crises (implantação suave);

    • Levantar informações sobre o local de implantação;

    • Levantar informações sobre softwares (SO, BD, etc...);

    • Levantar informações sobre licenças;

    • Montar os ambientes necessários: Teste, Implantação, etc...



Acredito que a visão MSF da distribuição de responsabilidades nos dá uma boa ajuda na hora de distribuir as tarefas em uma equipe. Será de grande valia para minha equipe agora que estamos trabalhando em desenvolver um sistema para o nosso TCC.

Eu sei que este texto está muito superficial mas não é meu objetivo descrever com detalhes o MSF, quero apenas registrar o que aprendi na faculdade agregando as minhas pesquisas pela internet.

Para saber mais sobre MSF eu recomendo que procurem mais informações nos sites da Microsoft, além de diversos artigos, há alguns webcasts fantásticos sobre MSF.

Leia também meu post sobre os princípios da MSF.

IMHO,

Referência:
Microsoft Solutions Framework
MSF for Agile Software Development Process Guidance
MSF for CMMI® Process Improvement
Metodologia Ágil e MSF for Agile Software Development: Semelhanças e diferenças



Esta obra está licenciada sob uma Licença Creative Commons.

Creative Commons License



Interessado em aprender mais sobre o Ubuntu em português?

7/25/2007

Programar é uma arte!

Eu sempre admirei quem dominava a arte de programar, quando pequeno eu tinha um Expert da Gradiente e além dos jogos que eram maravilhosos, eu me dava ao trabalho de digitar TODOS os trabalhos da escola nele. Saber operar um editor de textos aos 10 anos era uma aberração para época, não saber hoje aos 10 anos o que é Orkut, MSN e Google é que é uma aberração.

Nessa época tinha um outro garoto que viu que o meu trabalho havia sido feito em um computador e ele me perguntou:

"Você manja de Basic ou Clipper?"

Nada, essa foi minha resposta por muito tempo, mas porque parece tão difícil aprender a programar?

A resposta veio a 2 anos e meio atrás, programar depende da quantidade de tempo que se dedica a aprender, mas ainda assim eu fico na dúvida porque tem uns cara que parece que nunca viram um computador na frente, de repente o cara olha para você diz:
"Vamos encapsular estes atributos e delegar este método para a nova classe.".

Eu sei que exagerei um pouco aqui, mas o que eu quero mostrar é que programar é fácil para algumas pessoas e mais difícil para outras (nunca impossível), assim como algumas pessoas tocam violão sem nunca ter entrado em um conservatório e outras passam anos estudando música.

Isso acontece porque programar é uma arte.


Arte vem do latim ars, que significa técnica ou habilidade. Qualquer pessoa pode aprender as técnicas usadas para se tocar violão, mas alguns tem uma aptidão natural para a música.

Técnicas, sejam de música, esportes, ou programação podem ser aprendidas por qualquer pessoa alfabetizada, entretanto o grau de domínio de uma determinada técnica está diretamente ligado a volume de tempo dedicado ao treino da técnica.

Este conceito foi exposto pelo Professor Donald E. Knuth no texto Computer Programming as an Art, no texto ele vai fundo e explica porque considera a programação de computadores uma arte. Eu recomendo a todos a leitura deste texto.

Eu aprendi que não tinha aptidão natural para programar mas nestes últimos dois anos aprendi que treinar é essencial para minha formação e como eu disse no meu perfil, quero me tornar um Arquiteto de Software e sei que ainda há muito o que estudar para chegar lá.

Referência:
Computer Programming as an Art [HTML] [PDF]
Wikipédia: Arte
Museu da Computação e Informática - MCI

IMHO,


Esta obra está licenciada sob uma Licença Creative Commons.

Creative Commons License


Interessado em aprender mais sobre o Ubuntu em português?

5/14/2007

Os Princícpios do MSF

Continuando minha série sobre MSF, vou escrever sobre os princípios que norteiam o MSF.

Para conceituar o que é princípio, utilizei o comando define do Google (define:princípio) e analisando as quatro definições, uma frase se destacou:

Proposição segundo a qual tudo quanto podemos observar deve depender.

Como o MSF é 100% focado no trabalho de equipe, cada componente membro da equipe deve ter em mente estes princípios:

  1. Compartilhe a visão do projeto – como o MSF depende totalmente do trabalho de equipe e uma equipe só trabalha como um verdadeiro time se todos os membros compartilham da mesma visão de projeto.

  2. Incentive comunicação entre a equipe – mentenha uma relação honesta e aberta dentro da equipe. O fluxo de informações dever ser livre para reduzir a possibilidade de equívocos e esforço inútil.

  3. Valorize cada membros da equipe - numa equipe eficiente, cada membro se compromete a entregar suas tarefas e confiam que, onde eles dependerem das tarefas de outros membros da equipe, estas também serão entregues.

  4. Estabeleça claramente as responsabilidades - o modelo de equipe do MSF é baseado na premissa de que cada membro sabe seu papel e suas responsabilidades e sabe que seu trabalho tem influência no trabalho dos demais mebros da equipe. Essa interdependência pode levar o projeto para o o total sucesso ou para o total fracasso. Para resolver este dilema, a equipe deve estabelacer uma linha clara de responsabilidades de cada membro, cada papel é responsável para uma parte da qualidade do projeto.

  5. Invista em Qualidade - numa equipe bem sucedida, cada membro deve sentir-se responsável pela a qualidade do produto e não delega-la a um único membro de equipe. Cada membro deve ser o advogado do cliente no desempenho do seu papel.

  6. Seja parceiro do cliente - as decisões do projeto devem ser tomadas de acordo com o negócio do cliente, cada mudança de negócio irá influenciar no projeto e na satisfação do cliente.

  7. Permaneça ágil e espere mudanças – quanto mais uma organização tenta melhorar seu negócio, mais se arriscam em novos territórios. O modelo de equipe de MSF assegura que todos os envolvidos no projeto não se surpreendam e possam se adaptar com agilidade às mudanças.

  8. Agregue valor ao resultado – a cada ciclo a equipe vai entregar resuldados pré-definidos e acordados, isso é muito importante para satisfazer o cliente. Contudo sempre que possível e dentro o escopo do projeto a equipe deve agregar valor ao resultado entregue.

  9. Aprenda com as experiências – nos ciclo ocorrerão problemas que provavelmente se repetirão ou pelo menos algo parecido. Crie um controle alimentando cada ocorrência para que a equipe compartilhe o conhecimento e melhore sua performance continuamente.


Até o próximo post!

Referência:
Microsoft Solutions Framework
Google Help:Cheat Sheet

Interessado em aprender mais sobre o Ubuntu em português?