• Aucun résultat trouvé

Une pluralité des cultures du paysage pour aborder la problématique paysagère

2. Des démarches différentes de prise en compte du paysage

2.1. Des participations à l’élaboration de politique ou projet divers

Devido à grande demanda por uma variedade de aplicativos para DMs como celula- res, smartphones e tablets e os benefícios econômicos associados à essa demanda, um número crescente de empresas, instituições e pesquisadores demonstram cada vez mais interesse em como organizar o desenvolvimento de forma a entregar soluções mais rápidas, melhores e com menor custo e uma das respostas é a adoção de metodologias ágeis.

Conforme mencionado no Capítulo 2, as metodologias ágeis são amplamente acei- tas e utilizadas no desenvolvimento de software para DMs por se ajustarem às rápidas mudanças de requisitos e ambiente, bem como por atenderem bem às demandas de prazo desse nicho de mercado (IHME; ABRAHAMSSON, 2004). Além disso, o uso dessas metodologias contribui na melhoria da produtividade da equipe e da qualidade do produto (LAYMAN et al., 2004)(ILI- EVA et al., 2004).

Shen et al. (SHEN et al., 2012) apresentam uma revisão sistemática sobre o uso de métodos ágeis no desenvolvimento de software para DMs e sinalizam que metodologias como o XP (WELLS, 2009), Scrum (SCHWABER, 2007a), Feature Driven Development (FDD), Adaptive Software Development (ASD), Rational Unified Process (RUP) (JACOBSON et al., 1999) e Crystal (COCKBURN, 2004) são utilizadas sozinhas ou de forma híbrida (combinadas) nesse desenvolvimento e estão, nessa ordem, entre as que possuem mais trabalhos relacionados ao tema na literatura.

Entre essas metodologias ágeis, as mais aceitas e utilizadas são o Scrum e XP, embora não tenham sido especificamente propostas com foco nesse desenvolvimento. O Scrum proporciona uma abordagem ágil voltada à gestão de projetos aumentando a probabilidade de sucesso desses projetos, enquanto o XP é utilizado mais no desenvolvimento de software propriamente dito com práticas como o Test Driven Development (TDD) (BECK, 2002) e a Programação em Pares (BECK; ANDRES, 2004), que estão diretamente relacionadas à forma como o software é desenvolvido (SALO; ABRAHAMSSON, 2008).

Nas próximas seções são apresentadas as abordagens propostas especificamente para o desenvolvimento de software para DMs.

3.1.1 Mobile-D

Abrahamsson et al. (ABRAHAMSSON et al., 2004) propõem o Mobile-D como uma abordagem ágil para o desenvolvimento de software para DMs. O Mobile-D é baseado nas práticas de desenvolvimento do XP, no método de escalabilidade das metodologias Crystal e no ciclo de vida do RUP. O XP é uma metodologia de desenvolvimento ágil de software, com entregas frequentes em pequenos ciclos de desenvolvimento, cujo objetivo é melhorar a qualidade do software e a capacidade de resposta à evolução das necessidades do cliente. As metodologias Crystal são técnicas e métodos para a gestão de pessoas, que podem ser selecionados e adaptados de acordo com a criticidade do projeto e tamanho da equipe de desenvolvimento. Já o RUP é um processo de desenvolvimento de software que define práticas a serem seguidas pela equipe, customizadas de acordo com o cenário do projeto, e que objetivam aumentar a produtividade dessa equipe no processo de desenvolvimento.

O Mobile-D divide o desenvolvimento de um projeto em cinco iterações (veja a Figura 3.2): Setup, Core, Core2, Estabilizar e Empacotar. Em cada uma dessas iterações são executados diferentes dias de desenvolvimento (tipos de eventos): Dia de Planejamento, Desenvolvimento, Lançamento ou Disponibilização e Dia de Integração, esse último só se faz necessário em caso de múltiplos times trabalhando no mesmo projeto. Nessas iterações, podem ser utilizadas as seguintes práticas: Phasing e Pacing, Architecture Line, TDD, Integração Contínua, Programação em Pares, Métricas, Melhoria do Processo Ágil, Off-Site Customer e Foco Centrado no Usuário.

Figura 3.2: Iterações do Mobile-D

