quarta-feira, 9 de janeiro de 2013

Escravocratas do Século 21


Comecei a minha carreira profissional de TI como muitas pessoas da minha idade no final da década de 90: fazendo sites. Em bem pouco tempo isso se tornou um profissão de verdade: Desenvolvedor Web, ou coisa que o valha. Hoje esse profissional pode ser chamado por muitos nomes, mas continua requisitado.

Passei por empresas "pontocom" na época da bolha, e a vi estourar. Apesar de catastrófico, foi um momento interessante pra se viver, pois compreendi muitos termos e seus significados reais como empreendedorismo, plano de negócios, investidor anjo, venture capital e vários outros que ferviam na web daquela época. Entendi também o que faz e o que não faz sentido dentro de uma empresa quando o objetivo real dela é dar lucro.

Por causa da recessão que atacou esse tipo de empresa, acabei participando de processos seletivos para trabalhar em empresas "normais" que na época eram chamadas de "bricks and mortar", ou seja, as empresas de verdade na visão dos que já desacreditaram da internet como uma via real para fazer negócios verdadeiramente lucrativos.

Por indicação de um amigo, fiz uma entrevista em uma empresa de consultoria de TI, e na época, em 2003, eu não sabia o que isso significava. Nunca tinha tido contato com o conceito de consultoria na prática, mas gostaram de mim e fui contratado. Meu background era o conhecimento das linguagens de programação para web que existiam na época e eu já tinha uma certificação de DBA Oracle 8 que estudei muito para conseguir e paguei do meu bolso, o que me faz pensar agora como estou velho, mas esse não é o ponto.

Quando me dei conta, estava trabalhando em uma consultoria que tinha clientes bem significativos no contexto corporativo do Brasil e comecei a entender o que era ser consultor e como esse mercado funcionava. Ser consultor era não saber muito bem onde eu estaria na semana seguinte, porque poderia ser necessário estar em outra cidade ou estado para atender alguma demanda. Era ter que ficar com o celular ligado 24/7 em caso de alguma emergência. Era aprender sobre o negócio do cliente mesmo sem nunca ter assistido a uma única aula de faculdade sobre aquele assunto. Era bem mais do que isso, mas não vou descrever o que é ser consultor, só que eu já estava me divertindo bastante e a vida profissional de consultor de TI já tinha me conquistado. Eu queria mesmo continuar fazendo aquilo.

Havia uma peculiaridade nisso tudo, eu era consultor de um negócio chamado Hyperion, que nem meus professores de faculdade conheciam, menos ainda meus colegas e profissionais de outras empresas. Parecia uma tecnologia meio que à margem de tudo o que estava acontecendo e fervilhando na internet e na tecnologia de maneira geral. Enquanto muita gente queria certificações Java, eu estava me tornando especialista em uma coisa que ninguém, ou quase ninguém sabia o que era. Isso poderia ser ótimo ou péssimo. Ou eu teria um conhecimento raro e por consequência desnecessário e sem valor ou eu teria um conhecimento raro e por consequência necessário e caro. Pra minha felicidade, a segunda opção se tornou realidade. A quantidade de projetos Hyperion aumentou muito se compararmos 2003 com 2013 e o mercado mundial não consegue atender totalmente a demanda por esse tipo de profissional que pode cobrar taxas bem altas em alguns lugares do mundo, por exemplo, um profissional experiente em Hyperion Financial Management pode cobrar uma taxa de até 500 libras esterlinas por dia em Londres.

Obviamente quando o mercado viu esse movimento acontecendo, muitas consultorias começaram a oferecer serviços e projetos Hyperion e para atendê-los foi necessário procurar esses profissionais no mercado e pagá-los a peso de ouro. Mas com isso surgiram alguns problemas. Um deles foi o fato de que surgiram consultorias novas e pequenas. E talvez você diga que isso é bom e eu acho realmente que deveria ser, afinal eu sou completamente a favor do empreendedorismo e da fomentação de novos negócios. Seria bom se todas essas novas consultorias fossem capazes, competentes e principalmente éticas.

Com o aumento da competição, empresários e gestores sem muitos escrúpulos contratam consultores no mercado, muitas vezes com salários altos, eventualmente até bem acima dos valores praticados pela maioria das consultorias e fazem isso para demonstrar aos seus clientes reais ou em potencial, que tem um time de consultores capaz de implementar projetos Hyperion ou para atender à algum projeto que já foi vendido mesmo sem que a consultoria tivesse um time para implementá-lo. O resultado disso é a venda de projetos com prazos ditados pelo cliente, e não estimados por profissionais capacitados.

