Mostrando postagens com marcador Metodologia. Mostrar todas as postagens
Mostrando postagens com marcador Metodologia. Mostrar todas as postagens

01 dezembro 2008

Documentações na medida certa.

Atualmente trabalho em uma empresa que usa uma metodologia de gerenciamento de projetos, mas a quantidade de documentação e padronização sao tão grandes que um simples site de intranet sem nenhum tipo de acesso a banco de dados demora uma eternidade para ser finalizador.

Nesses dias peguei um projeto fora da empresa onde eu trabalho, todo mundo sabe o que é "FREELA", então peguei esse projeto, e para meu espanto não existia documentação, sequer um wireframe para discutir e tambem as telas eram passadas atrasadissimas, não usamos nenhum tipo de metodologia.

Graças a alguns coelhos na manga consegui entregar o projeto parcialmente, ainda estou terminando com ele, mas foi um fiasco, e tive fortissimas dores de estomago devido a muitos energeticos.

Lição para que eu levo desse projeto é que devemos ter sim documentações mas não documentações que atrapalham o andamento do projeto.

10 março 2008

Agile software development (Desenvolvimento ágil de software)

Método ágil é um conjunto de metodologias de desenvolvimento de software, é uma estrutura conceitual para reger projetos de engenharia de software em um curto espaço de tempo.

Métodos ágeis enfatizam comunicações em tempo real. A maioria dos componentes de um grupo ágil devem estar agrupados em uma sala. Isto inclui todas as pessoas necessárias para terminar o software. Isto inclui os programadores, clientes que definiram o produto. Nesta sala devem também se encontrar os testadores, projetistas de iteração, redatores técnicos e gerentes.

Métodos ágeis também enfatizam trabalho no software como uma medida primária de progresso. Combinado com a comunicação real time, métodos ágeis produzem pouca documentação em relação a outros métodos, sendo este um de seus pontos negativos.

Os princípios do desenvolvimento ágil valorizam:



  • Garantir a satisfação do consumidor entregando rapidamente e continuamente softwares funcionais;
  • Softwares funcionais são entregues frequentemente (semanas, ao invés de meses);
  • Softwares funcionais são a principal medida de progresso do projeto;
  • Até mesmo mudanças tardias de escopo no projeto são bem-vindas.
  • Cooperação constante entre pessoas que entendem do 'negócio' e desenvolvedores;
  • Projetos surgem através de indivíduos motivados, e que deve existir uma relação de confiança.
  • Design do software deve prezar pela excelência técnica;
  • Simplicidade
  • Rápida adaptação às mudanças
  • indivíduos e iterações ao invés de processos e ferramentas
  • software funcional ao invés de documentação extensa
  • colaboração com clientes ao invés de negociação de contratos
  • responder a mudanças ao invés de seguir um plano

Comparação com a balbúrdia

A balbúrdia, é a ausência de método de definição: os membros da equipe fazem o que eles sentem que é correto. Os desenvolvedores ágeis freqüentemente reavaliam os planos, enfatizam a comunicação face a face e o uso relativamente esparso de documentos levando ocasionalmente as pessoas a confundirem isto com codificação cowboy. Equipes ágeis, contudo, seguem o processo definido (e freqüentemente de forma disciplinada e rigorosa).
Como em todas as metodologias, o conhecimento e a experiência dos usuários definem o grau de sucesso ou fracasso de cada atividade. Os controles mais rígidos e sistematizados aplicados em um processo implicam em altos níveis de responsabilidade para os usuários. A degradação de procedimentos bem-intencionados pode levar as atividades a serem caracterizadas como codificação balbúrdia.

Metodologias

A abordagem Scrum, para gestão de projetos ágeis, leva em consideração planejamento não linear, porém de maneira mais exaustiva e está focada em agregar valor para o cliente e em gerenciar os riscos, fornecendo um ambiente seguro. Pode ser utilizada na gestão do projeto aliada a uma metodologia de desenvolvimento como XP, FDD, OpenUP, DSDM, Crystal ou outras.