Você está na página 1de 5

Os gestores de desenvolvimento de aplicações para internet devem acrescentar valor aos

projetos que administram. Esta pesquisa discute as perguntas fundamentais a serem feitas para
compreender como fazer isso.
Descobertas chave

• Os gestores de desenvolvimento de aplicações para Internet são estimulados a encontrar


maneiras de acrescentar valor corporativo aos projetos que lhe são atribuídos.

• Muitos impulsionadores do valor corporativo do desenvolvimento de aplicações para Internet


podem ser adotados rapidamente.

• A qualidade do software é um esforço de ponta a ponta, e o gestor de desenvolvimento de


aplicações para internet deve ajudar a impulsioná-la.

• O código aberto pode economizar dólares alocados ao desenvolvimento de aplicações para


internet em casos específicos.

Recomendações

• Procure por casos bem sucedidos de experiência de usuário rápida e barata.

• Use os testes unitários para captar precocemente defeitos no ciclo de desenvolvimento.

• Estimule a reutilização de componentes com a arquitetura voltada para a Internet (WOA) e os


mashups.

• Tire proveito das ofertas de código aberto para reduzir custos.

ANÁLISE

O Valor corporativo e o gerente de desenvolvimento de aplicações para internet

Os gestores de desenvolvimento de aplicações para internet têm de completar os projetos de