Vou dar um exemplo: a área comercial da consultoria tenta vender um projeto de 3 mil horas, o cliente reclama, diz que é muito caro, ameaça não fechar negócio, pressiona, insiste, faz leilão entre os fornecedores com a velha estratégia "mas aquele fornecedor faz por menos" e então o fornecedor que conseguir achatar mais o projeto fazendo com que o projeto fique com menos horas, menos recursos e por consequência com o menor preço, leva o contrato.

Depois do projeto vendido, o vendedor sai de cena, a área comercial já fez a parte dela e agora é com a equipe de delivery. Aqueles que vão implementar o projeto que se responsabilizem por entregar no prazo e sem espremer a margem, lógico. Se o projeto de mil horas foi vendido, a equipe de delivery deve fazer o possível e o impossível para entregá-lo em 800 horas, de preferência, não importa que o projeto deveria ter sido vendido com 3 mil horas, porque agora já foi vendido. Você é parte do time do projeto? Então é responsabilidade sua entregá-lo com qualidade e no prazo, independente da incapacidade do vendedor perceber se aquilo que ele vendeu faz sentido ou não.

Esse não é um cenário caricato, eu passei por ele algumas vezes e na última vez que isso aconteceu foi bastante traumático pra mim. Eu perdi o sono e a tranquilidade, porque a consultoria não me apoiou em nada e era eu que tinha que me explicar com o cliente, não o vendedor que fechou o negócio nem o executivo que cobrava os meus resultados. Ao contrário, fui ameaçado de algumas formas pelo meu empregador durante o projeto e também no momento que decidi sair da empresa. Me foi dito que "o mercado é pequeno e eu deveria cuidar para que as minhas decisões não me prejudicassem".

Esse tipo de padrão só vai continuar acontecendo se os profissionais não se sujeitarem a esse tipo de situação. Eu saí do projeto e da empresa, não podia sacrificar a minha tranquilidade, a minha capacidade profissional e nem a minha ética diante do cliente. Eu recomendo que você faça o mesmo se estiver passando por situação semelhante, tome atitude, converse com quem você acredita que pode te ajudar de alguma forma, seja com seu gestor, com seu gerente de projetos, com seu RH, enfim, não aceite esse tipo de situação passivamente pois dessa forma você estará colaborando para que o mercado não valorize o trabalho dos seus colegas, o seu trabalho e principalmente o maior bem que você consultor tem: o seu conhecimento. Esse ativo você lutou para conseguir e ninguém tira de você, portanto valorize tanto quanto puder mantendo a ética e a boa fé em qualquer situação. Não haverá arrependimento nisso.

Se eu puder dar dicas sobre como evitar problemas com os "escravocratas do século 21" (obrigado ao meu amigo Carlos Freitas pelo termo genialmente cunhado) diria que você deveria:


  • Procurar conhecer o histórico da consultoria no mercado antes de assinar um contrato de trabalho com ela.
  • Verificar se ela já possui contratos para você trabalhar ou se ela quer te contratar para poder conseguir contratos. A segunda opção pode ser uma boa possibilidade desde que você tenha ciência disso, assuma os riscos e negocie bem a recompensa em caso de sucesso.
  • Conversar com pessoas que já trabalham ou trabalharam na empresa e tentar coletar informações relevantes como: clima entre profissionais, relacionamento dos profissionais com os executivos, estratégias comerciais, oportunidades de crescimento, entre outras que você julgar relevante para a sua carreira. O LinkedIn está aí pra isso também, use sem medo.

 
Na era da informação, faça ela trabalhar a seu favor. Informação demais, nesse caso, nunca vai fazer mal.

Sucesso nos seus projetos em 2013!

quarta-feira, 4 de abril de 2012

A Tríade do Tempo e o review do Neotriad

Quando li o famoso livro do David Allen, "Getting Things Done" (que foi miseravelmente traduzido para português como "A Arte de Fazer Acontecer"), pesquisei alguns aplicativos para iPhone, iPad e Mac que eu pudesse usar aplicando a metodologia GTD. Depois de pesquisar um pouco e perceber que os bons apps de GTD custavam um pouco acima da média dos outros softwares, decidi pelo Things da Culture Code e na época investi US$9,99 na versão para iPhone, US$14,99 na versão para iPad e US$49,99 na versão para Mac, dando um total de US$74,97. Um investimento razoável para um produto que não tem sincronismo por nuvem, essa função ainda está na versão beta. Uso o Things há mais de um ano e considero um bom produto, mas não vou fazer review dele nesse post.

Há um tempo atrás, a Bia Kunze deu uma twitada citando o Christian Barbosa e dizendo que ele era o "guru" dela quando o assunto era produtividade. Quando pesquisei um pouco sobre o Christian logo descobri o livro dele, "A Tríade do Tempo", aliás, recomendadíssimo, ele tem insights excelentes sobre como cuidar do que você faz com o seu tempo.