O Mobile-D foi empiricamente testado no desenvolvimento de extensões de siste- mas de banco de dados para DMs, utilizado com times de até dez desenvolvedores, trabalhando juntos em um mesmo local geográfico, com o objetivo de desenvolver aplicações completas em menos de dez semanas. De acordo com os autores, foram observados os seguintes pontos positivos: melhoria da visibilidade do progresso do projeto, identificação precoce e resolução de problemas técnicos, responsabilidade compartilhada, partilha eficiente de informações, alta coerência entre a prática e o processo, baixa densidade de defeitos nos produtos lançados e ritmo constante de desenvolvimento.

Parte das práticas utilizadas no Mobile-D são advindas do XP, por exemplo, o TDD, Integração Contínua e a Programação em Pares. Por conseguinte, parte dos benefícios dessa

metodologia são resultado direto do uso dessas práticas do XP. Além disso, há indícios da utilização de métricas para o monitoramento de como a metodologia está sendo utilizada e de seus resultados durante a execução das iterações e entre as práticas definidas pelo Mobile-D há uma para a avaliação e melhoria do processo ágil utilizado.

Entretanto, segundo Rahimian et al. (RAHIMIAN; RAMSIN, 2008), embora o Mobile-Dpareça promissor, a sua documentação está superficial e incompleta. Considerando o cenário desta dissertação, isso compromete o seu reuso sistemático para o desenvolvimento de softwarepara DMs.

3.1.2 Hybrid Method Engineering

Rahimian e Ramsin (RAHIMIAN; RAMSIN, 2008) propõem a Hybrid Method Engineering (HME), uma abordagem ágil criada a partir da Methodology Engineering (ME) (BRINKKEMPER, 1996) e Hybrid Methodology Design (HMD) (RASMIN, 2006). A ME é a disciplina da engenharia responsável por todas as atividades relacionadas ao projeto, construção e adaptação de métodos, técnicas e ferramentas para o desenvolvimento de sistemas de informação e pode ser utilizada na elaboração de novas metodologias para diferentes cenários de desenvolvimento. Já o HMD é uma metodologia que utiliza conhecimentos e requisitos chaves de outras metodologias, padrões de processo e metamodelos para a elaboração de novas metodologias.

Além da apresentação da nova metodologia, a HME, uma das principais contribui- ções de Rahimian e Ramsin (2008) está na identificação de características de uma metodologia ideal para o desenvolvimento de software para DMs. Essas características são apresentadas a seguir:

• Agilidade - os métodos ágeis melhoram a flexibilidade e a produtividade do desenvol- vimento para DMs por prover os meios para lidar adequadamente com as mudanças de requisitos e ambiente, além de fomentar o aprendizado a partir do processo de desenvolvimento iterativo e incremental;

• Consciência do mercado: o processo de desenvolvimento para DMs deve ser orientado ao desenvolvimento do produto, ao invés de ser orientado ao desenvolvimento do projeto;

• Suporte à Linha de Produto de Software (LPS) - as empresas tendem a desenvolver uma família de produtos reutilizáveis na tentativa de reduzir os custos de desenvolvimento;

• Desenvolvimento de arquitetura base - o sucesso de uma LPS depende de uma plataforma comum, que necessita de uma arquitetura base bem definida;

• Suporte ao reuso - o suporte ao desenvolvimento baseado em componentes e camadas é essencial em uma metodologia de desenvolvimento para DMs; e

• Especificação da arquitetura física desde as fases iniciais do desenvolvimento - as restrições de hardware dos DMs devem ser consideradas desde os estágios iniciais do projeto de software.

As características supracitadas foram utilizadas como requisitos na concepção da metodologia alvo, a HME, a qual foi elaborada em iterações e cuja versão final é apresentada na Figura 3.3. Essa concepção é utilizada para a realização de uma análise preliminar, que inclui também a análise de negócio do produto, etapas que são realizadas na iniciação do projeto. Em seguida, é realizada uma análise detalhada e protótipos funcionais podem ser criados para facilitar o entendimento dos requisitos iniciais do produto. Após a conclusão desse entendimento, o projeto arquitetônico pode ser elaborado e o planejamento dos ciclos do projeto que serão executados para o desenvolvimento dos componentes pode então ser iniciado. Nessa fase, começa a execução do Motor do Desenvolvimento, que consiste no projeto, análise e desenvolvimento concorrente de componentes, na revisão da qualidade desse desenvolvimento e demais artefatos gerados, bem como na validação do incremento do produto a partir de testes de marketing. Ao final do processo, a biblioteca de componentes é atualizada e o produto entra na fase de comercialização.

