Plug-ins em navegadores: o fim de uma era

Sem Plug-insRemonta à época do velho navegador internet Netscape a ideia de se definir uma API aberta de plug-ins para integrar tratamento de conteúdos e mecanismos específicos ao navegador, como vídeos, animações, gráficos vetoriais, PDF, aplicações dinâmicas etc., de forma que o os mecanismos nativos do navegador se concentrassem em navegação e exibição de páginas da “World Wide Web”. Isso fazia muito sentido naqueles anos 90.

E até agora, praticamente todos os navegadores populares da atualidade, em sistemas operacionais desktop como Windows, Linux e MacOS, ainda implementavam a arquitetura de plug-ins multi-plataforma denominada Netscape Plugin Application Programming Interface (NPAPI).

Contudo, no longo caminho de mais de 20 anos de evolução desde os idos do Netscape até hoje, e mais intensamente nos últimos anos, a necessidade de plug-ins vem decrescendo. E a tendência iminente é chegar a zero!

Este artigo busca um retrospecto e referências dos principais aspectos, contextos e fatos envolvidos na decadência dos plug-ins de navegadores.

Recursos nativos

Os navegadores e os padrões da web vem evoluindo para incorporar cada vez mais recursos nativos para conteúdo dinâmico, rico e interativo. Citemos alguns marcos importantes:

Ajax e Rich Internet Applications (RIA)

Os padrões de JavaScript, CSS (estilos), DOM (modelo de objetos das páginas web para manipulação programática, especialmente via JavaScript) evoluíram muito para suportar cada vez mais interatividade e experiência rica (RIA) nas páginas web, com destaque par a popularização do Ajax e de frameworks de programação web poderosos como jQuery e AngularJS, só para citar alguns. Veja por exemplo meu artigo Ajax e RIA – Radar do mercado, de mai/2011.

HTML5

O padrão HTML5 (desenvolvimento iniciado em 2007/2008 e recomendação oficial do W3C concluída em 2014-10-28, especificação liderada por Ian Hickson da Google), suportado por todos os principais navegadores da atualidade, incluiu elementos nativos para incorporação de multimídia como vídeo, áudio e legendas, equações matemáticas (MathML), gráficos vetoriais (SVG), canvas gráficos 2D (bitmaps dinâmicos) e 3D (WebGL) etc. diretamente em páginas web. Isso dispensa o uso de plug-ins antigamente utilizados para integrar com visualizadores multimídia do sistema operacional como Apple Quicktime, Windows Media Player ou VNC.

Referências sobre HTML5 e seus recursos nativos:

PDF

Mozilla Firefox, Google Chrome e Microsoft Edge atualmente incluem visualizadores nativos de documentos PDF. Isso dispensa o plug-in integrando o Adobe Acrobat Reader. O Chrome oferece também recurso nativo para Salvar como PDF páginas web, ao invés de imprimir.

A Adobe alega que o Acrobat Reader garante melhor experiência do usuário e garante total compatibilidade com o formato PDF, evitando erros e problemas na utilização de recursos avançados. Vários navegadores, mesmo possuindo visualizador nativo, oferecem alternativa de configurar o Adobe Acrobat Reader para abrir documentos PDF. Veja também Change in support for Acrobat and Reader plug-ins in modern web browsers, na base de conhecimento de Ajuda da Adobe.

Extensões ou complementos nativos do navegador

O modelo de extensões ou complementos específicos para os principais navegadores, disponibilizadas para baixar em repositórios ou “lojas” (Mozilla Add-ons, Google Chrome Web Store etc.), permite incorporar novas funcionalidades e comportamentos específicos aos navegadores como componentes adicionais nativos.

A era dos dispositivos móveis

E veio a era dos dispositivos móveis (smartphones e tablets), memória RAM e telas menores que os desktops, interação fortemente baseada em toque direto na tela, e em sua maioria com sistemas operacionais Google Android ou Apple iOS.

Com as diferenças e limitações de hardware, sistema operacional e software dos dispositivos móveis, em geral os aplicativos para estes dispositivos são mais enxutos e especializados. A consequência é que os navegadores internet para smartphones e celulares em geral não suportam mecanismos de plugin.

Depois da versão 11.1 do Adobe Flash Player em set/2013, a Adobe deixou de publicar Flash Player para browser em dispositivos móveis Android. No iOS, em meio a alegações controversas desde uma declaração Thoughts on Flash de Steve Jobs em abr/2010, o Flash nunca foi suportado nos dispositivos móveis da Apple. No Android, o Flash Player deixou de ser disponibilizado no Google Play Store; em Android 4 e inferior, ele só pode ser instalado manualmente diretamente a partir do repositório arquivado da Adobe.

Referências:

A extinção do NPAPI

Microsoft

O Microsoft Internet Explorer 5.5 SP2, em ago/2001, já havia descontinuado o suporte ao protocolo NPAPI, deixando de suportar os plug-ins no estilo Netscape em favor da integração via tecnologia ActiveX, introduzida desde o Internet Explorer 3, conforme artigo #30341 da base de conhecimento de suporte Microsoft.

O novo navegador Microsoft Edge introduzido no Windows 10, por sua vez, descontinuou também o suporte à tecnologia ActiveX. Veja A break from the past, part 2: Saying goodbye to ActiveX, VBScript, attachEvent…, 2015-05-06, por Microsoft Edge Team, em Windows Blog.

Google

Em setembro de 2013, Justin Schuh, Engenheiro de Segurança e Planejador de Obsolescência de Plug-in da Google, publicou no Chromium Blog que a arquitetura anos-90 do NPAPI se tornara causa frequente de travamentos, falhas, incidentes de segurança e complexidade de código; por causa disso, Chrome iria gradualmente reduzir o suporte a NPAPI a partir do ano seguinte.

Como evidência de que a web estava pronta para essa transição, Schuh apresentou dados baseados nos dados anônimos de uso coletados pelo Chrome indicando que à época apenas seis plug-ins haviam sido usados por mais de 5% dos usuários no mês anterior: Silverlight (15%), Unity (9,1%), Google Earth (9,1%), Java (8,9%), Google Talk (8,7%) e Facebook Video (6%).

Em artigo de atualização de novembro de 2014, com os dados indicando que o uso de NPAPI continua em queda, a Google apresentou a contagem regressiva para o NPAPI, com todos os plugins passando a ser bloqueados por padrão em jan/2015, depois o suporte a NPAPI desabilitado por padrão em abr/2015 (o que efetivamente ocorreu no Chrome 42) e, por fim, o suporte a NPAPI sendo permanentemente removido do Chrome em set/2015 (Chrome versão 45). Assim ocorreu.

Mozilla

Em 8 de outubro de 2015, Benjamin Smedberg, gerente de engenharia de qualidade do Firefox na Mozilla, publicou um anúncio sobre plugins NPAPI no Firefox: a Mozilla pretende remover o suporte a plugins NPAPI no Firefox até o fim de 2016. Apenas o suporte a Adobe Flash deve ser mantido em caráter excepcional. Novas plataformas como o Firefox 64-bits para Windows já nascem sem suporte a plugins.

Similar à Google, Smedberg também justifica que com a evolução dos browsers e da Web, muitos recursos que antes requeriam plugins estão agora disponíveis nativamente. E que com a velha NPAPI, plug-ins são fonte de problemas, travamentos e incidentes de segurança para os usuários.

Firefox começou este processo vários atrás, com o mecanismo de ativação manual de plugins, permitindo que usuários ativem um plugin apenas quando necessário. Smedberg cita que a decisão da Mozilla espelha a de outros navegadores modernos, como Google Chrome e Microsoft Edge, que também removeram suporte a plugins legados.

Os remanescentes e os novos movimentos

Quatro plug-ins para incorporação de aplicações dinâmicas avançadas ainda merecem destaque: O Adobe Flash Player, o Java Plug-in, o Microsoft Silverlight e o Unity 3D. Vamos avaliar a situação e tendência para cada um deles.

Flash

O Adobe Flash é a única tecnologia complementar que ainda persiste, praticamente unânime, largamente utilizada para vídeos em fluxo (streaming), jogos e animações em sites web, com forte intenção de continuidade de suporte pelos principais navegadores.