Em um super resumo (o objetivo aqui não é detalhar a "Tríade do Tempo") a metodologia proposta pelo Christian é uma variação do GTD só que com alguns conceitos mais claros e práticos, na minha opinião. Por conta disso decidi dar uma chance à Tríade e assinei o serviço Neotriad.com embora não seja obrigatório assinar o serviço para aplicar o que o livro propõe. O Neotriad.com permite um período de testes de 30 dias antes que o usuário tenha que pagar qualquer assinatura.

Aplicativo web neotriad.com

Pela web, fazendo seu login no site, o usuário encontra todos os conceitos da Tríade assim que se depara com os menus e opções do software. Por exemplo, no livro, a Tríade é composta sempre por tarefas importantes, urgentes ou circunstanciais e esse conceito está bem claro no web app. Assim como "Identidades", "Projetos", "Metas", etc. A aplicação é toda construída com formulários flutuantes, a interface é clara e bem organizada. Tem alguns pequenos bugs como: demora na hora de salvar uma tarefa ou projeto e pequenos travamentos ao salvar ítens em listas. Nada que atrapalhe ou frustre o usuário na sua experiência de uso. A parte de controle financeiro é bem limitada. Para quem não faz nenhum tipo de controle de finanças pode ser útil por sem um bom lugar para começar a fazer controles, mas qualquer pessoa que já tenha no mínimo uma planilha de controle de orçamento não vai ver muito sentido em migrar para um sistema tão simplificado.

Aplicativo Neotriad para iPhone

Começando realmente pelo começo, o ícone do app é, na minha opinião, muito feio. É fosco e não chama a atenção quando o usuário olha para a tela do iPhone, já tive que ficar procurando pelo ícone mais tempo do que o normal por conta disso. Ao entrar no app o usuário encontra a tela de login onde deve colocar usuário e senha. Quando o usuário faz o login, a demora é razoável mesmo estando conectado à uma rede WiFi rápida, de 15Mbits. 

Os ítens disponíveis no app são:

  • My Day que contém os compromissos do dia e as tarefas planejadas para o dia corrente, 
  • Tasks onde aparecem apenas as tarefas. 
  • Appointments onde aparecem apenas os compromissos.
  • Team para quem usa os recursos colaborativos. Como uso com objetivos pessoais, não sei o que deveria encontrar nessa tela, ela fica em branco para mim. 
  • Synchronize que serve exatamente para sincronizar as tarefas e compromissos com as informações na nuvem. 

Na parte de baixo da tela, tem um espaço para a foto do usuário, que só pode ser alterada pela web, o usuário não consegue alterar sua própria foto no app utilizando a câmera do iPhone ou alguma imagem previamente armazenada no aparelho. Há também um mostrador no canto inferior direito informando a quantidade de horas planejadas. O aplicativo não é internacionalizado, ou seja, não tem versão em português independente de onde seja a sua conta da App Store.

Nenhum dos conceitos da Tríade do Tempo estão implementados nesse aplicativo. Qualquer app de "To Do" na App Store é tão ou mais completo do que esse. Não faz sentido pagar a partir de R$14,99 por mês se o usuário pretende fazer uso "mobile" da metodologia da Tríade. Se o usuário não quiser usar os conceitos da Tríade, existem outros apps sem nenhum custo que cumprem esse papel de forma mais completa.

O mais importante (os conceitos da metodologia) não está presente. Sendo o iPhone o meu principal dispositivo de produtividade, isso é extremamente relevante pra mim e será decisivo na hora de escolher continuar pagando pelo serviço ou cancelar a assinatura. Lembrando que o download do aplicativo na App Store é free, mas para utilizá-lo é necessário ter um login criado no neotriad.com.

Conclusão

Enquanto o app para iPhone não implementar completamente os conceitos da Tríade do Tempo assim como a web app, não faz sentido (para o tipo de uso que pretendo fazer) pagar mensalmente pelo serviço. Para quem fica o tempo todo diante do desktop ou do notebook, pode ser que não faça diferença e a web app da Neotriad cumpre o seu papel. No meu caso, já que não tenho como escapar das minhas atividades móveis, tenho que aproveitar todo o tempo possível para rever as minhas tarefas e prioridades e geralmente isso acontece exatamente quando não estou na frente de um computador.

sexta-feira, 27 de agosto de 2010

A TI do novo Brasil e CPM Braxis

Para os que não sabem, atualmente trabalho como consultor de Business Intelligence e Enterprise Performance Management na CPM Braxis, a maior empresa de serviços de TI do Brasil e recentemente contribuí na produção de um artigo chamado A TI do novo Brasil que pode ser lido no site da CPM Braxis.

