Prévia do material em texto
Gestão de Projetos em Tecnologia da Informação Aula 06 Métodos Ágeis Objetivos Específicos • Desenvolver um projeto utilizando métodos ágeis como referência. Temas Introdução 1 Características gerais dos métodos ágeis 2 Extreme Programming (XP) 3 Teste em XP 4 O projeto exemplo Considerações finais Referências André Luis Fonseca Ricardi Professor Senac São Paulo - Todos os Direitos Reservados Gestão de Projetos em Tecnologia da Informação 2 Introdução Durante algum tempo houve uma disputa entre profissionais que defendiam métodos de desenvolvimento tradicionais, baseados em planejamento consistente e detalhado, e os defensores dos métodos ágeis, que são baseados em entregas rápidas e particionadas do mesmo software. Como os métodos ágeis são uma proposta recente, se comparada aos métodos tradicionais, demorou para alguns profissionais perceberem que estas duas propostas não eram concorrentes, mas sim complementares. Não é possível desenvolver softwares complexos sem um planejamento consistente que, no caso de necessidades mais simples ou que sofrem muitas mudanças nos requisitos, pode acabar por atrapalhar (RICARDI, 2014). Conhecendo os objetivos do projeto e entendendo a que se propõem os métodos, você poderá escolher aquele que está mais adequado para o desenvolvimento de cada projeto específico. Criticar qualquer método é um erro, pois ambos podem ser úteis. Além disso, existem diversas propostas tanto para métodos tradicionais quanto para métodos ágeis. Então a análise precisa ser mais profunda para que se decida pelo mais adequado, para as necessidades da sua área de negócios, e especificamente para cada projeto. Tenha sempre em mente que um projeto é único. Lembre-se: não ligue o piloto automático. Nesta aula iremos tratar de métodos ágeis, que são uma alternativa para quem precisa de resultados consistentes, em um espaço de tempo menor, e que não esteja lidando com projetos complexos. 1 Características gerais dos métodos ágeis Algumas delas já foram citadas na introdução que você acabou de ler. Você também deve ter percebido que o Software Extension tem diversas citações sobre métodos ágeis, e em alguns itens explora o assunto em detalhes. Vamos analisar algumas de suas principais características (PMI, Software Extension, 2013): 1. O ciclo de vida é interativo, ou seja, repetitivo. As fases vão se repetindo por tantas vezes quanto for necessário, entregando versões intermediárias, até que se entregue uma versão completa do software; 2. Existe uma participação constante dos usuários e de partes interessadas chave, que vão detalhando os requisitos que são imediatamente, se aprovados, incorporados e desenvolvidos. Esta participação é essencial para o sucesso do projeto; 3. O rigor quanto à documentação de requisitos e funcionalidades que estão sendo implementadas é menor; Senac São Paulo - Todos os Direitos Reservados Gestão de Projetos em Tecnologia da Informação 3 4. Os profissionais envolvidos têm mais liberdade em desenvolver seu trabalho. Existe uma dependência menor quanto a processos, e maior quanto às pessoas; 5. Mudanças podem ser constantes e são aceitas. Novos requisitos podem surgir e ser implementados nas versões seguintes; e 6. Foco na simplicidade. Para que você entenda o histórico e os conceitos básicos dos métodos ágeis, faça a leitura das páginas 38 a 42 (capítulo 3, Desenvolvimento ágil de software), e 49 a 51 (item 3.4, Gerenciamento ágil de projetos) do livro: “Engenharia de Software”, 9ª edição (SOMERVILLE, 2011), disponível na biblioteca virtual. Neste trecho, o autor apresenta conceitos básicos relacionados aos métodos ágeis. É provável que você esteja empolgado com a leitura dos trechos citados acima. Recomendo que você explore mais o assunto. É provável que os métodos ágeis sejam úteis na maioria dos projetos de desenvolvimento de software que você irá participar, mesmo aqueles que utilizam metodologias tradicionais. Aplique ao desenvolvimento de módulos menores e que não tenham tanta interdependência com os demais. 2 Extreme Programming (XP) Segundo Somerville, é o método ágil mais conhecido e utilizado no desenvolvimento de software. A ideia principal é levar as práticas a níveis “extremos” (SOMERVILLE, 2011). Abaixo estão listadas algumas das principais características: 1. Várias versões podem ser desenvolvidas, integradas e testadas em um curto período de tempo; 2. Requisitos são expressos como cenários (chamados de histórias do usuário); 3. Programadores trabalham em pares e desenvolvem testes para cada tarefa antes de codificar; 4. O cliente/ usuário é engajado de forma contínua com a equipe de desenvolvimento. Ele passa a fazer parte da equipe de desenvolvimento. Senac São Paulo - Todos os Direitos Reservados Gestão de Projetos em Tecnologia da Informação 4 Na Figura 1 a seguir está representado o ciclo de um release em Extreme Programming. Figura 1 – Ciclo de um release em XP Fonte: Somerville (2011). 3 Teste em XP Uma das propostas mais interessantes do XP é a definição dos testes antes de codificar os programas; isso é chamado de test-first. O software vai sendo testado durante a codificação, pois já se sabe o que será testado. Este procedimento apresenta um ganho significativo no tempo de desenvolvimento dos programas (SOMERVILLE, 2011). Como as tarefas a serem codificadas são baseadas nos cartões de histórias, que foram definidos juntos aos usuários. São realizados testes de aceitação com a participação do usuário, que já valida se os testes estão adequados, e eventualmente pode adaptá-los em tempo real. A dificuldade permanece em engajar e conseguir a disponibilidade do cliente. Utilizar métodos ágeis não garante que o cliente terá disponibilidade no momento necessário. Podem ainda ser utilizados testes automatizados, através de ferramentas preparadas para tal. Certamente sem engajar os diversos interessados você não conseguirá ter sucesso na gestão de seus projetos. Senac São Paulo - Todos os Direitos Reservados Gestão de Projetos em Tecnologia da Informação 5 4 O projeto exemplo Vamos utilizar como referência um projeto de desenvolvimento de um aplicativo para controlar uma dieta pessoal. Seu objetivo é atingir o Índice de Massa Corpórea (IMC) ideal para seu sexo, idade e altura. Consulte na Internet e verifique com seus familiares e amigos o que eles gostariam de ter em um aplicativo para tal. Utilize métodos ágeis para definir uma solução, através da construção dos cenários (histórias dos usuários, que citamos anteriormente). Faça o planejamento, confira quais são as etapas do XP, e mãos à obra. Construa a sua definição, e se você conhece alguma linguagem de programação, tente construir, definindo antes os testes, e seguindo os passos propostos pelo XP. Quando terminar o seu projeto individual, troque ideias com seus colegas. Considerações finais Acompanhando projetos de TI por tantos anos tenho a seguinte opinião: tem muita gente utilizando métodos ágeis quando não deveria, e vice-versa. Como usuários que somos dos softwares que utilizamos em nosso dia a dia, e sendo mais críticos do que usuários comuns (aqueles que não são técnicos de TI), percebemos que existem softwares que não atendem a requisitos mínimos de qualidade: páginas mal desenhadas, funcionalidades que dificultam o uso do software, bugs acima do tolerável, entre outros. Não se pode confundir agilidade de desenvolvimento com leviandade. Ser ágil não significa ser displicente e faltar com o profissionalismo que se espera no desenvolvimento de projetos de TI, seja lá qual for a plataforma. Para alguns, construir softwares pode ser divertido e motivante, mas não pode ser encarado como uma brincadeira. Mesmo no desenvolvimento de games precisa existir organização e planejamento, por menor que seja. A inovação não necessariamente implica em entregar sempre antes da concorrência, pois se você entregar algo com baixa qualidade, perderá mercado da mesmaforma. Ainda, o desafio de engajar os clientes e usuários finais continua. Talvez este seja o maior desafio no desenvolvimento de projetos, sejam eles de TI ou não. Todos devem ser responsáveis pelo sucesso do projeto, e cada um deve fazer a sua parte. Dependendo do projeto, os métodos ágeis podem ajudá-lo a engajar todos, pois os resultados aparecem mais rapidamente, e esta situação pode se transformar em fator motivador para todos. Referências COHN, Mike. Desenvolvimento de software com SCRUM: aplicando métodos ágeis com sucesso. BRASIL: Bookman, 2011. SOMERVILLE, Ian. Engenharia de software. 9. ed. São Paulo: Pearson Prentice Hall, 2011. Introdução 1 Características gerais dos métodos ágeis 2 Extreme Programming (XP) 3 Teste em XP 4 O projeto exemplo Considerações finais Referências