A Google trabalhou em conjunto com a Adobe para integrar Flash Player built-in no Google Chrome, inclusive com atualizações automáticas, sem a necessidade do usuário baixar manualmente. O Flash Player embutido no Chrome utiliza Pepper Plugin API (PPAPI), um sistema mais novo e seguro de integração de plug-ins desenvolvido pela Google a partir de 2009.

O Internet Explorer 5.5 em diante passou a integrar o Flash Player via ActiveX (a instalação da Adobe fornecia um plug-in ActiveX especialmente para o IE) e, com o dessuporte do ActiveX no novo navegador Microsoft Edge, este passa a integrar o Flash Player nativamente, similar ao Chrome.

No artigo NPAPI Plugins in Firefox, de out/2015, a Mozilla informa que com a descontinuidade do NPAPI em 2016, o suporte a Flash será mantido como uma exceção, sem ainda revelar detalhes técnicos, mas anuncia que Mozilla e Adobe vão colaborar para melhorar a experiência do Flash no Firefox, incluindo estabilidade, desempenho e segurança.

Java

O uso de applets Java integradas ao navegador tem tido um universo mais especializado de aplicações. Tirando proveito do poder e abrangência de aplicações Java capazes de lidar com todo tipo de recurso no computador, no Brasil posso citar pelo menos dois grandes exemplos:

O plug-in Guardião de Segurança antifraudes durante as transações on-line (internet banking), desenvolvido pela GAS Tecnologia e utilizado por Banco do Brasil, Caixa Econômica Federal, Itaú e Santander, recorreu a applet Java para seus propósitos.

No Poder Judiciário, as aplicações web de processo eletrônico, como o Processo Judicial Eletrônico (PJe) instituído nacionalmente pelo Conselho Nacional de Justiça (CNJ), tem usado intensamente applet Java para acessar o certificado digital de pessoa no computador do usuário, para assinar digitalmente documentos eletrônicos e/ou para autenticação segura.

Com o fim do suporte a NPAPI já ocorrido no Chrome 45 (set/2015) e iminente no Firefox (dez/2016), que era o mecanimo de integração do Java plug-in nestes navegadores, a Oracle recomenda, no curto prazo, os usuários migrarem para Internet Explorer (Windows, que integra o Java plug-in via ActiveX) ou Safari (MacOS X, que ainda suporta NPAPI) para acessar aplicações Java através do navegador. E de forma mais definitiva, orienta os desenvolvedores a migrar as applets Java para aplicações Java Web Start, que podem ser disparadas através do navegador via protocolo Java Network Launching Protocol (JNLP), mas executam como aplicações desktop independentes no Rumtime Java SE e não interagem com o navegador depois de iniciadas.

Microsoft Silverlight

O Silverlight é uma tecnologia da Microsoft baseada em .NET Framework, que nasceu em 2007 aparentemente para concorrer com o Flash da Adobe, e que já teve sua descontinuidade anunciada na versão 5 com o fim do suporte pela Microsoft em 2021. Nesse meio tempo, um grande adepto do Silverlight foi o serviço Netflix de filmes e séries pela internet, que tirou proveito do controle de conteúdo protegido por direitos autorais (DRM) do Silverlight para reproduzir os vídeos em desktop Windows e MacOS. O Silverlight plug-in se integra ao navegador via NPAPI ou, no Internet Explorer, ActiveX. Como o Edge não suporta nenhuma das duas tecnologias de plug-in, o Silverlight não é compatível com o novo navegador da Microsoft.

Com a descontinuidade do Silverlight em 2021, a Netflix anunciou desde 2013 que pretende migrar para vídeo HTML5 com Premium Video Extensions nos computadores desktop. Em dispositivos móveis, smart TVs e consoles de jogos, a Netflix já possui seu próprio aplicativo dedicado e não depende de navegador.

Unity 3D

https://blog.mozilla.org/futurereleases/2015/10/08/npapi-plugins-in-firefox/

“As part of our plugin strategy, Mozilla and Unity are proud to jointly announce a close collaboration and an aligned roadmap that will enable Unity-based content to be experienced directly in the browser without plugins. As this technology continues to evolve, Unity has announced an updated roadmap for its Web Player technology.”

Conclusão

Com a popularização de marcos tecnológicos como Ajax, HTML5 e dispositivos móveis, o uso de plug-ins nos navegadores web perdeu fortemente o sentido. Acrescente-se a isso a extinção do suporte à velha arquitetura de plug-ins NPAPI por dois dos navegadores mais utilizados (Chrome e Firefox, além do IE e Edge) até 2016.

Somente o Adobe Flash, por sua grande popularidade em conteúdos web e experiência de usuários, tem sido tratado de forma excepcional pelos fornecedores de navegadores com estratégias para manter sua compatibilidade.

Desenvolvedores de aplicações internet e provedores de conteúdo devem repensar profundamente suas estratégias de integrar conteúdo e aplicações às páginas web mais adequadas aos tempos atuais, deixando para trás a era dos plug-ins.

Transcrição sem referência é plágio

Incrível como as pessoas, ainda mais com as facilidades de pesquisa da internet, copiam textos dos outros sem o menor escrúpulo.

Eu disponibilizo bastante material na internet, na forma de artigos e post de blogs, em meu site e neste blog. Os textos que produzo podem ser reproduzidos livremente, e a única coisa que exijo é que seja citada a fonte. Só isso. A citação do autor e a referência bibliográfica para a publicação original.

E em uma rápida pesquisa feita através da própria internet, é fácil encontrar dezenas de exemplos de plágio, ou seja, de transcrição literal de trechos inteiros de meus artigos sem qualquer citação da fonte.

Por exemplo, sobre meu artigo introdutório “PMBOK e o gerenciamento de projetos“, uma única consulta ao Google me trouxe dezenas de publicações em blogs, sites de empresas e até em artigos acadêmicos, sem nenhuma citação da minha autoria ou da referência ao meu artigo.

Exemplos:

Em meio a tantos plágios, meus parabéns a três que dignamente citaram a fonte:

Em tempo, contatei os sites aqui citados nos exemplos sobre o plágio e a ausência da referência. Vamos ver em alguns dias que retorno obtive.

Tchau McAfee, bem vindo de volta, Kaspersky!

Quem acompanha meu blog em postagens relativas a softwares antivírus e de proteção internet, sabe que desde os idos de 2006 eu passei a ter preferência pessoal pelo Kaspersky Internet Security, pelos seguintes motivos principais:

  • Em meus próprios testes e em testes de sites e revistas especializadas, o Kaspersky sempre apresenta um dos mais altos índices (muitas vezes é o maior) de detecção de malware. E quando se trata de cavalos de tróia específicos de fraudes bancárias brasileiras, Kaspersky mostra larga superioridade na rápida e precisa detecção destes.
  • Desde a versão 5 até hoje, a interface com o usuário ficou muito mais fácil, intuitiva e atrativa.
  • O desempenho, em termos de consumo de CPU e memória, sempre foi para mim suficiente em sua configuração padrão, nunca me incomodou ao ponto de culpá-lo por qualquer lentidão anormal na máquina.
  • Sua atualização de dados há muito tempo é de três em três horas, quando ainda haviam antivírus que só tinham opção de uma atualização diária ou até em intervalos maiores.

Até agora me bastou. Ainda assim, quando comprei um novo computador que veio com o McAfee Internet Security preinstalado, meu espírito nerd me fez experimentar outro antivírus, para efeito de comparação. A interface e os recursos não me pareceram tão fáceis como do Kaspersky, mas talvez eu poderia estar influenciado por anos de costume com o outro. O desempenho também não me incomodava, mas a detecção de novos malwares às vezes falhava (como eu conseguia facilmente comprovar utilizando as comparações pelo VirusTotal.com). Como não sou nenhum usuário leigo, estava aceitável até que a licença acabasse.

Porém, um fato precipitou tudo. Fiquei três dias sem acesso a internet em meu computador de casa. Não era a banda larga nem os equipamentos, pois outro computador navegava normalmente.