Juntamente com Nicola Mazzi (do blog BI & Cia) e Gustavo Monteiro, ambos executivos de serviços da CPM Braxis, falamos sobre vários aspectos do Business Intelligence e Enterprise Performance Management, mais especificamente sobre "Tecnologia e Conhecimento de Negócios para a Excelência na Tomada de Decisão".

O artigo está aqui em PDF.

quinta-feira, 11 de fevereiro de 2010

Otimização de Aplicações Planning Pré-existentes – Parte 1

Uma pergunta comum dos clientes que já tem aplicações Planning pré-existentes é "como posso otimizar a performance das minhas aplicações?". Duas iniciativas simples que eventualmente podem ajudar na melhora da performance para ambientes Planning já estabelecidos são:
  1. Remover dados históricos desnecessários
  2. Reorganizar os outlines
Remover dados históricos desnecessários

É comum que se mantenha todo o histórico de dados em aplicações Planning para facilitar a análise ano a ano. Manter uma quantidade excessiva de dados históricos no Planning significa ter uma quantidade enorme de blocos desnecessários e quanto maior a quantidade de blocos, maior o tempo de processamento dos cálculos. É claro que geralmente é necessário  manter os dados históricos disponíveis de alguma forma para análise ao longo dos anos e para isso recomendo a prática de criar aplicações Essbase para reporting de dados históricos facilitando assim a otimização das aplicações Planning. Cubos Essbase para reporting podem ser desenvolvidos para manter dados históricos. Esses novos cubos Essbase devem ser desenvolvidos baseados nas aplicações Planning mantendo a mesma estrutura. Todos os dados que não sejam para novos planejamentos orçamentários ou forecasts devem ser movidos para esses cubos de reporting que são "puramente" Essbase. Essa integração entre as aplicações Planning e os cubos Essbase de reporting podem ser feitas usando técnicas como Partitioning, @XREF, ou mesmo exportação e importaçao de dados (export/import, report scripts). Os dados de planejamento como Orçado, Forecast, etc, permanecem nas aplicações Planning e através de processos de automação, ao longo dos anos os dados que se tornam históricos são migrados para as aplicações Essbase de reporting. Sugestão de passo a passo para migrar os dados históricos do Planning:
  1. Crie aplicações Essbase nativas para receber os dados históricos.
  2. Os novos cubos devem ser baseados na estrutura das aplicações Planning existentes.
  3. Remova das aplicações Planning todos os dados que não tem relação com o processo de geração de novos budgets e forecasts.
  4. Carregue os dados históricos nas aplicações nativas Essbase para reporting.
  5. Remova os membros das dimensões do Planning que dizem respeito apenas aos dados históricos.
  6. Escolha uma das técnicas disponíveis e integre os dados do ano corrente do Planning com os cubos Essbase de reporting.

Reorganizar Outlines

Pela "cartilha" ou se preferir "by the book" é sabido que a organização de outlines deve ser feita de cima para baixo:
  1. Dimensões densas com a maior quantidade de membros stored até as dimensões densas com a menor quantidade de membros stored
  2. Dimensões esparsas com a menor quantidade de membros stored até as dimensões esparsas com a maior quantidade de membros stored.
É claro que essa regra não se aplica a todos os modelos mas é recomendado que se comece dessa forma executando várias fases de testes com múltiplas configurações executandos os cálculos em cada uma delas até chegar na organização ótima do outline.

É possível também simular cálculos usando SET MSG ONLY no calc script. Um cálculo simulado oferece resultados que ajudam na análise da performance de um cálculo real baseado nos mesmos dados e no mesmo outline

Executando um cálculo simulado com um comando como o SET NOTICE HIGH, é possível verificar o tempo de cálculo de cada dimensão esparsa. Depois, executando o cálculo real em uma ou mais dimensões é possível estimar quanto tempo o cálculo vai demorar pois deve ser alguma coisa bem próxima do tempo do cálculo simulado.

Obviamente não considere esses passos como sendo o ciclo completo de otimização das aplicações Planning, considere como um bom começo.

segunda-feira, 9 de novembro de 2009

Utilitários para produtos Oracle/Hyperion

Precisando executar algumas tarefas relacionadas ao gerenciamento de filtros de segurança no Essbase, pesquisei bastante e  encontrei um utilitário chamado Hyperion Essbase Filter Mania Utility (ou Filter Mania para os íntimos) que atualmente está disponível no prórpio site da Oracle para download mas ela afirma não garantir o funcionamento correto dos utilitários listados, sendo que o uso deles fica por nossa conta e risco.

