segunda-feira, 28 de fevereiro de 2011

[ATPS] ATPS - Etapa 1


ATPS de Engenharia de Software

Etapa I

Introdução

Tentamos agendar duas reuniões com o cliente CLIVET, para discutirmos as características do projeto, como necessidades e tempo de entrega do mesmo, porém, como o mesmo estava muito ocupado, ambas reuniões não puderam ser realizadas.
Devido a tal fato, e a nossa vontade e competência em entregar um produto que agregue mais valor aos serviços da CLIVET e, à maior ou total satisfação de nosso cliente, resolvemos trabalhar com algum método/metodologia que nos permita entregar: ou protótipos ou fazer com quem nosso software seja facilmente modificado.
Mediante à impossibilidade de entrevistarmos nosso cliente, perguntando ao mesmo sobre as características desejadas do software, complexidade, integração com qual tipo de banco de dados (se necessário), tamanho da base de dados do mesmo, necessidade (ou não) de ser acessado via web, ser expansível para possíveis filiais, vontade do mesmo em ter um software que possa ser atualizado facilmente, etc, resolvemos seguir nossa intuição, e trabalharmos com algum método que nos permita entregar um protótipo ou então, que possa ser facilmente modificado (não temos um escopo inicial por parte de nosso cliente).


Desenvolvimento

Diagramamos duas tabelas, para a apresentação ao nosso cliente; mesmo ele não podendo comparecer às reuniões e discutir sobre tais metodologias, nós resolvemos escolher entre as 3 metodologias inicialmente propostas, a que julgamos ser melhor pelo comportamento de nosso cliente, e pelo que julgamos que o cliente quer / espera do software.

Tabela I

Clássico (cascata)
Prototipação
Metodologia Ágil / Scrum
Exige extensa documentação:
P
P
PP*
Software é facilmente modificado / expansível:
PP
P
P
Gerar um protótipo / beta:
NP
P
P
Exige excelentes/experientes programadores:
NA**
NA**
P
Cálculo do fator risco:
NP
NP
P
Fácil cálculo do tempo de entrega do software
PP
NA
P
Onde: P = possui; PP = possui parcialmente; NA = não se aplica ;NP = não possui.
* = se o cliente desejar, é feito; porém não é uma característica da metodologia
** = a menos que a empresa já conte com excelentes programadores; em teoria, não é necessário.
Vamos, agora, apresentar uma tabela comparativa entre as três metodologias:

Tabela II

Vantagens
Desvantagens
Clássico (cascata)
*É antigo;
*É muito utilizado;
*Minimiza o tempo de planejamento;
*Funciona bem com equipes tecnicamente mais fracas;
*É linear.
*Perde-se muito tempo com documentações, nem sempre necessárias;
*Projetos chegam a levar muitos meses para serem concluídos;
*Cliente só vê o programa em funcionamento ao final de todo o processo;
*Não necessita de uma equipe bem integrada, o que pode gerar falhas ou incapacidade do programa ser atualizado;
*Não tem análise de risco.
Prototipação
*Trabalha com um protótipo do software;
*Cliente recebe uma versão protótipo do mesmo, para utilização e testes;
*Pode ser utilizado quando a comunicação com o cliente não é completa;
*Facilmente atualizável;
*Bom para softwares com mudanças de requisitos constantes.
*Cliente pode se contentar com o protótipo, e esquecer a versão final;
*Impossível determinar com exatidão o tempo que o processo vai durar;
*Não há formas de saber o número de iterações necessárias;
*Mutias vezes, o protótipo acaba atrapalhando o desenvolvimento da versão final;
*Não há análise de risco..
Ágil / Scrum
*É ágil;
*Utiliza análise de risco;
*Focado na negociação interna e com clientes;
*Agrega muito valor ao produto e ao cliente;
*Geralmente, traz alto grau de satisfação do cliente com o produto;
*Time pequeno.
*Necessita de um time bem entrosado;
*Necessita de bons programadores;
*Ambiente que facilite a fácil comunicação entre os membros;
*Quebra de paradigmas é complicado;
*Difícil de gerenciar projetos que precisam de muitas pessoas.


Conclusão

Resolvemos optar, mesmo não sendo excelentes programadores, pelo método Scrum, pois temos uma boa comunicação, um time pequeno, e visamos a total satisfação de nosso cliente, em um curto período de tempo, visando, também, um software que possa ser facilmente atualizável, e, sem uma extensa documentação.

Um comentário:

  1. Alunos:
    Samir Piccolotto
    Nathalia Elias
    Cesar Campos
    Gustavo Chinaglia
    Jean Solcia

    ResponderExcluir