A última coisa que aconteceu com meu computador antes da internet “subir no telhado” foi o seguinte: o McAfee Internet Security de repente abriu um tela de erro e solicitou a instalação de um tal de “McAfee Virtual Technician”. Logo depois que a instalação via web desse utilitário tentou baixar algo, o computador parou de acessar a internet.

Poderia ser coincidência. Mas os diagnósticos de rede do Windows solicitavam “liberar o firewall”; os detalhes exibiam instruções para configurar o Firewall do McAfee, mas já estava tudo conforme solicitado. Mesmo desligando o Firewall totalmente pela interface do McAfee, nem um ping para o roteador dava certo.

Então apelei e mandei desintalar o McAfee Internet Security. A desintalação nem tinha completado e minha internet voltou à vida! Bingo!

Logo em seguida, o que fiz? Instalei o Kaspersky Internet Security 2012, para o qual eu já tinha até uma licença multiusuário à espera. Em poucos minutos instalado, o Kaspersky detectou e eliminou um malware de teste que estava arquivado no computador, saneou três cavalos de tróia HTML em mensagens de spam em meu e-mail, e ainda detectou vulnerabilidades em quatro programas desatualizados, que tratei de atualizar para a versão mais nova conforme orientações das respectivas páginas de advisory do securelist.com, para o qual o Kaspersky direcionava em “Exibir descrição” de cada vulnerabilidade.

Por isso, agora, tchau McAfee, bem vindo de volta Kaspersky!

Oracle Java e open source – entrevista com especialista Fernando Galdino

Através de contato com a Assessoria de Imprensa da Oracle Brasil, obtive entrevista exclusiva com Fernando Galdino, especialista em Soluções da Oracle do Brasil, sobre os produtos, estratégias e perspectivas da Oracle relacionados à tecnologia Java e aos principais produtos comerciais e projetos open source de ambiente de desenvolvimento integrado (IDE) e servidores de aplicação Java liderados pela Oracle.

De acordo com a entrevista, a Oracle sinaliza firme intenção em continuar mantendo o investimento e apoio aos projetos de software livre como os IDEs NetBeans e Eclipse e servidor de aplicação Java Glassfish, enquanto avança também com sua linha de produtos e soluções comerciais Java.

Nas estratégias de sinergia entre produtos, a dupla de software livres NetBeans e Glassfish caminha bem alinhada, ambos suportando em primeira mão as mais novas especificações das plataformas Java SE, EE e ME. O Glassfish é, inclusive, a Implementação de Referência (R.I.) da plataforma Java EE.

Já o IDE Oracle JDeveloper está estrategicamente alinhado para suportar e se integrar com produtos e tecnologias comerciais da Oracle e parceiros, em especial a família de produtos Fusion Middleware, o servidor WebLogic, o Oracle Application Development Framework (ADF) e o banco de dados Oracle Database Server.

Mas há estratégias da Oracle para promover alinhamento do suporte de produtos entre as linhas open source e comercial. Assim, a Oracle mantém iniciativas de suporte e integração ao WebLogic no NetBeans e no Eclipse, bem como suporte ao Glassfish no JDeveloper.

Passados mais de dois anos desde que a Oracle comprou a Sun, e com isso incorporou ao seu portfólio de soluções Java os projetos de software livre NetBeans e Glassfish anteriormente liderados pela Sun, as estratégias de continuidade e integração da Oracle vem se tornando mais claras e consistentes e, com isso, diluindo as dúvidas e incertezas da comunidade de desenvolvedores Java.

Veja a íntegra da entrevista concedida por Fernando Galdino a seguir.

1. Quais são as frentes atuais da Oracle sobre integração e aproximação entre o GlassFish e o Oracle WebLogic Server? Permanece a diretriz de ter uma Plataforma de Servidor Comum no GlassFish 4, que compartilhe conceitos e tecnologias com o WebLogic Server? Quais aspectos específicos de integração tem sido foco de atenção da Oracle?

Galdino: O Glassfish tem recebido especial atenção por parte da Oracle e a integração com outros produtos continua cada vez mais forte. Como exemplos, temos o ActiveCache, a integração com Oracle Access Manager, extensão da console de monitoramento e recursos para clusterização e alta disponibilidade.

Em relação aos esforços de integração entre Glassfish e Weblogic encontram-se a uniformização de APIs e de sua implementação; Integração com JRockit (Máquina virtual Java de alto desempenho) e Coherence (grid de dados em memória). Com isso, ambas as ferramentas (Weblogic e Glassfish) tendem a se valer de um mesmo núcleo comum. Com o Glassfish 4 pretende-se compatibilidade com Java EE 7 e melhor suporte a virtualização. Lembrando que o release final da especificação Java EE 7 deve sair em Q3 de 2012, conforme indicado em http://jcp.org/en/jsr/detail?id=342.

2. A IBM encampou o projeto de software livre do servidor de aplicação Apache Geronimo e o oferece como uma espécie de versão gratuita de entrada, Community Edition, para a família de produtos do IBM WebSphere Application Server. Qual a estratégia da Oracle na orientação de seus clientes iniciantes quanto à escolha entre GlassFish ou WebLogic Server?

Galdino: O Glassfish é o melhor servidor de aplicações open source com suporte da Oracle e é também a implementação de referência para Java EE. Possui integração com outros componentes do Oracle Fusion Middleware. Ele pode ser utilizado para aplicações mais leves ou que queiram utilizar as novas versões da especificação, que serão inicialmente disponibilizadas nesta ferramenta antes do Weblogic.

O Weblogic é um produto que oferece uma série de benefícios em termos de gestão, escalabilidade e performance. Ele é também o servidor de aplicações base para o Fusion Middleware e também para os aplicativos Fusion. Além disso, ele também é a base das soluções de hardware e software do Exalogic, que é uma solução da Oracle para atender a infraestrutura de computação em nuvem requerida pelas aplicações atuais.

3. O WebLogic Server 11g (10.3.x) é formalmente compatível com Java EE 5, mas incorpora suporte a algumas APIs da plataforma Java EE 6. Há planos definidos para quando o WebLogic Server deve ser totalmente compatível com Java EE 6, como já é o GlassFish v3?

O suporte a Java EE 6 no Weblogic encontra-se em desenvolvimento.

Em relação ao IDE de Desenvolvimento Java, com a aquisição da Sun, a Oracle também incorporou o projeto de software livre do ambiente integrado de desenvolvimento (IDE) NetBeans, que vem agregar o portfólio de ferramentas de desenvolvimento Java da Oracle, compostas basicamente do Oracle JDeveloper e do Oracle Application Development Framework (ADF).

A Oracle também tem apoiado o projeto de software livre do IDE Eclipse. Enquanto NetBeans e Eclipse têm se popularizado como plataformas abertas e extensíveis de IDE com suporte a Java, C/C++ e outras tecnologias de desenvolvimento de aplicações, o JDeveloper teve origem no motor do JBuilder, fruto de acordo com a antiga Borland e desde então vem sendo desenvolvido pela Oracle, que tem provido suporte e integração a tecnologias e produtos Oracle, como ADF, Oracle Database Server, Oracle WebLogic e Fusion Middleware.

4. Oracle JDeveloper, NetBeans e Eclipse. Quais são as estratégias, visões e planos da Oracle em relação ao suporte a estas três plataformas de desenvolvimento de aplicações?

Galdino: A Oracle continuará investindo no ambiente Eclipse por meio do Oracle Enterprise Pack for Eclipse. Trata-se de uma plataforma de desenvolvimento amplamente utilizada pelos desenvolvedores que, inclusive, teve adicionados recursos como Toplink e ADF. O foco do OEPE está em integrar ferramentas Oracle com o ambiente Eclipse, suportar a plataforma Weblogic e focar em facilidades para o desenvolvimento em ambiente Java Enterprise Edition.

O Netbeans é uma ferramenta estratégica para a incorporação e utilização das mais recentes funcionalidades adicionadas para as plataformas Java SE, EE e ME. A ferramenta continuará a ser desenvolvida e aprimorada e será a primeira a introduzir as mais recentes atualizações para a linguagem Java. É uma plataforma focada na comunidade e podemos dizer que é uma implementação de referência para ferramentas Java.