Nada que um bom teste em ambiente de desenvolvimento não resolva. Alguns utilitários são bem interessantes e vou descrever aqui os que gostei mais. Para ver os outros, basta acessar essa página com todos os utilitários para produtos Hyperion no site da Oracle (em inglês).

Hyperion Essbase Filter Mania Utility: Pode ser usado para exportar, importar ou alterar filtros de segurança do Hyperion Essbase com cliques, sem precisar programar ESSCMD ou MaxL. Para alterações recorrentes em filtros de segurança, esse utilitário pode te economizar horas de trabalho.Clique aqui para fazer o download do Hyperion Essbase Filter Mania Utility

Hyperion Essbase Log Reconciler: Esse utilitário é um script PERL compilado que reformata os logs do Essbase deixando os logs visualmente mais fáceis de ler. Clique aqui para fazer o download do Hyperion Essbase Log Reconciler

Hyperion SetCache Utility: Essa é interessante para o pessoal de infraestrutura que administra muitas aplicações. Esse utilitário monitora e ajusta o tamanho do Index Cache para todas as aplicações em um determinado servidor. É um conjunto de scripts que checam o tamanho dos Index Caches e dinamicamente cria outros scripts MaxL que alteram o valor do Index Cache de cada aplicação para o valor apropriado (90% do tamanho do arquivo de índice). Clique aqui para fazer o download do Hyperion SetCache Utility

Como eu disse, existem muitos outros utilitários, code snippets e aplicações de exemplo, não deixe de conferir a lista completa.

quarta-feira, 4 de novembro de 2009

O que é ser um bom consultor?

Por Nicola Mazzi em seu blog BI & CIA

Me lembro do meu primeiro (e único) processo de seleção em uma empresa de consultoria. Tivemos que fazer uma prova de conhecimentos gerais, uma prova de inglês, uma dinâmica de grupo, uma entrevista com um gerente e entrevistas com dois sócios. A cada etapa o número de candidatos ia diminuindo. Se para entrar no processo o meu currículo (engenharia em uma boa universidade do RJ) foi importante, na medida em que as etapas iam sendo superadas, percebia que cada vez mais ele deixava de ser relevante. As entrevistas buscavam avaliar sobretudo as habilidades não técnicas, como capacidade de argumentação, eloquência e relacionamento inter-pessoal, entre outras. Ao final do processo, o grupo selecionado era formado pelos candidatos com maior potencial para se tornarem bons consultores. E afinal de contas, o que é ser um bom consultor?

Continue lendo no blog BI & CIA

quinta-feira, 8 de outubro de 2009

Essbase com Perl e também Python

Fazendo algumas buscas sobre como implementar algumas rotinas de integração de dados em Perl para processos batch de cargas Essbase descobri essa pérola no Google Code.

Semelhante ao módulo Essbase.pm, está disponível também o módulo Essbase.py que permite enviar comandos para dll primária do MaxL (essmaxl.dll ou essmaxlu.dll) usando scripts em Python. No Google Code tem também scripts de exemplo de utilização do módulo Python para Essbase.

É óbvio que será necessário ter um interpretador Python na máquina onde o script será executado. Para testes de desenvolvimento sugiro baixar aqui o ActivePython.

O módulo CTYPES do Python, utlizado nesse módulo para Essbase é padrão nas versões 2.5 ou superior do Python. O módulo Essbase.py está disponível para Essbase versão 6.5 e 7.1 mas a versão 7.1 também é funcional no Essbase 9.3.1

quarta-feira, 16 de setembro de 2009

Certificações Oracle para BI e EPM

Muitos profissionais me perguntam sobre as provas de certificações de BI e EPM da Oracle. Para o pessoal de consultoria que já está no mercado há 8 ou 10 anos isso é uma "onda" relativamente nova pois há pouco tempo atrás havia um número muito pequeno de consultores "Hyperion" e as certificações não tinham o peso que têm atualmente, bastava que o profissional tivesse alguma experiência na ferramenta para ser considerado um especialista.

As coisas mudaram um pouco, as tecnologias envolvidas começaram a ser absorvidas por uma massa muito maior de profissionais e o conhecimento está sendo pulverizado, naturalmente. Na minha opnião, as certificações são um verdadeiro caçaníqueis não medem muita coisa, medem, só um pouco, o profissional técnico, mas não todos os outros skills necessários para construir um profissional completo, especialmente o consultor pois o perfil de consultoria envolve muito mais do que o mero conhecimento técnico. Mesmo assim, já que o "Sr. Mercado" quer as certificações, cabe a nós estudar para tê-las.