Figura 3.3: Hybrid Method Engineering, Fonte: (RAHIMIAN; RAMSIN, 2008)

Embora o Mobile-D tenha sido criticado pelos autores, o HME não resolveu os problemas apontados naquela abordagem, como a documentação superficial e incompleta. O trabalho de Rahimian e Ramsin (2008) focou mais no processo de concepção da metodologia, apresentando a evolução dessa concepção e o uso de métodos do ME e HMD, do que propria- mente na metodologia HME em si. Dessa forma, poucas são as informações apresentadas nesse trabalho sobre o HME, bem como a respeito de sua utilização em projetos reais. O cenário das aplicações para DMs em que foi utilizada, o tamanho dos times de desenvolvimento, vantagens e desvantagens, por exemplo, não foram sequer mencionados, o que dificulta o entendimento completo da metodologia e, em consequência, o seu reuso.

3.1.3 MASAM

Jeong et al. (JEONG et al., 2008) propõem outra abordagem ágil chamada MASAM, baseada em arquiteturas e componentes reutilizáveis e com foco no desenvolvimento de apli- cativos móveis. O MASAM propõe um ciclo de desenvolvimento com quatro diferentes fases: Preparação, Personalização, Desenvolvimento e Comercialização. Essas fases, suas atividades e tarefas são apresentadas na Tabela 3.1.

Tabela 3.1: Fases do Ciclo de Desenvolvimento do MASAM, Fonte: (JEONG et al., 2008)

Fase Atividade Tarefas

Preparação

Compreensão do produto Sumário do produto e pré-planejamento Compartilhamento do conceito do produto Definição do usuário e análise inicial do

produto

Setupdo projeto Setup do processos de desenvolvimento e dos recursos do projeto, realização de es- tudo inicial

Personalização

Entendimento das necessidades do usuário Story card workshop e design da interface de usuário

Definição e elaboração da arquitetura Análise dos requisitos não funcionais, de- finição da arquitetura e identificação dos padrões de software a serem utilizados

Desenvolvimento

Preparação e Implementação Setup do ambiente de desenvolvimento e planejamento do desenvolvimento

Ciclos de lançamentos Planejamento dos lançamentos, dos ciclos ou iterações e a realização propriamente dita desses lançamentos

Comercialização

Testes do sistema Testes de aceitação e testes pelo usuário Comercialização do produto Testes de lançamento e lançamento do pro-

duto

O processo definido pelo MASAM se inicia com a fase de preparação, a partir da atividade de entendimento do produto (compreensão do produto, veja a Tabela 3.1). Nessa atividade, uma lista dos requisitos do produto é especificada e, com base nesse entendimento inicial, é elaborado um pré-planejamento do projeto. Em seguida, o conceito do produto é compartilhado com os envolvidos para uma análise mais detalhada do mesmo e, em seguida, é realizada a definição dos usuários. Essa fase de preparação termina com o setup do projeto, que abrange o setup dos processos de desenvolvimento e o planejamento dos recursos necessários para a execução do mesmo. A fase seguinte consiste na personalização e compreende as atividades de entendimento das necessidades do usuário, por exemplo a partir de workshops de requisitos e elaboração de protótipos da interface do sistema, e da especificação de uma arquitetura inicial. De posse dos requisitos do produto e dessa arquitetura inicial, a fase de desenvolvimento começa com a preparação do ambiente de desenvolvimento e o planejamento dos ciclos de execução desse desenvolvimento. Esse planejamento guia as iterações e contém os marcos de lançamentos dos incrementos do produto. Após a execução do desenvolvimento, a fase final do MASAM consiste na realização dos testes de aceitação e do usuário, dos testes de lançamento e do lançamento propriamente dito do produto para a comercialização do mesmo.

O MASAM é recomendado para pequenas empresas com foco no desenvolvimento de aplicativos para DMs. Entretanto, esse trabalho de Jeong et al. (2008) não apresenta nenhum estudo de caso onde a implementação dessa metodologia tenha sido utilizada. Além disso, o baixo nível de detalhamento do MASAM compromete a análise da sua aplicabilidade e, por conseguinte, o seu reuso.