O JDeveloper é um componente fundamental para todo o conjunto de aplicativos (Oracle ou não) baseado no Fusion Middleware. Interessante que foi relembrado que o JDeveloper foi baseado no JBuilder. Desde 2001, porém, não há mais nenhum código da antiga Borland na ferramenta. E, ao longo do tempo, diversas funcionalidades foram sendo acrescentadas à ferramenta para o desenvolvimento Java. Hoje é uma ferramenta essencial para o desenvolvimento, utilizando-se das ferramentas Fusion Middleware. Isso inclui o desenvolvimento de ponta-a-ponta para projetos Webcenter e SOA e BPM com foco em um ambiente declarativo, visual e de alta produtividade.

5. Como está sendo vista e trabalhada a integração, interoperabilidade e sinergia entre Oracle JDeveloper e NetBeans? Há planos para uma plataforma base comum no futuro?

Galdino: Netbeans é um projeto open source e os planos são de que continue sendo uma ferramenta sendo desenvolvida pela comunidade e que receba as novidades da linguagem o mais rápido possível. O JDeveloper é um ambiente de alta produtividade para o ambiente Fusion Middleware como um todo.

Os principais pontos de sinergia e interoperabilidade residem nos servidores de aplicação Weblogic e Glassfish e na utilização do Coherence. Pontos esses que estão sendo tratados. Por exemplo, fazer com que os deployment descriptors do Weblogic sejam reconhecidos pelo Glassfish e vice-versa. Hoje, os planos são de que cada ferramenta continue caminhando independentemente da outra, porém tendo em mente a interoperabilidade entre componentes do Fusion Middleware.

6. Quais são as iniciativas atuais e planos futuros para maior integração e suporte a tecnologias e produtos Oracle no NetBeans?

Galdino: A próxima versão do NetBeans ainda encontra-se em uma fase de planejamento. Logo, ainda é um tanto incerto falar em torno de iniciativas e planos futuros, já que elas ainda não se materializaram em termos de ações ou projetos. Essas iniciativas serão analisadas com cuidado, sempre tendo em mente a ideia de ter o NetBeans como uma ferramenta com as mais recentes atualizações da linguagem Java e uma plataforma focada na comunidade de desenvolvedores.

7. Recentemente a Oracle lançou o JDeveloper 11g Release 2, com suporte a JavaServer Faces 2.0 (JSF 2), tecnologia para aplicações web integrante da plataforma Java EE 6. Como está caminhando o pleno suporte às APIs do Java EE 6 no JDeveloper?

Galdino: Hoje, a Oracle possui o Glassfish como o servidor de aplicações compatível com a plataforma Java EE 6. Temos também o Weblogic, componente essencial de toda a arquitetura de produtos Oracle para middleware e aplicativos. O Weblogic é compatível com a versão Java EE 5. A compatibilidade com a especificação Java EE 6 está planejada para as próximas versões. E o JDeveloper, como principal IDE para o Oracle Fusion Middleware, precisa estar equacionado em relação a como atender esses dois lados do desenvolvimento. O lançamento do JDeveloper 11gR2 já permite trabalharmos com alguns desses recursos.

8. A Oracle já doou vários produtos e participou de iniciativas relacionadas ao projeto de software livre Eclipse e à Eclipse Foundation. Podemos destacar a doação do TopLink Essentials — versão open source do Oracle TopLink — que se tornou EclipseLink e implementação de referência de Java Persistence API (JPA); a doação do projeto de software livre Hudson Continuous Integration para a Eclipse Foundation; e a proposição em conjunto com a SpringSource do projeto Gemini baseado nos padrões OSGi. O projeto Eclipse porém, envolve a participação de empresas que tem pontos de concorrência no mercado com a Oracle, como IBM, RedHat e VMWare/SpringSource. Qual o posicionamento, visão e planos atuais da Oracle em relação ao projeto Eclipse?

Galdino: A Oracle continuará participando ativamente do projeto Eclipse. Consideramos que esse projeto é bastante importante para toda uma comunidade de desenvolvedores que utiliza o Eclipse como ambiente de desenvolvimento no dia-a-dia. Como comentado anteriormente, ao falarmos sobre as três IDEs de desenvolvimento, o Eclipse recebe uma atenção especial por parte da Oracle. No último release do OEPE – Oracle Enterprise Pack for Eclipse a Oracle – inclusive adicionou uma maior integração com a stack de produtos Fusion Middleware. Como exemplos, nós temos os recursos para facilitar a criação de scripts WLST utilizados pelo Weblogic e o suporte ao Coherence, um grid de dados em memória para melhorar a utilização de memória, bem como auxiliar na escalabilidade dos aplicativos.

A própria doação do Hudson para a Fundação Eclipse, como colocada na pergunta, já demonstra todo um compromisso que a Oracle possui com esse projeto e que continuará tendo com o lançamento de novos recursos nas próximas versões.


Agradeço à Clezia Gomes, Relações Públicas responsável pelo contato com a Assessoria de Imprensa da Oracle Brasil, que intermediou essa entrevista, e ao Fernando Galdino (@LinkedIn, @SlideShare), especialista da Oracle Brasil que concedeu a entrevista.

Anatomia de uma fraude: CitiBank

Dia 24, recebi mais uma fraude tipo phishing scam (pesacaria de otários), dessa vez fingindo ser do banco CitiBank. Vamos à análise e comentários das características de mais essa fraude.

A isca: o e-mail fraudulento

Como toda fraude, a isca básica é enviar uma mensagem fraudulenta de spam (envio em massa) para uma lista não autorizada de milhões de e-mails, com um tema de mentira chamativo, que possa ser inadvertidamente tomado como legítimo e verdadeiro por uma parcela de destinatários incautos.

O princípio de proliferação dessa isca é simples: tentativa em larga escala. Ao enviar uma fraude para, digamos, um milhão de endereços de e-mail, se apenas 0,1% destas mensagens chegarem a alguém desavisado e inocente que acredite na fraude, o fraudador já conseguirá pescar 1.000 (1 mil) otários!

— PERGUNTA: Onde o fraudador consegue essa lista de e-mails? — RESPOSTA: Na internet ou até mesmo em um camelô. Pessoas mal intencionadas podem construir mecanismos de busca especializados em varrer a internet em busca de endereços de e-mail válidos. Essas buscas podem até ter inteligência de categorizar cada e-mail encontrado por temas (através de expressões ou palavras chave existentes no local onde o endereço de e-mail foi encontrado), país ou idioma (do site ou serviço), e até buscar também o nome do indivíduo associado ao endereço de e-mail.

— PERGUNTA: Como posso me proteger, impedindo meu endereço de e-mail ser roubado? — RESPOSTA: Impedir completamente é difícil, mas alguns cuidados básicos podem reduzir imensamente as chances de seu e-mail ser obtido indevidamente. Cito dois:

  1. Antes de fornecer seu e-mail (e nome!) em sites e serviços interativos na internet, como fóruns, blogs, redes sociais, comércio eletrônico etc., procure se informar sobre a idoneidade, seriedade, segurança e proteção de privacidade deste. É um local confiável? O endereço de e-mail seu (ou de qualquer participante/usuário do serviço) fica visível publicamente ou para pessoas desconhecidas? A política de privacidade do serviço garante que seu e-mail não pode ser fornecido a terceiros? Ao se cadastrar, você concordou com a divulgação de seu e-mail a “parceiros” ou qualquer outro terceiro?
  2. Evite reenviar mensagens de e-mail a diversos contatos seus, e se o fizer, coloque o nome dos diversos destinatários no campo cópia-carbono-oculta (CCO ou BCC). Ao reenviar mensagens a outras pessoas, procure apagar do cabeçalho e texto da mensagem original transcrita endereços de e-mail de terceiros. Assim você zela em não revelar indevidamente e-mail dos outros. Oriente seus amigos igualmente a zelar pela privacidade dos outros, pois um dos “outros” pode ser você.

O tema, neste caso, foi o de “Informações financeiras e cadastrais”, um dos seis temas comuns que cito em meu artigo Phishing Scam – A fraude inunda o correio eletrônico.

A fraude finge ser uma “solicitação de atualização de segurança do banco CitiBank Online”. Veja uma imagem reproduzindo a aparência da mensagem fraudulenta:

[photopress:fraude_citibank_spam.png,full,centered]

Agora vamos avaliar os cinco Indícios de phishing scam que também cito no meu referido artigo:

Apresentação descuidada: NÃO. Essa fraude tem uma aparência visual verossímil e um texto sem erros grosseiros de português. Esse indício a fraude evitou.

Link destino não confiável: SIM, mas pode gerar dúvida. Há um link clicável no e-mail, prática que praticamente todos os bancos estão evitando, aponta para um endereço sem segurança (é http comum, e não https, o HTTP-Seguro) e o nome do domínio citibank.acessocliente.com não é no Brasil (não é .com.br, mas sim .com internacional) nem é, como se deveria esperar, o domínio principal do banco no país, como www.citibank.com.br. Contudo, a fraude ainda conseguiu usar um um domínio com um nome genérico que pode parecer com algo bancário — “acesso cliente” — e ainda precedido por um subdomínio com o nome do banco. Ou seja, nesse quesito a fraude pode gerar suspeita, mas também não é tão grosseira.

Informação improvável: SIM. Os mais inocentes e desavisados podem achar que um banco oferecer atualização de segurança por e-mail seja plausível, mas nenhum banco faz isso porque é algo muito inseguro e tema recorrente de fraudes. E se você tem dúvida, ligue para o banco antes de clicar em qualquer coisa.

Impessoalidade: SIM. O seu nome real aparece no cabeçalho ou no texto da mensagem? Não. Então provavelmente quem fraudou não sabia o seu nome, como o banco (se você for cliente) deveria saber. Como boa prática, mensagens desse tipo deveriam ser enviadas de forma personalizada, citando o seu nome completo. Infelizmente, essa boa prática nem sempre é seguida nas mensagens legítimas, e também as listas de spam mais “sofisticadas”, como já mencionei, podem obter e utilizar também o seu nome real, junto com seu endereço de e-mail. Veja meu artigo Cuidado – A fraude evoluiu.

Remetente suspeito: NÃO. Esse é o erro mais fácil de um fraudador evitar, porque o endereço do remetente, infelizmente, pode ser facilmente forjado.

Ou seja, vários indícios de fraude, mesmo que alguns deles sutis.

O golpe

Espero que, com tantos avisos, orientações e exemplos que posto, você meu leitor nunca seja um desses inocentes e desavisados incautos que clicam em um link duvidoso em uma mensagem de e-mail. Nunca clique!

Para analisar também o ataque, investiguei também o que havia no link destino, em um ambiente controlado e com cuidado e cautela extremos. Não faça isso em casa, nem muito menos no trabalho nem lugar nenhum.

O link leva diretamente ao download de um arquivo executável chamado Cadastro_CitiBank.exe para sistema operacional Windows. Trata-se de um programa espião roubador de senhas bancárias. Se executado, o programa silenciosamente se instala para ficar em execução contínua e reativado automaticamente toda vez que o sistema operacional for iniciado. Fica monitorando permanentemente o uso do computador e, se você digitar dados bancários, ele os captura e tenta enviar ao fraudador via internet.

Utilizando o serviço VirusTotal.com, enviei o arquivo para análise pelos 43 mecanismos antivírus disponíveis no serviço. No dia do envio, nenhum antivírus em VirusTotal detectou o executável como malicioso. Pelo menos três dias depois da fraude ativa, apenas o antivírus Kaspersky 9.0.0.837 (com atualização de 2011.07.26) passou a detectar como o malware Trojan-Banker.Win32.Banker.skab. E decorrido mais um dia, ainda eram apenas seis os antivírus que detectavam o perigo: AntiVir (TR/Banker.Banker.skab), Antiy-AVL (Trojan/Win32.Banker), eTrust-Vet (Win32/Banker.GPF), Kaspersky, TrendMicro-HouseCall (TROJ_BANKER.FGR) e ViRobot (Trojan.Win32.Banker.1064448.A).

O que quero mostrar com isso é que a proteção dos antivírus nem sempre é efetiva e imediata na detecção de novos códigos maliciosos, pois a notificação/descoberta e análise toma algum tempo. Dessa forma, os usuários ficam ainda mais vulneráveis nos primeiros dias de existência de toda nova fraude, pois provavelmente as ferramentas de antivírus/proteção ainda não a reconhecem e, portanto, não nos protegem de imediato.

É importante lembrar que os antivírus basicamente trabalham com o princípio de um “policial com uma lista de procurados e suspeitos”. Quando surge um novo “criminoso” (código malicioso), se ele não tiver um padrão previamente identificado como suspeito, precisará ser “denunciado” (detectado e analisado) pela empresa de antivírus até que entre na “lista de procurados”.

É uma guerra de “polícia e ladrão” onde as únicas armas realmente efetivas para todos sempre são a atenção, o cuidado e a precaução. Fique alerta, cuide-se! Evite as fraudes.

Assim como no trânsito existe a máxima de “Na dúvida, não ultrapasse.“, na internet você pode seguir a precaução “Na dúvida, não clique.

Autenticação multifator

A autenticação multifator é algo que tem se popularizado rapidamente nos sistemas de internet banking (transações bancárias pela internet) e outras aplicações de identidade digital no Brasil e no mundo.

Espero que com esse artigo você tenha uma visão prática e abrangente dos fatores de autenticação, um aspecto da segurança que a maioria das pessoas utiliza de alguma forma em seu dia a dia.

Vamos começar definindo autenticação e seus fatores.

Autenticação

Autenticação, no âmbito da segurança digital, é o procedimento que confirma a legitimidade do usuário que realiza a requisição de um serviço, para o controle de acesso identificado. Este procedimento é baseado na apresentação de uma identidade junto com uma ou mais credenciais de confirmação e verificação.

Na definição objetiva de Wel. R. Braga, o processo de autenticar usuários consiste em determinar se um usuário é quem ele afirma ser.

A identidade ou identificador do usuário pode ser um nome criado especificamente para determinado ambiente, serviço ou aplicação, que se costuma denominar login ou logname. O login pode ser textual (um codinome) ou numérico (similar a um número de identidade).

Em algumas situações, pode-se aproveitar um identificador que o usuário já possui como login. Logins textuais muitas vezes permitem que se utilize o nome de uma conta de e-mail do usuário. Logins numéricos podem utilizar um número de documento de identidade como CPF, número do título de eleitor, RG, número de registro profissional (OAB, CRM, CREA etc.), número de inscrição do usuário no serviço, matrícula funcional etc.

Para confirmar a credencial, usa-se um elemento que deve casar unicamente com o identificador do usuário. É aí que entra o fator de autenticação.

Os fatores de autenticação para humanos são normalmente classificados em três casos:

  • algo que o usuário sabe: senha, PIN (número de identificação pessoal), frase de segurança ou frase-passe, que normalmente deve ser apenas memorizada e não escrita, para garantir o segredo que torna o fator seguro;
  • algo que o usuário possui/tem: certificado digital A3 (token ou smart card), cartão de códigos numéricos, token de segurança (gerador eletrônico de senhas únicas temporais), token por software, códigos enviados por telefone celular (SMS) etc.;
  • algo que o usuário é: impressão digital, padrão de retina, sequência de DNA, padrão de voz, padrão de vasos sanguíneos, reconhecimento facial, reconhecimento de assinatura, sinais elétricos unicamente identificáveis produzidos por um corpo vivo, ou qualquer outro meio biométrico.

A autenticação mais comum é a combinação de login e senha, ou seja, utilizando apenas um fator. A senha memorizada, contudo, tem sua fragilidade. Tanto a identificação (login) quanto a senha (este fator “algo que você sabe”) podem ser revelados ou descobertos, permitindo a fraude de utilização ilegítima de identidade de uma pessoa por outra. Pode ainda ser esquecida, causando transtornos ao usuário, pois exigirão alguma forma de redefinição ou reposição de uma nova senha.

Por isso, bancos e outras instituições têm cada vez mais recorrido à utilização de mais um fator, como veremos na seção seguinte.

Referências:

Fatores de autenticação e aplicações bancárias