Se você ainda está pensando se vale à pena investir muitas horas de estudo para fazer uma prova dessas ou se já decidiu fazer mas não sabe muito bem por onde começar, aí vão algumas dicas:
  1. Avalie as provas de certificação existentes. Não existe certificação para todo e qualquer produto vendido pela Oracle. Lembre-se que a Oracle compra uma empresa a cada 40 minutos, mais ou menos, então não há certificação pra tudo, apenas para as tecnologias mais importantes.

  2. Tenha prioridades. Não adianta fazer uma lista enorme de certificações que você gostaria de ter pensando que vai fazer tudo em uma semana. Escolha uma, vá ate o fim e só depois parta para a próxima.

  3. Tenha foco. Escolha provas imediatamente relevantes para a sua carreira. Se daqui a algum tempo você mudar um pouco de área, faça outra que se encaixe à sua realidade atual. O investimento de tempo de estudo é grande o suficiente para você não precisar fazer provas "à toa" mas também é pequeno o suficiente para você poder fazer uma nova certificação sempre que sua carreira demandar.

  4. Busque orientação. Conversar com quem já fez a prova que você vai fazer ajuda bastante. Pequenas dicas, detalhes, "pegadinhas" podem te salvar.
Existem dois tipos de prova de certificação Oracle:
  • Non-proctored

    São as provas que você pode fazer a qualquer momento online sem supervisão pagando com seu cartão de crédito. É um bom caminho para começar se você nunca fez uma prova de certificação pois a tensão é menor e serve como preparação para a prova supervisionada. Claro que na hora de buscar uma contratação ou uma promoção, o peso dessas certificações é menor, mas ainda assim são válidas. Atualmente a Oracle disponibiliza apenas as provas abaixo nesse modelo:


    • 1Z0-007 Introduction to Oracle9i SQL®
    • 1Z0-011-JPN SQL (Japanese Only)
    • 1Z0-051 Oracle Database 11g: SQL Fundamentals I
    • 1Z0-200 11i E-Business Suite Essentials for Implementers
    • 1Z0-204 Oracle E-Business Suite R12: E-Business Essentials


Como você pode perceber, não há nenhuma prova Non-proctored para Fusion Middleware.
  • Proctored

    São as provas supervisionadas que devem ser feitas num local autorizado pela Oracle a aplicar a prova. Atualmente a empresa autorizada a aplicar os testes da Oracle é a PEARSON VUE. Para o pessoal de BI e EPM, destaque para as provas de Essbase, Planning, Financial Management (HFM) e BI+Veja no site da Oracle a lista de todas as certificações.
Agora que você já se considera preparado para fazer a sua prova, você deve se cadastrar no site da PEARSON VUE para agendar a sua prova.

Boa sorte.

terça-feira, 15 de setembro de 2009

10 Cuidados Para Transformar a Implantação de BI em um Caso de Sucesso

Em seu blog, Nicola Mazzi oferece 10 importantes cuidados para transformar a Implantação de BI em um caso de sucesso. Veja o post e visite o blog BI & Cia.


Top 10 Melhores Práticas em Projetos com Oracle Data Integrator

Esse post assume que o leitor tem alguma familiaridade com o Oracle Data Integrator.
O Oracle Data Integrator (ODI) é um produto muito poderoso quando utilizado corretamente. Infelizmente, alguns erros podem levar a resultados desastrosos em projetos de integração de dados. Nesse post abordo 10 melhores práticas para evitar os erros mais comuns em projetos com Oracle Data Integrator.
Boa Prática #1 – Entenda e Use Corretamente os Contextos e a Topologia
Os Contextos e a Topologia são algumas das características mais poderosas do ODI em tempo de design e em tempo de execução de artefatos e vários ambientes diferentes.
No ODI, todos os desenvolvimentos bem como as execuções são feitos sobre uma Arquitetura Lógica (schemas lógicos, agentes logicos), que se resolvem em um dado Contexto para uma Arquitetura Física (fonte de dados física/servidores de dados de destino/schemas e agentes de run-time do ODI). Os Contextos nos permitem chavear a execução dos artefatos de um ambiente (Contexto) para outro.
Agora, leia o parágrafo anterior novamente. Tenha certeza de que você compreendeu o conceito de Contexto, Arquitetuta Lógica e Arquitetura Física.
Dois erros comuns que são cometidos em relação aos Contextos:
  • Esquecer de mapear as arquiteturas física e lógica para um determinado Contexto. Isso é um erro de administração de Topologia que leva a falhas de execução em um dado Contexto. Para evitar isso, garanta que todos os recursos lógicos estão mapeados para recursos físicos nesse Contexto.
  • Um grande erro é forçar o Contexto quando não é necessário. Nas interfaces ou nas procedures, existem caixas de seleção com a lista de Contextos, defina como “default” ou “execution context”. A não ser que seja realmente necessário forçar o contexto por uma razão funcional, deixe as caixas de seleção como estiverem. São raros os casos onde é realmente necessário forçar o Contexto.
