01 dezembro 2008
Documentações na medida certa.
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é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.