desenvolvimento para Internet a despeito das restrições criadas pela crise econômica. Para
manter-se atualizado com a tecnologia da Internet, e com seus concorrentes, você deve
incrementar os recursos do seu grupo através de um processo de melhoria contínua. Se puder,
então deve incorporar desafios para a construção de recursos no processo de seleção de todos
os projetos. A realidade da governança do desenvolvimento de aplicações é que a maioria das
empresas possui uma abordagem inconsistentemente definida e fragmentada para a construção e
manutenção de aplicações (veja "Resultados da Avaliação da Maturidade das Aplicações:
Tendências Até Junho de 2008"). Como resultado, você talvez não seja incluído quando os
projetos forem priorizados, mas estará na posição de incrementar o valor corporativo de todos
os projetos que administra. Incorporar os desafios certos em um projeto gera recursos mais
amplos para entregar valor corporativo no futuro, e permite que você busque atingir alguns
dos objetivos de governança do desenvolvimento de aplicações, mesmo em sua ausência.

Suas escolhas serão impulsionadas por três metas básicas:

• As aplicações para Internet customizadas devem se tornar de propriedade menos cara a cada
lançamento.

• Todo projeto deve incrementar as habilidades e permitir trabalho mais produtivo no futuro.
• Todo processo que você usa deve se tornar uma ferramenta mais refinada para entregar valor
corporativo.

Quando você recebe os requisitos do projeto, eles costumam já ter excluído qualquer menção
aos requisitos não-funcionais e às necessidades implícitas, que devem ser desenvolvidos de
forma colaborativa pela equipe de desenvolvimento de aplicações para Internet e os
patrocinadores do projeto (veja "A Primeira Chave para o Sucesso de um Projeto É a Definição
e Gestão dos Requisitos de Colaboração "). Os requisitos não-funcionais incluem atributos
tais como desempenho, disponibilidade e interoperabilidade. Além disso, geralmente as pessoas
não lhe dizem como implementar um projeto, embora seus padrões corporativos de TI possam
requerer que você use um conjunto de ferramentas, plataformas e processos em geral. O típico
gestor de desenvolvimento de aplicações para Internet tem amplo espaço de manobra ao escolher
uma estratégia tática para implementar um projeto.

Escolhendo os Impulsionadores Não-funcionais do Valor Corporativo

O valor corporativo é realizado quando um projeto de desenvolvimento para Internet gera um


retorno sobre os investimentos positivo. Embora as empresas às vezes embarquem em projetos
inteiramente por motivos regulatórios ou de observância, a maioria das empresas opta por
priorizar um projeto antes de outros porque espera-se que gere mais valor corporativo. Quando
o projeto chega à mesa do gestor de desenvolvimento de aplicações para Internet, se torna
parte da tarefa do gestor avaliar os impulsionadores não-funcionais do valor que possam ser
incorporados ao projeto.

Faça as seguintes perguntas ao avaliar um potencial impulsionador por sua probabilidade de


melhorar o valor corporativo:

• Ele incrementa a experiência do usuário?

• Ele melhora a qualidade da aplicação para internet?

• Ele incrementa a capacidade de reutilização dos componentes do software?

• Ele incrementa a produtividade do programador?

• Ele otimiza os custos?

Incrementando a experiência do usuário

A experiência do usuário está associada à usabilidade que descreve o "adequar e acabar" das
aplicações para Internet. Uma melhor experiência do usuário gera maiores receitas com
aplicações externas ou menores custos de uso para aplicações internas (veja "A Usabilidade
Impulsiona a Experiência do Usuário: A Experiência do Usuário Impulsiona o Valor
Corporativo"). Ao realizar testes de usabilidade antes e depois de um projeto ser
implementado, é possível prever o valor corporativo aproximado dos projetos de
desenvolvimento para Internet (veja "Um Processo de Design Impulsionado pelo Valor e Centrado
nos Usuários para Sítios e Aplicações de Internet"). Além dos testes de usabilidade, as
empresas podem incorporar aplicações web (Rich Internet Application, RIA), design voltado
para a acessibilidade e design centrado nos usuários para melhorar a experiência do usuário.

Uma experiência do usuário rica pode ser entregue usando tecnologias RIA tais como Ajax,
Flash e Silverlight (veja "Escopo de Mercado para Tecnologia Ajax e Plataformas RIA "). O
Ajax é singular porque não requer nada mais que um navegador e usa JavaScript, com o qual a
maioria dos desenvolvedores de Internet estão familiarizados. Criar valor corporativo com
Ajax não exige um profundo comprometimento com toda a RIA; pelo contrário, uma abordagem tipo
"Ajax Lite" que abra mão de uns poucos recursos de alto valor do Ajax em uma aplicação pode
ser uma estratégia que cria valor (veja "A Taxonomia de Ajax e RIA Demonstra o Abismo na
Adoção Pelo Mercado"). Acrescentar um simples recurso de auto-completar do Ajax pode fazer
com que uma aplicação pareça mais rápida e mais responsiva, e reduzirá a quantidade de tempo
que um usuário gasta completando uma transação.

Se sua empresa tiver optado por evitar a inclusão seletiva de recursos ricos, então há outras
oportunidades para melhorar a experiência do usuário através do design voltado para a
acessibilidade (veja "P&R sobre Acessibilidade de Sítios de Internet"). Sua estratégia deve
focar a separação entre conteúdo e apresentação, que tem a vantagem adicional da manutenção
simplificada. Faça isso alavancando as Cascading Style Sheets (CSS) para eliminar a inclusão
de estilo na marcação. Usar CSS não custa nada em termos de ferramentas e licenças, mas
oferece vantagens em termos de acessibilidade e por melhorar o desempenho, porque os modernos
navegadores ocultam os arquivos CSS, ao contrário de fazer o download deles, todas as vezes
em que uma página é solicitada por um usuário.

Criar protótipos é uma maneira valiosa de construir e testar um design de interface de


usuário antes de escrever o código. Os métodos tradicionais de criar protótipos envolvem
"configurações preliminares" de HTML apresentadas pela equipe de desenvolvimento aos
proprietários do projeto. Essas telas preliminares podem às vezes levar os usuários a
estabelecer pressupostos sobre o quão facilmente um protótipo pode ser abandonado e
reescrito, ou isso poderá resultar em expectativas errôneas sobre o produto final. Novas
ferramentas para criar protótipos, tais como Microsoft SketchFlow e Balsamiq Mockups, são
úteis para criar rapidamente protótipos de baixa resolução que não sejam confundidos com a
coisa real. Finalmente, criar protótipos no papel é a maneira mais simples e barata de tornar
claro para o usuário final que o protótipo é uma abstração de como poderá ser o produto
final.

Melhorando a qualidade da aplicação para internet

A qualidade da aplicação para Internet ocorre na interseção entre experiência do usuário e


confiabilidade, e é uma medida relativa do número de defeitos presentes em uma aplicação para
Internet. Embora a descoberta de defeitos seja uma função fundamental da garantia de
qualidade, os desenvolvedores de Internet têm uma importante contribuição a fazer ao entregar
um código limpo, porque quanto mais precocemente um defeito for descoberto, menos custará
para repará-lo. A melhor resposta é escrever um código limpo já de início, e essa estratégia
pode ser incorporada ao processo de garantia de qualidade do software com técnicas tais como
o desenvolvimento impulsionado por testes e a programação em pares, que encoraja o meticuloso
exame dos casos de uso e da análise do código ao longo de todo o ciclo de desenvolvimento
(veja "Impulsionando a Qualidade A Montante: Práticas Eficazes de Análise de Códigos ").

Além de captar os defeitos quando ocorrem com adequadas revisões do código do programador, os
testes unitários são um elemento impulsionador para construir softwares de qualidade (veja "
Impulsionando a Qualidade A Montante Usando Testes Unitários"). A disciplina de testes
unitários amadureceu durante a última década, e surgiu um ecossistema de ferramentas e
melhores práticas. Um robusto processo de testes unitários transforma os testes do
programador de uma reflexão tardia ad hoc em parte do design disciplinado de um software.
Suítes de integração contínua podem ser incorporadas ao seu processo de construção para
garantir que cada construção rode todos os testes. Se sua empresa tiver adotado o
desenvolvimento dinâmico de ferramentas para Internet, então o teste unitário se tornará
ainda mais importante, porque erros de sintaxe comumente encontrados durante a compilação não
serão descobertos até o tempo de execução do código dinâmico.

Incrementando a capacidade de reutilização dos componentes do Software

A reutilização eficaz de ativos de software está associada a um menor custo de propriedade.


As técnicas de design orientado para objetos (OOD) encorajam a reutilização em um projeto;
porém, raramente vemos a reorientação em sintonia fina do código fora da aplicação para a
qual foi originalmente escrito. Ao invés disso, a arquitetura orientada para serviços (SOA)
tem se tornado o padrão para se obter a reutilização aproximada do componente (veja
"Projetando a Devida Granularidade do Serviço para a Arquitetura Orientada para Serviços"). A
SOA surgiu pela primeira vez há mais de 10 anos atrás, e desde então tem sido atualizada com
uma estratégia ativada pela Internet para serviços partilhados. A WOA é um tipo de SOA que
permite serviços partilhados através de interfaces genéricas na Internet (veja "Tutorial:
Arquitetura Orientada para a Internet: Colocando a Internet de Volta nos Serviços para
Internet "). A WOA também é uma resposta para o crescente momentum por trás da tecnologia de
mashup para consumidores e empresas (veja "'Mashups e Sua Relevância para a Empresa").

Favorecer uma abordagem de baixo para cima para construir seu WOA (veja "P&R: Uma Verificação
da Sanidade da SOA em Tempos Difíceis"). Você pode construir serviços modulares com base em
cada projeto, o que gerará oportunidades para obter maior eficiência com o passar do tempo e
conforme crescentes números de serviços partilháveis se tornem disponíveis para uso. Os
projetos futuros consumirão esses serviços para prover interoperabilidade entre as aplicações
para Internet, incluindo parceiros somente internos e parceiros corporativos externos, e seus
usuário finais internos terão oportunidades de incorporar esses serviços aos mashups (veja
"Aplicando Serviços de Internet Baseados em WS-* e Padrões de WOA Para os Desafios
Corporativos de Interoperabilidade Applicação-para-Applicação ").

Incrementando a produtividade do programador

Os impulsionadores da produtividade dos desenvolvedores de Internet incluem ferramentas mais


eficazes, linguagens dinâmicas, estruturas de código aberto e processos mais ágeis. Ambientes
de desenvolvimento integrado (IDEs) atualizados melhoram a eficiência de desenvolvedores no
longo prazo juntamente com obstáculos relativamente pequenos de produtividade no curto prazo.
As linguagens dinâmicas de programação oferecem incrementos de produtividade, mas têm um
maior impacto sobre a produtividade no curto prazo do que os IDEs. Estruturas para JavaScript
e outras linguagens podem prover vantagens por fornecer estruturas comprovadas para uso na
implementação de novos projetos (veja "Tutorial para Ajax Com Estruturas de Código Aberto
para JavaScript"). Processos ágeis tais como alinhamento facilitam melhorias de
produtividade, mas requerem uma significativa mudança cultural (veja "Essência da Agilidade:
Alinhamento").

Se seus desenvolvedores estiverem usando IDEs mais antigos, então avalie a possibilidade de
migrar para ferramentas de código aberto mais poderosas e eficazes tais como Eclipse,
NetBeans e Aptana. Eclipse e NetBeans são populares ferramentas de desenvolvimento centradas
em Java, mas também podem ser usadas para construir aplicações para Internet. Eclipse é
poderoso e é compatível com uma rica arquitetura de plug-ins, mas também é mais difícil de
configurar por causa dessa flexibilidade. A NetBeans é menos flexível do que a Eclipse, mas é
compatível com uma ampla variedade de opções prontas para instalar. Finalmente, a Aptana é um
kit de desenvolvimento para Internet rica de código aberto construído sobre a Eclipse, e
oferece amplo suporte para uma ampla variedade de estruturas e linguagens dinâmicas. Ela está
ganhando terreno junto aos desenvolvedores e deverá ter sido baixada mais de quatro milhões
de vezes até o final de 2009.

Como lingua franca dos navegadores de Internet, a JavaScript é a linguagem dinâmica mais
amplamente usada, mas outras linguagens estão ganhando terreno para o rápido desenvolvimento
de aplicações para Internet, e estão sendo apoiadas por bem sucedidas plataformas
corporativas tais como Java (veja "Tutorial para Maior Produtividade usando Linguagens
Dinâmicas Java para Internet "). Essas linguagens estão prontas para serem incorporadas aos
investimentos em tecnologia, e oferecem significativos aumentos de produtividade sobre as
linguagens tradicionais (veja "As Linguagens Dinâmicas de Programação Serão Fundamentais para
o Sucesso de Muitos Esforços de desenvolvimento de aplicações da Próxima Geração"). Além da
curva de aprendizado, a principal consideração ao se adotar linguagens dinâmicas é que elas
não são compiladas até que sejam executadas, aumentando a importância dos testes unitários.

Mashups são aplicações leves e compostas construídas a partir de componentes para Internet
(veja "Um Processo para Vender Mashups Com Sucesso para Lideres Corporativos"). Os protótipos
de mashups corporativos envolvem o consumo dos recursos disponíveis na Internet juntamente
com recursos ativados pelo mashup no firewall corporativo. Para se beneficiar dos mashups, as
empresas devem ser capazes de alavancar componentes reutilizáveis construídos de acordo com
os princípios da WOAs. Um dos melhores cenários para os mashups corporativos são os painéis
de controle que agregam dados de várias fontes em um estilo "portal" (veja "Uma Estrutura
para Padrões Chave de Integração e Tipos de Aplicações para Mashups Corporativos"). Quanto
mais "passíveis de fazer parte de um mashup" forem suas aplicações corporativas, mais
reutilizáveis elas serão.

Otimizando custos

Muitas estratégias de otimização de custos estão fora do escopo de decisões dos gestores de
desenvolvimento de aplicações para Internet. Por exemplo, a terceirização e a realocação de
fornecimentos no exterior poderão gerar valor, mas costumam ser o domínio de níveis
administrativos sênior. Porém, você ainda terá a oportunidades de incorporar aos seus planos
elementos para a otimização de custos através do código aberto, de elementos analíticos de
uso e da reutilização de componentes.

Você poderá economizar dinheiro ao desenvolver aplicações para Internet com blocos
construtores de código aberto, mas atenção — só porque um produto é de código aberto não
significa que gerará valor (veja "Descobertas: Sim, Você Pode Economizar Dinheiro com
Softwares de Código Aberto"). Os melhores candidatas de código aberto para criar sucessos
imediatos no seu grupo de desenvolvimento de aplicações para Internet incluem estruturas e
ferramentas de IDE. Por exemplo, as estruturas de código aberto já suplantaram as ofertas
comerciais como a melhor opção para desenvolver rapidamente recursos ricos com JavaScript no
navegador (veja "Tutorial para Ajax Com Estruturas de Código Aberto para JavaScript"), e os
principais IDEs para desenvolvimento de aplicações para Internet (além das ferramentas da
Microsoft) são de código aberto. Ao avaliar outras ofertas de código aberto, leve em
consideração a comunidade que apóia o produto como um dos diferenciadores mais importantes
(veja "A Comunidade É Fundamental para o Sucesso do Código Aberto ").

A eficiência de custos também significa usar aquilo pelo que você pagou. Os elementos
analíticos de uso podem ajudar a determinar se um projeto caro está efetivamente gerando
valor corporativo. Por exemplo, se um projeto de portal de um milhão de dólares resultar em
uma aplicação funcional usada por 50 usuários, então você poderá questionar com segurança se
vale a pena mantê-lo. Embora você não possa recuperar os custos já realizados, analisar as
estatísticas sobre uso poderá ajudá-lo a tomar melhores decisões sobre a próxima grande
iniciativa. Também, procure obter o que você pagou através da reutilização, para que a WOA e
os mashups se tornem impulsionadores ideais.