Resumindo: Garanta que o seu entendimento sobre Contextos e Topologia esteja sólido. Defina cuidadosamente a Topologia e o mapeamento dos Contextos. Evite forçar Contextos.
Boa Prática #2 – Design Independente de Contexto
Em vários tipos de artefatos do ODI (procedures, variáveis, interfaces, etc.) é possível adicionar código SQL. Um erro muito comum é inserir nomes de objetos qualificados, como no exemplo abaixo que faz um DROP na tabela TEMPO_001 num schema de staging:
DROP TABLE STAGING.TEMP_001
Isso é um “código dependente de contexto”. Se você executa esse código em ambiente de produção onde a área de staging se chama PRD_STG, seu código não funciona. Perceba que os nomes dos schemas são definidos na Topologia, e os contextos acessam o schema correto dependendo do contexto de execução. Nesse caso a pergunta é: Como usar isso no seu código?
Os Métodos de Substituição (OdiRef API) existem para disponibilizar no seu código os metadados armazenados no ODI tornando o código independente de contexto. Sendo assim, eles garantem que o nome qualificado da tabela em questão será gerado de acordo com o contexto onde o código está sendo executado.
Utilizando os Métodos de Substituição, o código genérico ficaria assim:
DROP TABLE <%odiRef.getObjectName("L", "TEMP_001","W")%>.
Consulte o Substitution Methods Reference Guide para mais informações sobre como utilizar essa API. O “expression editor” também ajuda muito.
Resumindo: Tão logo você comece a digitar um nome de schema, nome de database, nome de usuário ou qualquer informação referente à um servidor ou schema, pare, respire fundo e considere utilizar um Método de Substituição.
Boa Prática #3 – Utilize Procedures Apenas Quando Necessário
As procedures permitem a execução de ações bem complexas, incluindo comandos SQL. Além disso, elas permitem a utilização das conexões source e target e ainda suportam binding. Isso significa que é possível mover dados de um lado para o outro usando apenas procedures.
Os desenvolvedores que se sentem à vontade com código SQL ficam sériamente tentados a escrever código para fazer transformações e movimentação de dados ao invés de desenvolver interfaces.
Existem alguns problemas quanto à isso:
  • Procedures contém código manual que precisa sofrer manutenção manualmente.
  • Procedures não mantém referências com os outros artefatos ODI como datastores, modelos, etc., fazendo com que a manutenção seja muito mais complexa comparado às interfaces.
Procedures nunca devem ser utilizadas para mover ou transformar dados, essas operações devem ser feitas utilizando as interfaces.
Resumindo: Quando você começar a usar procedures para mover/transformar dados provavelmente você está fazendo uso inadequado das procedures e deveria usar interfaces no lugar delas.
Boa Prática #4 – Garantir Qualidade de Dados
Às vezes o líder de projeto de integração de dados não leva em conta a qualidade dos dados. Isso é um erro comum. O processo de integração pode estar movendo e transformando lixo e propagando esse lixo para outras aplicações.
O ODI permite que a qualidade dos dados seja garantida na fonte, (source) utilizando static checks ou então durante o processo de integração antes de gravar no destino (target) utilizando flow checks. Utilizando esses dois mecanismos de checagem de dados é possível garantir a qualidade dos dados.
Resumindo: Garanta a qualidade dos dados usando os dois métodos: static checks e flow checks. Qualidade de dados não é uma opção.
Boa Prática #5 – Capturar Erros em Packages
Numa package é possível sequenciar passos de execução. Cada passo em uma package é passível de falha por qualquer razão (source ou target fora do ar, muitos registros rejeitados em uma interface, etc.).
É necessário sempre procurar prever os possíveis erros em cada passo da package.
Resumindo: As setas de “OK” (verdes) nas packages precisam existir e as setas “KO” (vermelhas) são o que tornam a sua package à prova de balas.
Boa Prática #6 – Escolha o KM correto
A escolha do KM é crítica ao desenvolver uma interface pois define quais as features estarão disponíveis e afeta também a performance de uma package.
Alguns erros comuns na escolha do KM:
  • Começar com KM’s complexos: Desenvolvedores iniciantes que ter suas interfaces rodando rapidamente mas às vezes não levam em conta todos os requisitos para utilizar um KM. Escolhendo, por exemplo, um LKM de uma tecnologia específica pode não funcionar por uma configuração ou instalação incorreta do loader. Uma ecolha mais segura seria começar usando KM’s mais genéricos (como KM’s de SQL) que funcionam na maioria dos casos. Depois de desenvolver suas primeiras interfaces com esses KM’s é hora de mudar para KM’s mais específicos (estude as especificações antes!).
  • Interfaces com excesso de engenharia: KM’s com features extras causam um custo extra de performance. Por exemplo, executar inserts é mais rápido do que executar updates incrementais. Se sua interface deleta os dados no destino antes da integração, utilizar update incremental é “excesso de engenharia” e causará perda de performance. Utilize o KM que se encaixa adequadamente à sua necessidade.
  • De maneira similar, ativar ou desativar algumas fatures do KM pode adicionar passos extras degradando a performance. As opções default do KM são suficientes para executar o KM da forma como ele foi fornecido. Após executar o KM com as opções default é sempre bom revisar e checar se alguma opção pode ser alterada de acordo com a sua necessidade. A descrição do KM é sempre uma boa opção de documentação para entender e otimizar a utilização do KM.
