Capítulo 1 - Introdução 14

Documentos relacionados
3 Qualidade de Software

Processos de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

APLICACAÇÃO DE METRICAS E INDICADORES NO MODELO DE REFERENCIA CMMI-Dev NIVEL 2

Processos Técnicos - Aulas 4 e 5

ENGENHARIA DE SOFTWARE I

GARANTIA DA QUALIDADE DE SOFTWARE

Gestão de Relacionamento com o Cliente CRM

Desenvolvimento de um software de gerenciamento de projetos para utilização na Web

PROFESSOR: CRISTIANO MARIOTTI

AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE. Prof. Msc. Hélio Esperidião

7 Mudanças Realizadas

ANÁLISE COMPARATIVA ENTRE OS MODELOS DE PROCESSO: PROTOTIPAÇÃO, PSP E SCRUM

PLANO DE GERANCIAMENTO DO RELEASE Release:

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS

INTRODUÇÃO A PORTAIS CORPORATIVOS

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Engenharia de Software

Capítulo X. Gerenciar Mudanças dos Requisitos. Aluizio Saiter, M. Sc.

MUDANÇAS NA ISO 9001: A VERSÃO 2015

Gerenciamento de Problemas

Anexo I Formulário para Proposta

SISTEMA DE EMISSÃO DE CERTIFICADO ONLINE

Universidade Federal de Goiás UFG Campus Catalão CAC Departamento de Engenharia de Produção. Sistemas ERP. PCP 3 - Professor Muris Lage Junior

SISTEMÁTICA WEBMARKETING

6 Quarta parte logística - Quarterização

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Infraestrutura: devo usar a nuvem? Prof. Artur Clayton Jovanelli

6 Infraestrutura de Trabalho

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Mídias sociais como apoio aos negócios B2C

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE CONFIGURAÇÃO

Documento de Arquitetura

Aumente sua velocidade e flexibilidade com a implantação da nuvem gerenciada de software da SAP

Artur Petean Bove Júnior Tecnologia SJC

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Feature-Driven Development

Oficina de Gestão de Portifólio

W Projeto. Gerenciamento. Construindo a WBS e gerando o Cronograma. Autor: Antonio Augusto Camargos, PMP 1/12

PLANEJAMENTO E PROJETOS. Lílian Simão Oliveira

O processo de melhoria de processo

Governança de TI. ITIL v.2&3. parte 1

Gestão do Conhecimento A Chave para o Sucesso Empresarial. José Renato Sátiro Santiago Jr.

SETIS- III Seminário de Tecnologia Inovação e Sustentabilidade 4 e 5 de novembro de 2014.

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

Atividade: COBIT : Entendendo seus principais fundamentos

Channel. Visão Geral e Navegação. Tutorial. Atualizado com a versão 3.9

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis. Profª Esp.: Maysa de Moura Gonzaga

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com

MANIFESTO ÁGIL. Esses conceitos aproximam-se melhor com a forma que pequenas e médias organizações trabalham e respondem à mudanças.

Mídias sociais como apoio aos negócios B2B

Universidade Paulista

ANEXO X DIAGNÓSTICO GERAL

1. APRESENTAÇÃO Objetivo Geral

Engenharia de Software II

Resumo artigo Agile Modeling- Overview

Modelo de Qualidade CMMI

Projeto 2.47 QUALIDADE DE SOFTWARE WEB

Professor: Curso: Disciplina:

Desenvolvimento Ágil de Software

Sistemas Distribuídos

CENTRAL DE SERVIÇOS APOIADA EM SOFTWARE LIVRE