Vistos os conceitos básicos, vamos comentar os fatores de autenticação exemplificados por sua utilização pelos bancos, em caixas eletrônicos e, principalmente, nas aplicações de internet banking.

O cartão magnético sempre foi utilizado pelos bancos. Além de armazenar a identificação numérica do usuário (banco, agência e conta), que é automaticamente lida nos caixas eletrônicos, ele é um fator de autenticação física do tipo “algo que você possui”. É combinado com a senha do cartão, fator do tipo “sabe”.

Com o aumento das fraudes e golpes em caixas eletrônicos, desde malfeitores próximos que observavam a senha digitada até o uso de equipamentos eletrônicos de fraude instalados nos caixas, os bancos começaram a inovar.

Algo que você sabe

Primeiro, vieram as técnicas de fornecimento indireto da senha. Menus de escolha mostrando mais de um dígito em cada opção. Isso faz com que um observador não saiba qual dos dígitos de cada opção é o da senha, sem reduzir a segurança — em termos matemáticos, em uma senha de 6 algarismos, escolhê-los em pares reduz as possibilidades de 10 dígitos para 5 pares, mas cada escolha (par) contém 2 opções de dígitos, então 106 = 56 * 26 = 1 milhão.

Depois, veio o uso de mais de um fator na autenticação, o que caracteriza a chamada autenticação multifator que intitula este artigo. Primeiro, a criação de mais de uma senha, como senha do cartão, senha eletrônica de internet, senha de telefone, código mnemônico de letras. Em internet banking, o banco costuma solicitar uma senha eletrônica para autenticar no início, e depois pede a senha do cartão para confirmar uma transação bancária.

Ainda assim, os fatores do tipo “sabe” têm o problema de serem basicamente um segredo único memorizado, que pode ser descoberto involuntariamente, ou mesmo repassado voluntariamente. Saber algo não é um fator intrinsecamente único e individual. Ainda tem o problema de que quando são escolhidos pelo próprio usuário, este pode por comodidade ou preguiça escolher para senha um dado comum (como usar uma data de aniversário como senha numérica) e que pode ser conhecido por outras pessoas.

Algo que você possui

Então, os bancos passaram a acrescentar um fator do tipo “possui”. O fator desse tipo costuma ter o objetivo de transpor códigos que antes eram escolhidos e memorizados para dispositivos que transportam códigos seguros.

O primeiro fator desse tipo costuma ser o cartão de códigos. Um cartão impresso com vários códigos numerados (em geral, são 50 a 70 códigos de três ou quatro dígitos) é fornecido pelo banco e, na autenticação ou confirmação de uma transação, ele solicita um desses códigos. Bancos como Bradesco, Itaú e Real utilizam este fator. As fraudes sobre esses cartões são mais fáceis do usuário identificar, pois em geral solicitam que o usuário forneça todos os códigos numéricos do cartão ao mesmo tempo, e não apenas um por vez como o banco faz. O caso típico desse tipo de fraude é se travestir de uma operação de recadatro ou confirmação de segurança do próprio banco.

Outro fator que alguns bancos passaram a utilizar foi um dispositivo físico de geração de senhas únicas a intervalos de tempo. Tecnicamente conhecidos como dispositivos OTP (one time password), eles funcionam assim: em um mecanismo eletrônico, o dispositivo gera um código numérico válido por um período de tempo, em geral um minuto. Depois desse período, o dispositivo automaticamente gera outro código. A fórmula matemática utilizada para a geração desses números é conhecida pelo banco e sincronizada com seus computadores centrais, mas é um técnica complexa e praticamente imprevisível, denominada função pseudo-aleatória.

Bancos como antigo Unibanco (“multisenha”) e Itaú (“iToken”) utilizaram este fator (ilustrações a seguir). Apesar de seguro, ele tem alguns inconvenientes práticos. Para o banco, representa um custo extra da aquisição desse dispositivo para cada cliente, o que tem que compensar frente à redução de prejuízo em fraudes. Para o usuário (cliente), é um penduricalho a mais que ele tem que guardar e transportar consigo para onde precisar usar.

Multisenha Unibanco iToken Itaú pessoa física iToken Itaú pessoa jurídica (RSA SecurID)

Outra variante do fator “possui” tem sido o envio de códigos para o celular do cliente via SMS. Similar ao dispositivo OTP, esse fator permite que um código diferente seja gerado a cada uso. O que o cliente deve efetivamente possuir de forma única é o seu telefone celular. Como hoje em dia as pessoas em geral portam consigo o celular, isso evita ter que se carregar o dispositivo OTP. Essa técnica exige uma abrangência e eficiência da rede celular da operadora, pois o usuário terá de receber o código via SMS no momento em que está realizando uma operação bancária eletrônica. Bancos como Citibank, Itaú e Banco do Brasil tem utilizado esse fator.

Para que um fator do tipo “possui” utilizando um dispositivo físico como o OTP ou celular seja utilizado indevidamente, é preciso que o pretenso usuário ilegítimo (fraudador) consiga obter o dispositivo, minimizando o risco de fraudes eletrônicas à distância.

Certificação digital

Merece destaque o fator de autenticação usando certificado digital. Certificado digital é um mecanismo genérico, padronizado e amplamente utilizado para identificação e assinatura digital seguras nas mais diversas aplicações. Funciona como uma carteira de identidade digital. São emitidos por entidades credenciadas confiáveis chamadas autoridades certificadoras (AC) e autoridades de registro (AR). Exigem a comprovação de documentos do usuário titular para emissão, e uma série de procedimentos técnicos e operacionais de segurança.

O governo Brasileiro definiu a estrutura nacional de emissão de certificados digitais, a ICP Brasil (Infraestrutura de Chaves Públicas Brasileira), seguindo o padrão mundial já estabelecido. Através da ICP Brasil, pessoas físicas podem emitir o seu e-CPF e pessoas jurídicas (empresas) o e-CNPJ. O uso de certificados digitais tem sido impulsionado no Brasil pelo governo, em especial:

Entre aplicações de internet banking de pessoa física em geral, só tenho conhecimento do Banco do Brasil que atualmente permite a utilização de certificado digital como forma de autenticação do cliente. (Podem haver outros bancos utilizando, mas desconheço.)

[photopress:bb_autentica_certificado.png,full,centered]

Este fator não é necessariamente emitido pelo banco (para o banco emitir, deve ser AR devidamente credenciada a uma AC), mas sendo um padrão mundial estabelecido, ele consegue identificar seu cliente pelo nome completo e pelo CPF contidos na identidade digital.

O certificado digital tem diversas vantagens. Sendo um dispositivo de identidade universal amplo, serve não apenas para aplicações bancárias mas para qualquer uso de identificação digital da pessoa que seja disponibilizado.

O certificado do tipo A3 utiliza um dispositivo físico — um chip que pode ser em um token USB similar a um pen drive, ou em um cartão inteligente smart card (que exige uma leitora própria) — funcionando portanto como fator tipo “possui”. Existe também um certificado tipo A1 via software que é gravado no disco do computador, mas é considerado um pouco menos seguro.

Token da marca Alladin Smart card

O certificado digital é baseado na técnica de segurança digital chamada criptografia de chave pública, onde existe um código secreto (chave privada) que fica inviolável dentro do dispositivo físico do certificado A3, e uma contraparte para identificação pública do titular do certificado (chave pública), preservando o segredo da chave privada.

O uso da chave privada é protegido por uma senha (PIN) ou mesmo por um leitor biométrico (atualmente, os certificados digitais com biometria mais difundidos acoplam um leitor de impressão digital). Ou seja, o do certificado digital embute múltiplos fatores de autenticação.

O empecilho essencial para popularizar o certificado digital como fator de autenticação é o custo. Atualmente, a emissão de um certificado A3 com validade de três anos custa algo entre 100 e 300 reais, incluindo o custo do dispositivo (token ou smartcard). Por medida de segurança, essa identidade digital precisa ser renovada ou reemitida ao término de cada período de vigência, a um custo que hoje gira em torno de 100 reais.