Resumindo: Comece com os KM’s mais simples, não se utilize de “excesso de engenharia” com KM’s complexos ou ativando opções complexas e preste atenção às opções dos KM’s.
Boa Prática #7 - Customize Seus KMs
Knowledge Modules (KMs) é um poderoso framework utilizado em cada ponto de integração no ODI. Um grande número de KM’s está disponível para utilização. Eles suportam uma grande variedade de bancos de dados. Mesmo não sendo necessário na maiorias dos casos, alguns projetos podem ter casos de uso ou requerimentos que solicitem uma customização de KM.
Então, qual deve ser o momento de customizar um KM? A resposta é: Tão logo seja detectada uma operação que precisa ser executada em várias interfaces, por exemplo, rodar um comando no target para otimização da execução.
Não é recomendado começar um KM à partir de uma folha em branco. O caminho recomendado é encontrar um KM que esteja o mais próximo possível do comportamento desejado e à partir dele, customizar de acordo com a necessidade.
Resumindo: Quando uma operação é necessária em muitas interfaces, não tenha medo de customizar um KM e criar o seu próprio KM baseado em algum já existente.
Boa Prática #8 – Organize o Seu Projeto no Início
Gerenciamento e organização podem não parecer pontos críticos quando o assunto é integração de dados, mas são.
O ODI oferece muitas ferramentas que ajudam a organizar o desenvolvimento e o ciclo de vida do projeto: perfis de segurança, projetos de desenvolvimento, pastas, marcadores, versionamento, importação/exportação, impressão da documentação em PDF, etc.
Revise e utilize todas essas ferramentas e features para gerenciar o projeto. Defina a organização do projeto, a padronização de nomes e tudo o que pode evitar o caos depois que o projetos tiver iniciado. Faça isso desde o início do projeto.
Resumindo: Mantenha alta produtividade com o ODI, é melhor ter regras de organização baseadas nas features do ODI para evitar o desenvolvimento do caos.
Boa Prática #9 – Controle os Repositórios
No ODI, um repositório master pode ter vários repositórios work. Também é possível ter vários repositórios master, cada um com seu grupo de repositórios work. Cada repositório tem um ID definido na hora da criação do repositório.
Bem, um repositório não é um documento. É “a fonte da verdade”, é a referência central entre os artefatos do ODI.
Além disso, todo objeto é identificado por um ID interno que depende do ID do repositório. Esse ID interno identifica unicamente um objeto e é utilizado pelo sistema de importação do ODI. Dois repositórios com o mesmo ID possivemente contém objetos com o mesmo ID interno, o que significa o mesmo objeto para o ODI. Transferir objetos entre esses repositórios é como copiar arquivos com o mesmo nome entre diretórios e pode fazer com que o objeto seja substituído.
Garanta que todos os repositorios sejam criados com ID’s diferentes (mesmo em sites diferentes), e defina uma documentação para o processo de mover objetos entre repositórios utilizando import/export ou versionamento.
Resumindo: A multiplicação de repositorios deve ser feita sob estrito controle e planejamento (especialmente quanto à escolha do ID do repositório), e o gerenciamento de transferências de objetos utilizando import/export ou versionamento deve ser feito por vias formais.
Boa Prática #10 – Cuidado Com o Conteúdo dos Repositórios
O ODI armazena todas as informações num repositório de metadados em um banco de dados relacional. Sabendo disso é muito tentador começar a explorar as tabelas do repositório para conseguir informações “mais rápido”.
O repositório não implementa toda a lógica que existe na interface gráfica e também não implementa toda a lógica de negócios que existe no código Java. Construir, por exemplo, dashboards ou relatórios sobre o repositório é aceitável mas escrever dados ou alterar as informações do repositório é perigoso e deve ser deixado para operações do suporte técnico da Oracle.
Resumindo: Você faria isso no banco de dados do ERP da sua empresa? Também não faça com o repositório de metadados do ODI.