Web Analytics (Google analytics, Web trafic XITI, Coremetrics, etc.); Ferramentas de gestão de listas de s (Mailchimp, constant contact, etc.

Integração dos Modelos de Gestão de TI

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 06 PROFª BRUNO CALEGARO

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Rotinas de DP- Professor: Robson Soares

Introdução a Computação

ISO/IEC 12207: Gerência de Configuração

O guia completo para uma presença. online IMBATÍVEL!

Registro e Acompanhamento de Chamados

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão Atualização 26/01/2009 Depto de TI - FASUL Página 1

ERP Enterprise Resource Planning

Sequência da Apresentação

Engenharia de Requisitos Estudo de Caso

1. Introdução e Objetivos 2. Fundamentação teórica 3. Desenvolvimento e Especificações do sistema

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

PEN - Processo de Entendimento das Necessidades de Negócio Versão 1.4.0

Figura 1 - Arquitetura multi-camadas do SIE

Manual de Utilização

Introdução à Computação

Faculdade Pitágoras. Engenharia de Software. Prof.: Julio Cesar da Silva.

ENSINO PRESENCIAL COM SUPORTE EAD Processos Gerenciais Mercado financeiro. Débora Augusta de Santana PORTIFÓLIO 2

EVOLUÇÃO DA MANUTENÇÃO

Pós Graduação Engenharia de Software

Engenharia de Software II: Definindo Projeto I. Prof. Msc Ricardo Britto DIE-UFPI

Projeto de Sistemas I

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Transcrição:

1 Introdução Em seu livro Pressman [22] define processo de software como um arcabouço para as tarefas que são necessárias para construir software de alta qualidade. Assim, é-se levado a inferir que o sucesso do software desenvolvido está muito ligado ao seu processo de desenvolvimento. Na Engenharia de Software, há duas abordagens principais de desenvolvimento de software, cada uma com inúmeros exemplos: os modelos de desenvolvimento dirigidos por planos e os métodos ágeis. Modelos de desenvolvimento dirigidos por planos, como o CMMI [14], surgiram com o intuito de diminuir problemas gerados na construção do software, tentando melhorar o processo de desenvolvimento e visando garantir que a qualidade do produto desenvolvido seja satisfatória. Porém, a grande quantidade de trabalho gerado pela documentação (o que aumenta o tempo esperado de entrega, tornando-se algumas vezes inaceitável pelos clientes) começou a gerar descontentamento em relação a estes tipos de processos de desenvolvimento. Em 2001, foi publicado o Manifesto Ágil [9], sugerindo uma maneira diferente de desenvolver software. Neste novo modelo, a extensa documentação observada nos métodos de desenvolvimento dirigidos por plano tornou-se menos importante. Em seu lugar, as equipes de desenvolvimento deveriam construir pequenos incrementos de funcionalidade, que convergissem passo a passo para um produto de software completo e satisfatório para todos os interessados (stakeholders). Desta maneira, os métodos ágeis surgiram com o intuito de focar no produto a ser desenvolvido, garantindo que este será útil, utilizável e de qualidade satisfatória sempre do ponto de vista do usuário. Ou seja, um objetivo secundário dos métodos ágeis era diminuir a grande quantidade de documentação de utilidade questionável que estava sendo gerada anteriormente.

Capítulo 1 - Introdução 14 Nos métodos ágeis, a cada passo é realizado um controle de qualidade extensivo, tanto das características técnicas, quanto das características de utilidade e usabilidade. Ao final de cada passo é planejado o próximo. Isso torna o processo extremamente adaptativo a possíveis evoluções das expectativas dos usuários, como também torna visível o contínuo crescimento de funcionalidade disponível. O inconveniente desta abordagem é a dificuldade de determinar no início do desenvolvimento o custo total dele. Porém, baseando-se em uma observação mensurada de Boehm [1], ao se seguir esta proposta tende-se a um desenvolvimento de custo mínimo (na realidade minimal), uma vez que as equipes estão continuamente mantidas sob pressão e bem focadas no problema a resolver. Boehm e Basili [10] mencionam que em torno de 50% do esforço de desenvolvimento é gasto em retrabalho inútil, sendo que este se deve em sua maioria à correção dos artefatos em grande parte devido a erros nas especificações. No desenvolvimento passo a passo, é de se esperar que este volume de correções diminua. Para alcançar suas metas, os métodos ágeis têm em comum a valorização do desenvolvimento iterativo, realizado por desenvolvedores experientes e com a intensa cooperação dos clientes, sem a definição prévia de um abrangente plano rigoroso a ser seguido durante todo o ciclo de vida do projeto. Deste modo, os métodos ágeis visam garantir que, em um determinado espaço de tempo (30 dias, por exemplo), novas funcionalidades (aquelas com capacidade de formar um pacote entregável ao cliente) serão desenvolvidas. Ou seja, mesmo que o software ainda não esteja completo, isto é, com todos os requisitos implementados, ele terá algumas funcionalidades aquelas consideradas as mais prioritárias pelo usuário que funcionam corretamente e que agregam valor do ponto de vista do usuário. Esta forma de desenvolver software tem recrutado um grande número de adeptos, o que permite a execução destes métodos em diversos cenários. Enquanto que, em um momento inicial, os processos ágeis eram mais utilizados em sistemas de missão não-crítica, atualmente, o seu uso vem se difundindo também entre projetos de softwares cada vez mais complexos e até em projetos de missão crítica. Assim, as limitações dos métodos ágeis começam a aparecer, bem como diversas dúvidas em relação ao seu uso na prática.

Capítulo 1 - Introdução 15 Conseqüentemente, procura-se hoje uma solução de meio termo, em que se adiciona algum grau de formalidade ao processo ágil, assegurando que características não-funcionais de qualidade (ex. testabilidade, evolutibilidade, reuso) sejam alcançadas também [15]. O Scrum [11] um exemplo dos métodos ágeis e objeto de estudo deste trabalho é uma maneira de gerenciar projetos, que divide o processo de desenvolvimento em duas etapas: uma etapa maior (que dura cerca de um mês), conhecida como Sprint, em que é desenvolvida uma série de itens e uma etapa menor, de acompanhamento diário, que faz parte da etapa maior, como pode ser visto na Figura 1. Assim, o processo de desenvolvimento é constantemente inspecionado, permitindo que adaptações necessárias sejam realizadas tão logo sejam observadas e a baixo custo em virtude da redução do retrabalho inútil. Figura 1 Conceitos que integram o Scrum (http://digibit.co.uk/agilescrum.aspx). Motivação Este trabalho tem como objetivo relatar a experiência de implantação de Scrum em uma equipe responsável pelo website de uma organização internacional. A atividade fim desta organização não é o software, entretanto necessita deste, em especial aplicações Web, para alcançar os seus objetivos. O website da organização representa um grande aliado de marketing da mesma, porém somente nestes últimos anos é que se tornou mais evidente a necessidade de um time de desenvolvedores trabalhando na equipe responsável pelo mesmo. Anteriormente, esta equipe era composta somente por editores. Por

Capítulo 1 - Introdução 16 ser uma necessidade recente, a equipe de desenvolvedores e a sua infraestrutura ainda não estavam bem estabelecidas. Decidiu-se, então, utilizar o Scrum como método de gerenciamento de projetos ali desenvolvidos, porém, este por si só não garante a qualidade dos mesmos. É muito importante que, em conjunto com a implantação do Scrum, tenha-se também uma preocupação com a infraestrutura de trabalho e com os métodos de desenvolvimento Web. Antes deste estudo, não havia um processo definido de trabalho na equipe estudada, fato que contribuía para gerar uma alta taxa de ocorrência de problemas de retrabalho e de bugs no website. No ano de 2010 foi divulgado que o website desta organização seria o principal meio de comunicação e marketing da mesma. Portanto, era muito importante que houvesse uma estruturação do departamento responsável por este produto para viabilizar a construção e a melhoria de ferramentas relacionadas à gerência de seu conteúdo. O presente trabalho tem por objetivo, então, relatar a implantação de Scrum e da respectiva infraestrutura de trabalho que permita a obtenção dos benefícios deste, utilizando recursos financeiros limitados, em uma equipe multidisciplinar de uma organização tradicional. Objetivos Com este trabalho, deseja-se aumentar a qualidade do site da organização estudada e das ferramentas de gerenciamento de seu conteúdo, bem como melhorar o gerenciamento dos projetos em desenvolvimento, através da utilização do Scrum e de boas práticas da Engenharia de Software. Porém, para que se possa verificar o impacto das mudanças realizadas no cenário da organização, é necessária a utilização de métricas. Sem a ajuda das métricas, torna-se difícil a comprovação de que um método foi bem sucedido ou não. O primeiro passo para a definição das métricas a serem adotadas é a escolha dos objetivos a serem atingidos. Este trabalho tem três principais objetivos, que são detalhados nos próximos parágrafos. A partir destes objetivos, algumas métricas foram escolhidas para auxiliar na correta análise dos resultados. Estas métricas estão explicitadas no Capítulo 3.

Capítulo 1 - Introdução 17 Uma preocupação constante da gerência é a quantidade de erros que está presente no site da organização. Cada vez que uma página apresenta um erro que não a deixa ser exibida, um email é enviado aos desenvolvedores com os detalhes desse erro. Ou seja, é possível se verificar quais páginas ou módulos possuem mais erros, qual o tipo de erro e qual a causa do mesmo. Muitas vezes, a causa destes erros está relacionada ao processo de atualização do site: o responsável pela atualização não copia todos os arquivos necessários ou duas pessoas alteram simultaneamente um mesmo arquivo, ocasionando perda de trabalho. Com este estudo, a partir da utilização de padrões, frameworks, um controle de versão e testes, deseja-se diminuir a quantidade de erros encontrados. Isto é, a partir da criação da infraestrutura necessária para acompanhar o Scrum, pretende-se diminuir estes problemas. No ano de 2010, o principal meio de comunicação externa da organização passou a ser a Internet, por meio de seu website e das ferramentas de rede social (como Facebook, Twitter, Orkut, Youtube e Fliker). Portanto, uma segunda meta a ser atingida é o aumento da popularidade da organização nestas plataformas. A estratégia a ser adotada para este fim é a propaganda destas ferramentas no próprio site da organização, mostrando atualizações (notícias publicados no Twitter, por exemplo) e eventos correntes (como discussões, entrevistas e seminários no Facebook). Porém, um problema que existe relacionado às propagandas das redes sociais no site é a tarefa de atualização destas informações: é feito manualmente por um editor Web, que necessita alterar dados como foto, título, descrição e link em várias páginas do site. Esta forma de trabalhar, além de estar propensa a erros, não condiz com o espírito das redes sociais que pregam a instantaneidade de informações. Ou seja, a Engenharia de Software deve ser utilizada para facilitar o gerenciamento deste conteúdo, de modo que este possa ser fácil e rapidamente alterado. Por último, também se deseja aumentar a popularidade do site em si. Uma das premissas dos métodos ágeis é a preocupação com o cliente, ou seja, a importância de atender às suas expectativas. Neste contexto, a preocupação com o cliente pode se refletir no aumento da qualidade do site desenvolvido, que por sua vez aumenta a popularidade do mesmo.

Capítulo 1 - Introdução 18 O aumento da popularidade depende também da utilização de algumas técnicas (como aquelas associadas aos motores de busca, para que as páginas sejam encontradas pelo público alvo em serviços de busca, como Google). Porém, o aumento da popularidade também está relacionado à qualidade do produto apresentado, isto é, do site em si e do conteúdo disponibilizado nas ferramentas de rede social. Ferramentas como o Google Analytics (http://www.google. com/analytics/) e Web Trends (http://www.webtrends.com/) são usadas para verificar a popularidade do site em questão. Uma vez que a equipe estudada não seguia qualquer método de gerência de projetos, resolveu-se utilizar o Scrum para organizar os projetos a serem desenvolvidos e até mesmo as atividades de melhoria de infraestrutura que deveriam ser feitas. Portanto, ao final deste trabalho, é possível verificar o impacto da utilização do Scrum pela equipe, as dificuldades e os benefícios encontrados. Organização da Dissertação Este documento está assim dividido: no Capítulo 1, tem-se a introdução, a motivação e a proposta. O Capítulo 2 contém conceitos iniciais de Web 2.0, necessários para o correto entendimento do trabalho uma vez que a equipe estudada é responsável pela website da organização e utiliza bastante os conceitos da Web 2.0 em seu trabalho diário. O Capítulo 3 contém conceitos de qualidade de software, garantia de qualidade e controle de qualidade. Estas informações formam a base do trabalho, uma vez que é importante entender os conceitos relacionados à qualidade de software para identificar o que se espera de um software produzido comercialmente. O Capítulo 4 foca nos processos ágeis, relativamente recentes e ainda desconhecidos por muitos integrantes da comunidade da Engenharia de Software. Nesta seção, é descrito o surgimento de tais processos, sua aplicabilidade, benefícios, desvantagens e alguns exemplos. Entre os exemplos citados, é destacado o Scrum, pois este é o método utilizado na organização objeto deste

Capítulo 1 - Introdução 19 estudo. Também há neste capítulo uma comparação entre os processos ágeis e aqueles dirigidos por planos. No Capítulo 5 são estudadas várias ferramentas propostas pela comunidade de desenvolvedores com o intuito de verificar seus pontos positivos, suas restrições e a maneira com a qual elas interagem entre si. A idéia é utilizar o maior número de ferramentas no processo de desenvolvimento da organização estudada, dentre as aqui especificadas, com o objetivo de facilitar o trabalho diário da equipe. No Capítulo 6 é descrita a configuração inicial do ambiente, explicitando detalhes, como: pessoas envolvidas e suas características, maiores informações em relação ao software desenvolvido e infraestrutura de trabalho. Este capítulo também contém dados do ambiente de desenvolvimento (IDE utilizada, ferramentas e descrição dos computadores). O Capítulo 7 traz as informações relacionadas às mudanças realizadas ao longo deste trabalho, com o objetivo de atingir as metas iniciais estabelecidas. Isto é, neste capítulo são descritas as mudanças de hardware e de software realizadas, bem como as alterações no modo de gerenciamento dos projetos em andamento. O Capítulo 8 contém os dados encontrados no início e no final do processo, comparando os mesmos, a fim de verificar os ganhos obtidos com as alterações propostas. Nele também há uma seção com os pontos positivos, os problemas encontrados durante a realização do estudo e suas respectivas críticas. O Capítulo 9 é a conclusão do trabalho, que apresenta também propostas de trabalhos futuros, seguido pela bibliografia.