No sistema da novo documento de identidade brasileiro, o Registro de Identidade Civil (RIC), há a possibilidade de ele incorporar um certificado digital. Iniciativas como essa para popularização de meios de armazenamento de certificado digital, mais a disseminação de serviços públicos (governamentais) com uso destes, podem levar nos próximos anos a uma grande popularização que leve a um aumento de escala e consequente redução drástica do custo. Essa é uma grande esperança!

Para saber mais:

Algo que você é

E a biometria como fator de autenticação? Teoricamente, parece ser o mais seguro e prático. Seguro porque parece difícil fraudar características físicas pessoais exclusivas como padrões de impressão digital, retina, veias, face etc. Prático porque você não precisa memorizar nem possuir nada, são características físicas que existem em seu corpo.

Mas dos três fatores, este é o que ainda possui os maiores desafios. Na prática, padrões biométricos ainda são sujeitos a problemas de abrangência e precisão. Não reconhecimento de uma pessoa legítima (“falso negativo”), a possibilidade mesmo que remota de identificar uma pessoa como a característica biométrica de outra (“falso positivo”), e a dificuldade de se estabelecer padrões biométricos que funcionem de forma efetiva para todos. Só para se ter ideia, na impressão digital, que é um dos padrões biométricos mais conhecidos e utilizados, uma pessoa muito jovem, idosa, que utiliza produtos químicos ou que faça trabalhos manuais duros que desgastem a pele podem simplesmente não ter uma digital legível de forma precisa.

Outro desafio preponderante de decisão da viabilidade e popularização no mercado é o alto custo. Dispositivos de leitura biométrica ainda são muito caros para se popularizar em larga escala atualmente.

A essência do gerenciamento de projetos

O arquiteto, urbanista e professor Lúcio Costa (1902-1998), pioneiro da arquitetura modernista no Brasil, ficou conhecido mundialmente pelo projeto do Plano Piloto de Brasília. Contudo, cito o ilustre brasileiro em uma frase atribuída a ele, que para mim resume a razão de ser do gerenciamento de projetos:

“A única coisa do planejamento é que as coisas nunca ocorrem como foram planejadas.”

— Lúcio Costa

É consenso cada vez mais difundido que sem planejamento e sem monitoramento vem o descontrole. Empreitadas importantes e/ou grandes estão fadadas ao fracasso se não houver, além da execução em si, planejamento (antes) e controle (durante). Planejamento, execução, monitoramento e controle são elementos essenciais do gerenciamento de projetos.

Mas por que o gerenciamento de projetos, o planejamento e o controle são realmente necessários, e não apenas fazer-se o que precisa ser feito (a execução)? É exatamente porque, como bem disse Lúcio Costa, as coisas nunca ocorrem como foram planejadas. A vida, as pessoas, a sociedade, o mercado, o ambiente são cheios de incertezas e imprevistos, falhas e mudanças.

É possível saber exatamente quanto tempo cada pessoa tem de vida? Quando ficará doente? Quando conhecerá um grande amor? Quando mudará de emprego? Não. E quando choverá? E a chuva causará algum prejuízo? Quando será a próxima recessão econômica? E a próxima onda de prosperidade? Quando a bolsa de valores vai subir ou descer?

Além disso, pessoas são subjetivas, manhosas e — verdade seja dita — imperfeitas. E únicas: cada um tem sua personalidade, suas qualidades, defeitos, forças, fraquezas, crenças, medos, interesses, objetivos. Pessoas mudam de ideia, de opinião, de expectativa, até de humor, a todo momento.

Isso sem falar nos desafios da comunicação. A transmissão de ideias, conhecimentos e informações com clareza, precisão e objetividade é uma arte. Veja a grande lição que traz a brincadeira do “telefone sem fio”. Passe uma simples frase por diversas pessoas e veja como ela pode se distorcer rapidamente.

Uma pessoa pode pensar uma coisa, falar outra e ainda ser compreendida de uma terceira forma diferente. Já viu aquela famosa tirinha de humor sobre as idiossincrasias de comunicação no desenvolvimento de software?

Analogias da comunicação em projetos de sofware

“A comunicação não é aquilo que falamos. A comunicação
é aquilo que é percebido, aquilo que é decodificado pelas outras pessoas”.

Reinaldo Passadori

Se não houver planejamento e controle, os riscos e incertezas, os eventos imprevistos e as falhas vão ocorrendo a cada dia, levando ao gradativo desvio de rota e ao insucesso. E a correta percepção do seu andamento e sucesso pelas partes interessadas (patrocinador, cliente, usuário etc.) depende muito de uma comunicação eficaz.

Gerenciamento de projetos existe para traçar, divulgar, monitorar e corrigir a rota dos projetos, tratando questões, riscos, incertezas, imprevistos, falhas e mudanças que surgem, sempre mantendo as partes interessadas informadas e gerenciando suas expectativas, de forma a garantir que cada projeto (uma tarefa ou empreitada a realizar) seja cumprido e atinja seu objetivo com sucesso, gerando valor e satisfação.

Para saber mais:

Veja: Falar e escrever bem

A revista Veja desta semana tem como capa uma reportagem sobre “Falar e escrever bem” (Veja edição 2177, ano 43, nº 32, 11 de agosto de 2010, páginas 94 a 101).

Esse tema já foi capa de outras edições da revista. Pesquisando no Acervo Digital VEJA em anos recentes, encontrei por exemplo:

  • “Falar e escrever certo”, edição 2025, ano 40, nº 36, 12 de setembro de 2007.
  • “Falar e escrever bem” , edição 1725, ano 34, nº 44, 7 de novembro de 2001.

Como assinante de Veja há mais de 25 anos, é fácil observar os temas recorrentes em capas da revista. Quando não há furos de reportagem nem fatos emergentes ou de comoção nacional na semana — escândalos e destaques na política e na economia, o falecimento ou outro fato marcante de figuras notórias etc. –, temas coringas são sacados do cesto: Corpo e Mente, Alimentação, Avanços da Medicina, Plástica e Estética, Sexualidade, Ecologia, Casamento, Pais e Filhos. E no Natal, o tradicional tema Religião e Fé. Observo que a maioria gira em torno de saúde e comportamento.

Temas recorrentes não são necessariamente um sinal de falta de conteúdo. É saudável retomar assuntos de interesse geral de tempos em tempos, e acompanhar a sua evolução ao longo do tempo, em função das mudanças no mundo e no comportamento da sociedade, bem como nas descobertas da ciência.

Falar e escrever bem, por sinal, é um algo que me interessa muito. Tomara que continue sempre assunto recorrente nessa e em outras publicações. A atual reportagem de Veja teve como ponto de partida os tropeços de clareza e gramática dos candidatos à Presidência, no primeiro debate da Band.

Vejo com imensa tristeza como o brasileiro mediano realmente lê pouco, tem preguiça em ler e escrever, não domina o português como deveria nem na escola nem no cotidiano e, como consequência, frequentemente escreve e fala mal.

Isso sem falar na praga das mensagens curtas e instantâneas na internet e nos celulares, o que dá brecha à meninada da “nova geração conectada” para escrever errado, abreviado, truncado, sem nem pontuação.

Escrita e oratória falhas levam a comunicação e informação falhas. Quem não dá o devido valor a isso não percebe que informação e comunicação são, provavelmente, a maior riqueza e um dos principais instrumentos de poder da humanidade, em todos os tempos.

Modelo de Qualidade de Software de McCall

Qualidade de software é um tema que vem sendo abordado e evoluído há muito tempo em engenharia e arquitetura de software, tanto em relação à qualidade do processo (da concepção à construção e à manutenção) quanto em relação à qualidade do produto, o software em si.

Nas décadas de 70 a 90, organizações internacionais de normatização e padronização — como ISO/IEC, ANSI, IEEE e outros — definiram qualidade de produto como:

A totalidade dos recursos, aspectos e características de um produto ou serviço que suportam a sua capacidade de satisfazer os requisitos dados, as expectativas e as necessidades explícitas e implícitas.

Em seu estudo sobre qualidade de software, Software Quality: Definitions and Strategic Issues (PDF, abril 1996), o pesquisador Ronan Fitzpatrick propõe uma visão mais moderna e ousada de qualidade do produto de software, definindo assim:

Qualidade de software é a medida em que um conjunto definido pela indústria de características desejáveis são incorporadas em um produto, de modo a aprimorar seu desempenho durante sua existência.

O Modelo de Qualidade de Software proposto por James A. McCall e outros, em 1977, foi um dos primeiros largamente difundidos neste campo. Ele organiza os critérios de qualidade de software em três pontos de vista, a saber:

[photopress:McCall.png,full,centered]
  • Operação: características relativas ao uso do produto.
  • Revisão: capacidade do produto ser modificado e evoluído.
  • Transição: adaptabilidade a novos e diferentes ambientes.

Os critérios de qualidade elencados no Modelo de McCall em cada ponto de vista estão listados na tabela a seguir.

Operação Revisão Transição
Correção Manutenibilidade Portabilidade
Confiabilidade Flexibilidade Reusabilidade
Eficiência Testabilidade Interoperabilidade
Integridade
Usabilidade

Atualmente existem outros modelos de avaliação da qualidade do produto de software, em especial o padrão internacional de engenharia de software ISO/IEC 9126, que trata da Qualidade do Produto. A norma se divide em quatro partes, sendo a primeira uma visão geral do modelo de qualidade, e as outras três, os grupos de métricas definidas para este modelo:

  • Parte 1: Modelo de qualidade.
  • Parte 2: Métricas externas.
  • Parte 3: Métricas internas.
  • Parte 4: Métricas de qualidade em uso.

Qualidade externa diz respeito ao produto final como percebido pelo usuário, enquanto qualidade interna se refere à estrutura e às características do produto em seu projeto e construção.

Mais recentemente, desde 2005, as normas ISO/IEC 9126 e a série ISO/IEC 14598, de avaliação de produto de software, tem sido integradas na nova Série de normas ISO/IEC 25000 – Software Engineering — Software product Quality Requirements and Evaluation (SQuaRE), que tem seu núcleo principal composto por cinco divisões:

  • ISO/IEC 2500n – Divisão Gestão da Qualidade;
  • ISO/IEC 2501n – Divisão Modelo de Qualidade;
  • ISO/IEC 2502n – Divisão Medição da Qualidade;
  • ISO/IEC 2503n – Divisão Requisitos de Qualidade;
  • ISO/IEC 2504n – Divisão Avaliação da Qualidade.

Além deste núcleo principal, o SQuaRE contempla extensões, que tratam de temas específicos, como ISO/IEC 25051, SQuaRE Requisitos para qualidade de produtos comerciais de prateleira (Commercial Off-The-Shelf – COTS), e ISO/IEC 2506n, SQuaRE Common Industry Format (CIF) para usabilidade.

Os critérios de qualidade no Modelo de McCall são muito similares aos preconizados por outros modelos para classificação de atributos de qualidade de software, como o FURPS+ (Robert Grady e Deborah Caswell, HP, 1987-1992) e o da própria ISO/IEC 9126, quanto a requisitos não funcionais:

FURPS+ ISO 9126 McCall
Functionality (Funcionalidade) Funcionalidade – (n/a, funcional)
Usability (Usabilidade) Usabilidade Usabilidade (Operação)
Reliability (Confiabilidade) Confiabilidade Correção,
Confiabilidade,
Integridade (Operação)
Performance (Desempenho) Eficiência Eficiência (Operação)
Supportability (Suportabilidade) Manutenibilidade Manutenibilidade,
Flexibilidade,
Testabilidade (Revisão)
+ (outros requisitos/restrições) Portabilidade Portabilidade,
Interoperabilidade,
Reusabilidade (Transição)

.

Vale ressaltar que qualidade do software, abordada aqui, se entende por qualidade do produto de software em si, o que é distinto de qualidade do processo de software, que diz respeito à qualidade das atividades e forma pelas quais se produz software.

Para saber mais:

Sucessos e falhas em projetos de TI

Há 16 anos, o Standish Group estuda projetos de TI. Ao longo desse tempo, a pesquisa CHAOS já estudou mais de 70 mil projetos de TI realizados.

O CHAOS Report é frequentemente citado em artigos e apresentações sobre gerenciamento de projetos de TI. Essa pesquisa classifica o resultado de cada projeto de TI em uma destas três situações:

  • Bem sucedido: O projeto é concluído dentro do prazo e orçamento planejados, com todos os recursos e resultados originalmente especificados.
  • Deficitário: O projeto é concluído e operacionalizado, mas com atraso, acima do custo estimado ou com menos recursos e resultados que o especificado.
  • Falho: O projeto é cancelado antes de ser concluído ou nunca é implementado.

A evolução dos percentuais de cada resultado, nas pesquisas CHAOS de 1994 até 2008, está representada no gráfico a seguir.

Chaos Report 1994 a 2008, por Standish Group

Há quem critique os critérios utilizado pelo Standish Group. No artigo The Rise and Fall of the Chaos Report Figures, por J. Laurenz Eveleens e Chris Verhoef, Universidade Vrije de Amsterdam, 2009-09-04, publicado na IEEE Software, vol. 27, num. 1, p 30-36, jan/fev 2010, os autores afirmam que “seus estudos apontam que as definições de sucesso e de desvio de projetos tem quatro problemas principais: são ambíguas, unilaterais, pervertem a prática de estimativa, e resultam em números pouco significativos“.

Contudo, o Standish Group tem repetido as pesquisas de forma consistente a cada dois anos desde 1994. Desta forma, os resultados apresentados no Chaos Report são, no mínimo, um referencial histórico para análises e considerações sobre a evolução do sucesso em projetos.

Um paralelo com o Guia PMBOK e processos estratégicos

Interessante notar que o Instituto de Gerenciamento de Projetos (PMI) lançou a primeira versão oficial do Guia PMBOK em 1996. Este Guia pode ser considerado um marco na formalização e ampla divulgação dos conceitos e das melhores práticas em gerenciamento de projetos, e vem contribuindo para a profissionalização e evolução da atividade de gerenciamento de projetos em todo o mundo.

O Guia PMBOK tem sido atualizado e publicado pelo PMI em ciclos de quatro anos, com novas edições tendo sido lançadas em 2000, 2004 e 2008, inclusive com traduções em português e diversos outros idiomas.

De 1994 para 1996, o sucesso em projetos medido no CHAOS Report teve um considerável salto positivo, de 16% para 27%. Igualmente, a partir de 1996, a taxa de sucessos cresceu pouco, mas até 2002 a taxa de fracassos decaiu consideravelmente, de 40% chegando a 15%.

A disseminação dos conceitos e práticas de planejamento e controle no gerenciamento de projetos, com a participação de organizações profissionais como o próprio PMI (de origem americana), o IPMA (de origem europeia) e outras, neste período, provavelmente contribuiu para o aumento do sucesso e redução do fracasso em projetos.

A oscilação de sucessos e fracassos desde 2002 deve levar em conta as crescentes abrangência, complexidade e criticidade dos projetos de TI, com a tecnologia sendo impelida a atuar imersa e alinhada cada vez mais no cerne dos processos de trabalho e das estratégias institucionais.

Fatores críticos de sucesso

Mesmo que o paralelo apresentado seja interessante e coerente, seria um tanto simplista tentar resumir a poucos pontos os determinantes da evolução no resultado dos projetos.

O próprio Standish Group aponta um conjunto mais consistente de fatores críticos de sucesso para projetos de TI:

  • Envolvimento efetivo e positivo dos usuários.
  • Apoio da alta gestão, ou patrocínio executivo.
  • Objetivos de negócio claros, bem definidos.
  • Maturidade emocional das partes envolvidas (stakeholders), controlando as “Cinco Sinas Mortais” no gerenciamento de projetos: ambição excessiva, arrogância, ignorância, abstinência e fraudulência.
  • Otimização, visando obter o máximo de valor para o negócio com o mínio de riscos.
  • Processos ágeis, com desenvolvimento iterativo.
  • Expertise em gerenciamento de projetos, onde aí entra a importante contribuição do Guia PMBOK e das organizações profissionais de gestão de projetos.
  • Equipe capacitada, consistindo na habilidade de adquirir, gerenciar e controlar os recursos certos no momento certo, lidando com turnover, bem como desenvolver e manter competências.

Para saber mais: