Desmistificando a Ciência de Dados

José Eduardo Fiamengui Júnior

jeduardounicamp@gmail.com

https://br.linkedin.com/in/joseeduardo-fiameng-fiamengui-2a34a361

https://oradeep.wordpress.com

Graduado em Tecnologia em Informática pela Unicamp, Pós-Graduado em Administração de Banco de Dados, Mba em Gestão estratégica pela FGV e professor do Centro de Treinamento Oracle no IBTA. Certificado Oracle OCE, ITIL e PSM. Atuou como DBA Oracle e SQL Server e Analista de Desempenho e Capacidade em empresas de diferentes setores dentre os quais financeiro, telecomunicações, segurança patrimonial, entre outras. Hoje é Arquiteto de Soluções de Business Intelligence na Câmara de Comercialização de Energia Elétrica (CCEE).

Objetivo:

Explicar os conceitos que fazem a ciência de dados estar impulsionando novos oportunidades de negócios. Bem como conhecer as principais ferramentas de mercado que estão sendo utilizadas para implementa-la.

Em que situação o tema é útil?

Útil para gestores, profissionais de TI e de negócios que buscam entender como a análise dos dados pode ajudar a alavancar oportunidades de negócio, mantendo sua empresa competitiva no mercado global.

Vivemos na era da informação e o mundo nunca gerou tantos dados como nos dias atuais. Informação é gerada a partir dos dados e esses, por sua vez, são gerados por seres humanos, máquinas, sistemas, celulares, e até mesmo seu refrigerador inteligente (IOT).

Nota (1): “Internet Of Things” (IOT): A “Internet das Coisas” se refere a uma revolução tecnológica cujo objetivo é conectar os itens usados no dia a dia à rede mundial de computadores. Cada vez mais surgem eletrodomésticos, meios de transporte e até mesmo tênis, roupas e maçanetas conectadas à Internet e a outros dispositivos, como computadores e smartphones. Quem se interessar pelo tema pode consultar
IoT: Samsung anuncia refrigerador inteligente com display de 21,5 polegadas (https://www.tecmundo.com.br/samsung/92504-iot-samsung-anuncia-refrigerador-inteligente-display-21-5-polegadas.htm)

O mundo gera informação exponencial e intuição apesar de relevante, não é o suficiente para que gestores tomem decisões importantíssimas para o futuro do negócio.

Nesse contexto, a ciência de dados, que não é um termo novo mas que ganhou importância com a tecnologia de Big Data e Hadoop (que serão conceituadas no decorrer deste artigo), a ciência de dados nos traz as ferramentas, métodos e tecnologias para analisar, visualizar e tomar decisões a partir dos dados. Vamos imaginar algumas possibilidades:

a) Dados de pedidos, vendas, relacionamento com clientes, processos internos, e-mails, redes sociais, entre outros gerados a cada dia por uma empresa.

Como esses dados se relacionam ? Como relacionar o mundo externo a empresa ? Como esses dados influenciam o comportamento dos consumidores no momento das compras? Como tomar decisões a partir do relacionamentos dessas variáveis em tempo adequado para que a empresa ganhe dinheiro?

A ciência de dados visa a responder todas essas perguntas para geração de novas oportunidades de negócio.

Vamos testar uma possibilidade prática sobre o assunto. Imagine que você tenha alugado um carro nos EUA (Nova Iorque), e que seu desejo, após passar por algumas cidades e chegar a Niagara Falls (para quem gostava de desenho, vale lembrar do Pica-pau), Niagara é o rio (fronteira) entre EUA e Canadá. Ao pegar o carro você assinou um contrato que permitia entregá-lo em qualquer outra cidade em que houvesse uma unidade da empresa locadora, porém não se atentou para o fato de que no contrato havia uma cláusula que regulamenta que o carro não poderia ultrapassar as fronteiras dos EUA. Seu passeio foi impossibilitado L. Uma solução plausível seria a empresa, a partir do cruzamento dos dados de GPS do carro, enviar-lhe uma mensagem no celular avisando que, pelas normas do contrato atual, você não poderia ultrapassar as fronteiras em virtude de questões legislativas entre os países, porém por um valor $$  passado no cartão de crédito, a travessia da fronteira seria possível e evitaria problemas com policiais / autorizações no Canadá?

Amplie isto, para áreas como varejo, setores financeiros que possuem dados que lhes permitam verificar o comportamento padrão de compras de seus clientes e conseguem detectar fraudes com cartões de crédito antes da perda de dinheiro pela instituição e tempo/transtornos para o cliente, posts em redes sociais e mídias que detectem uma necessidade de compra/desejos de produtos.

A junção destas informações cria diversas novas oportunidades de desvendar o comportamento das pessoas, seus interesses e suas interações.

O que permite que a ciência de dados consiga avaliar quase que em tempo real acontecimentos como o do exemplo ?

Novos métodos, tecnologias e processos são necessários para que possa extrair informação valiosa da imensidão de dados (Big Data).

Nota  (2): “Quem pretende investir em uma nova carreira, segundo o McKinsey Global Institute, por meio do “Big Data and Data Science Report 2015”: Até 2018, haverá um déficit superior a 200 mil profissionais com habilidades de análise de dados e mais de 1,5 milhão de gerentes e analistas que saibam usar Big Data e Ciência de Dados de forma efetiva para tomada de decisões.”

O que é Big Data ?

Cerca de 90% de todos os dados gerados no planeta, foram produzidos nos últimos 3 anos e aproximadamente 80% deles são não-estruturados ou estão em diferentes formatos, o que dificulta a análise. Modelos de análise de dados estruturados possuem limitações quando precisam tratar grandes volumes de dados.

Big Data se baseia em 4 V’s : velocidade, volume, variedade e veracidade. Big Data é um termo amplamente utilizado na atualidade para nomear conjuntos de dados muito grandes ou complexos e que, por isso mesmo, os aplicativos de processamento de dados tradicionais ainda não são capazes de lidar.

Big Data é o meio que possibilita à Ciência de Dados gerar novas oportunidades de negócios. Reforço a definição de Big Data com a famosa imagem da IBM sobre IBM Big Data & Analytics Hubs:

Figura 1 - Art

Figura 1: IBM Big Data & Analytics Hubs (Fonte: http://www.ibm.com)

Uma arquitetura de Big Data só conseguirá trabalhar seguindo os 4 V´s, utilizando-se de tecnologias, e de novos conceitos que englobam uma combinação de ferramentas como:

1-) Tecnologias

Figura 2 - Art:  é uma plataforma de software em Java de computação distribuída voltada para clusters e processamento de grandes massas de dados, oferecendo dois serviços importantes: armazenamento de qualquer tipo de dados a um custo baixo e em grande escala  e realização rápida de análises de dados complexos a partir do  MapReduce e do GoogleFS (GFS). Trata-se de um projeto da Apache de alto nível, que está sendo construído por uma comunidade de contribuintes utilizando a linguagem de programação Java. O Yahoo! tem sido o maior contribuinte do projeto, utilizando essa plataforma intensivamente em seus negócios.

O framework do Apache Hadoop é composto dos módulos seguintes: Hadoop Common, quecontém as bibliotecas e arquivos comuns e necessários os módulos seguintes:

Hadoop Distributed File System (HDFS): sistema de arquivos distribuídos que armazena dados em máquinas dentro do cluster, sob demanda, permitindo uma largura de banda muito grande em todo o cluster.

Hadoop Yarn: trata-se de uma plataforma de gerenciamento de recursos responsável pelo gerenciamento dos recursos computacionais em cluster, bem como pelo agendamento desses recursos.

Hadoop MapReduce: modelo de programação para processamento em larga escala.

Todos os módulos do Hadoop são desenhados com a premissa fundamental de que falhas em hardware são comuns e rotineiras, sejam elas máquinas individuais ou um conjunto inteiro de máquinas em racks, e devem, portanto, ser automaticamente tratadas pelo framework; e/ou

Figura 3 - Art: é um framework para processamento de Big Data construído com foco em velocidade, facilidade de uso e análises sofisticadas. Está sendo desenvolvido desde 2009 pelo AMPLab da Universidade de Califórnia em Berkeley e em 2010 seu código foi aberto como projeto da fundação Apache.

O Spark tem muitas vantagens se comparado às outras tecnologias de Big Data e do paradigma MapReduce, como o Hadoop e o Storm.

Inicialmente, o Spark oferece um framework unificado e de fácil compreensão para gerenciar e processar Big Data com uma variedade de conjuntos de dados de diversas naturezas (por exemplo: texto, grafos etc), bem como de diferentes origens (batch ou streaming de dados em tempo real).

O Spark permite que aplicações em clusters Hadoop executem até 100 vezes mais rápido em memória e até 10 vezes mais rápido em disco, além de desenvolver rapidamente aplicações em Java, Scala ou Python. Além disso, vem com um conjunto integrado de mais de 80 operadores de alto nível e pode ser usado de forma interativa para consultar dados diretamente do console.

Além das operações de Map/Reduce, suporta consultas SQL, streaming de dados, aprendizado de máquina e processamento de grafos. Desenvolvedores podem usar esses recursos no modo stand-alone ou combiná-los em um único pipeline.

Não se engane ou se limite a pensar que a escolha de um elimina o outro, pois grandes players já têm encontrado boas soluções juntando ambas e agregando as vantagens de cada uma delas.

2-) Conceitos

Business Analytics: prática de analisar dados para suportar a tomada de decisões. Muito provavelmente você já ouviu essa definição para outros termos como, por exemplo, Data Mining, BI Tradicional, ou até mesmo ciência de dados. O que ocorre é que as empresas estão realizando operações diferentes e utilizando o mesmo nome. BA é a capacidade de coletar dados praticamente em tempo real e gerar mecanismos que possam prever o comportamento do cliente a partir desses dados gerados. São ações voltadas para prever o futuro. Alguns exemplos para visualizarmos como isso acontece no mundo real são: quando você inicialmente entra em um site para verificar um produto “Tênis”, olha, não compra/compra, muda de site para verificar notícias e imediatamente começam a aparecer outras páginas mostrando promoções de produtos como Tênis, Sapatos; ou quando gigantes do mercado, a exemplo do NetFlix, que recomendam filmes/documentários baseados em suas últimas escolhas. Para isso, é necessário aplicar técnicas de ciência de dados, estatísticas e ainda contar com o famoso Big Data. Aprofundando um pouco mais nossa definição BA, diríamos que se trata do estudo dos dados através de ciência de dados e análise de operações, o que compreende formação de modelos preditivos, técnicas de otimização e comunicação desses resultados para clientes e executivos com objetivo claro de resolver problemas de negócio; e

Nota (3): Data Mining ou Mineração de Dados é o processo de explorar grandes quantidade de dados à procura de padrões consistentes, como regras de associação ou sequências temporais, para detector relacionamentos sistemáticos entre variáveis, identificando, assim, novos subconjuntos de dados. O termo é inglês criado por volta de 1990.

Machine Learning: é um conjunto de regras e procedimentos que permite que os computadores possam agir e tomar decisões baseadss em dados ao invés de ser explicitamente programados para realizar uma determinada atividade. Fácil entender este conceito lembrando do filme “Eu, Robô”. Programas de Machine Learning também são projetados para aprender e melhorar ao longo do tempo quando expostos a novos dados. Machine Learning tem estado no centro de muitos avanços tecnológicos nos últimos anos, como carros que dirigem sozinhos, sistemas de reconhecimento de voz, ou um simples e-mail separando SPAMs em sua caixa. Diversas técnicas diferentes podem ser utilizadas para o aprendizado de máquina, algumas delas são:

a) aprendizagem supervisionada (Supervised Learning): na qual o programa é “treinado” sobre um conjunto de dados pré-definidos. Baseado no treinamento com os dados pré-definidos, o software pode tomar decisões precisas;

b) modelo gerador (Generative Model):  usado para gerar valores de dados quando alguns parâmetros são desconhecidos. Modelos geradores são usados em Machine Learning para qualquer modelagem de dados diretamente ou como um passo intermediário para a formação de uma função de densidade de probabilidade condicional;

c) apredizagem profunda (Deep Learning): que muitas vezes usa redes neurais artificiais para gerar modelos. Técnicas de Deep Learning, foram muito bem sucedidas na resolução de problemas de reconhecimento de imagem devido a sua capacidade de escolher as melhores características.

Há outras  técnicas, mas para quem quer se aprofundar e ver algo neste nível em funcionamento, dê uma olhada no IBM Watson (https://www.ibm.com/br-pt/marketplace/watson-analytics), que tem revolucionado o mercado ao ponto de levar a pensar que algumas profissões estão em risco por conta da utilização dessa tecnologia.

Nota  (4): “O programa COIN (Contract Intelligence), interpreta acordos de empréstimo commercial, atividade que normalmente consumia 360 mil horas de advogados por ano. “ http://conteudo.startse.com.br/mundo/lucas-bicudo/software-do-jpmorgan/

DataOps que é uma combinação de ferramentas e aprimoramentos de processos que permitem análise de dados de resposta rápida em um alto nível de qualidade. O DataOps adapta-se mais facilmente aos requisitos dos usuários, mesmo quando eles evoluem, e, em última análise, apoia uma melhor tomada de decisão baseada em dados. O DataOps é composto por:

Figura 4 - Art

Figura 2: DataOps herança do Devops e Ágil (Fonte: https://en.wikipedia.org/wiki/Dataops)

a) agile: é uma filosofia e visa a nortear atitudes e comportamentos. Ser ágil é focar na entrega de valor ao negócio, permitindo que todos participem da construção do resultado desde a etapa de planejamento, criando um ambiente no qual todos sejam responsáveis também pelo gerenciamento de atividades e pela entrega do projeto. A partir dessa filosofia para desenvolvimento de software, foram criados diversos frameworks, o mais popular é o SCRUM,  que deve seguir “eventos” como Reunião diária (Scrum daily), Sprint (Ciclo de desenvolvimento), entre outros encontros formais/informais e artefatos gerados no processo.

b) DevOps: é o alinhamento do time de desenvolvimento com o time de operações em relação a processos, ferramentas e responsabilidades, visando a acelerar as entregas em produção com um elevado grau de qualidade. Enquanto o desenvolvimento ágil (Agile?) aproximou as equipes de desenvolvimento do negócio, reduzindo gaps entre essas áreas, o Devops traz agilidade para entregas, reduzindo gaps entre desenvolvimento e operações.

Figura 5 - Art

Figura 3: Ilustração mostrando como são as intersecções entre Desenvolvimento (Engenharia de Software), Operações e Controle de Qualidade. (Fonte: https://pt.wikipedia.org/wiki/DevOps)

c) Lean Manufacturing: trata-se dos processos de controles estatísticos que asseguram a qualidade e fornecem feedback prévio às não-conformidades.

Agora que já vimos os conceitos e tecnologias necessárias para suportar a ciência de dados, vamos diferenciar a ciência de dados do BI tradicional. Muitas organizações já possuem implementações de BI e investiram milhões em desenvolvimento contendo diversas análises que já são utilizadas para tomada de decisão. Então, qual o objetivo de um BI?

Business Inteligence: o objetivo do BI é converter dados brutos em insights de negócio para que os líderes empresariais possam usar para tomada de decisão. Necessitando de dashboards, visualizações ou relatórios a partir de conjuntos médios de dados estruturados de negócio,  você pode usar ferramentas de BI e métodos para isso. BI é composto de:

1. Dados internos: dados coletados dentro da organização, gerados por colaboradores, gestores, sistemas e stakeholders.

2. Tecnologias e ferramentas: OLAP (online analytical process), ETL (extract, transforming e load) e Data Warehousing.

Nota (5): Online Analytical Process ou Processamento Analítico Online (OLAP): é um conceito de interface com o usuário que proporciona a capacidade de ter ideias sobre os dados, permitindo analisá-los profundamente sob diversos ângulos.

Nota (6): Data WareHouse ou Armazém de dados (DW): é um depósito de dados que serve para armazenamento de informações detalhadas, criando e organizando relatórios por meio de de históricos que são usados posteriormente pela empresa para a tomada de decisão.

OLAP e o Data Warehouse estão destinado a trabalharem juntos, enquanto o DW armazena as informações de forma eficiente. O OLAP deve recuperá-las com a mesma eficência e rapidez. As duas tecnologias se complementam, ao ponto de que, para um DW ser bem sucedido, deve levar em consideração o que se deseja apresentar já na sua concepção.

Insights em BI são gerados normalmente a partir de dados de negócios estruturados. As soluções de BI são principalmente construídas com base em dados transacionais gerados dentro da organização. São exemplos as transações bancárias e os dados coletados durante uma venda. As informações que você pode obter do BI:

Dados de Serviços de cliente: Que áreas de negócios estão causando maior tempo e espera de nossos usuários?

Vendas: Que estratégias de marketing são mais efetivas?

Dados de empregados: Que colaboradores são mais produtivos?

Basicamente oportunidades de identificação descritiva / diagnóstica sobre determinada atividade / produto / serviço:

Você possui condições de analisar seus dados da seguinte forma:

O que aconteceu: na venda de produtos (após dada uma promoção de vendas feita pela time de marketing) ?  ou  Por que isso aconteceu ?

Ciência de Dados: dentro da organização, a ciência de dados tem a mesma finalidade que o BI, converter dados brutos em insights de negócios que os líderes empresariais possam usar para tomada de decisão.

copypasteimage

Buscando a junção de dados estruturados (organização) e não estruturados (redes sociais ou dados externos a organização) com análise em tempo real, este é o momento de pensar na ciência de dados que centrada em negócio é uma disciplina multidisciplinar integrando os seguintes elementos:

d) Análise quantitativa: modelagem matemática, análise estatística, previsões e simulações.

e) Skills de programação: habilidades em programação para analisar dados brutos e torná-los acessíveis aos usuários de negócio.

Conhecimento de negócio: conhecimento do ambiente de negócio, para melhor compreender a relevância dos resultados encontrados.

Fonte 7 - Art

BI Tradicional X Ciência de Dados (Fonte: O Autor 2017)

Insights de ciência de dados podem ser retirados de conjuntos de dados estruturados, semi-estruturados e não estruturados. Essas soluções não se limitam aos dados transacionais (vendas, marketing e atendimento ao cliente da organização), já que a ciência de dados transcende isso por utilizar-se de mídias sociais (Twiter, Facebook, Linkedin, Instagram) e/ou dados gerados por máquinas: automóveis ou refrigeradores e arquivos de áudio e vídeos.

Fonte 8 - Art

Fonte: Autor (2017)

Agora que entendemos o que a ciência de dados nos possibilita a mais do que uma plataforma tradicional de BI, vamos entender um pouco do papel do cientista de dados que é o profissional necessário para analisar os dados gerando novas oportunidades de negócio.

O cientista de dados deve ter bons conhecimentos em Matemática e Estatísticas, Ciências da Computação (DataOps, Devops, Frameworks de Gerenciamento de Projeto, Infraestrutura) e Conhecimento apropriado de negócio. Já é movimento de muitas empresas realizar a integração entre áreas de TI e de negócio diminuindo assim a documentação e aumentando a entrega de valor ao negócio, os movimentos normalmente são ensinar TI ao negócio ou ensinar negócio a TI.

O profissional hoje conhecido como cientista de dados emprega método científico para exploração dos dados, formação de hipóteses e testes de hipóteses (através de simulação e modelagem estatística). Cientista de dados com foco de negócios geram conhecimentos valiosos, muitas vezes, explorando padrões e anomalias em dados de negócios.

Vamos detalhar um pouco mais as ferramentas que suportam o trabalho do cientista de dados, lembrando que estamos colocando uma explicação das ferramentas amplamente utilizadas pelo mercado, porém há outras que podem se adequar melhor às necessidades de cada  empresa:

BigData Analytics com R: é uma linguagem e também um ambiente de desenvolvimento integrado para cálculos estatísticos e gráficos.

O R disponibiliza uma ampla variedade de técnicas estatísticas e gráficas, incluindo modelação linear e não linear, testes estatísticos clássicos, análise de séries temporais (time-series analysis), classificação, agrupamento e outras. O R é facilmente extensível através de funções e extensões, e a comunidade R é reconhecida pelos seus contributos ativos em termos de pacotes. Muitas das funções padrão do R são escritas no próprio R, o que torna fácil para os usuários seguir as escolhas algorítmicas feitas. Para tarefas computacionais intensivas, os códigos C, C++, e Fortran podem ser ligados e chamados durante a execução. Usuários experientes podem escrever código C ou Java para manipular diretamente objetos R.

Microsoft Azure Machine Learning: utilizado para criar modelos de aprendizado de máquina de forma simples e visual.

O Microsoft Azure contém muitos módulos poderosos de aprendizado de máquina e de manipulação de dados. Felizmente, a análise e manipulação de dados no Aprendizado de Máquina do Azure podem ser estendidas com R. Essa combinação fornece a escalabilidade e a facilidade de implantação do Aprendizado de Máquina do Azure com a flexibilidade e análise profunda de R. A junção dessas ferramentas trará formas de fazer a variação de previsão de vendas de itens sazonais, determinação de níveis de estoque ideal e a previsão de variáveis macroeconômicas. A previsão normalmente é feita com modelos de série de tempo.

Big Data Real Time Analytics Spark: Inicialmente, o Spark oferece um framework unificado e de fácil compreensão para gerenciar e processar Big Data com uma variedade de conjuntos de dados de diversas naturezas (por exemplo: texto, grafos, etc), bem como de diferentes origens (batch ou streaming de dados em tempo real). O Spark permite que aplicações em clusters Hadoop executem até 100 vezes mais rápido em memória e desenvolver rapidamente aplicações em Java, Scala ou Python. Além disso, vem com um conjunto integrado de mais de 80 operadores de alto nível e pode ser usado de forma interativa para consultar dados diretamente do console.

Tableau: é uma poderosa ferramenta para construção de dashboards e análise de dados, possui integração com R nativa e é intuitiva aos usuários de TI ou negócio que possuam conhecimentos dos dados. Possui uma ampla variedade de conectores para busca dos dados possibilitando exploração ilimitada e com a construção de painéis iterativos aproveita a habilidade natural dos usuários para detecção de padrões visuais com rapidez, revelando novas oportunidades de negócio. A forma como o Tableau trabalha com sua tecnologia VizQL off-line ou em memória permite a extração de grandes quantidades de dados combinando avanços de computação gráfica e banco de dados para análise de grandes conjuntos de dados em seu laptop.

Figura 6: Tableau (Fonte: https://www.tableau.com/pt-br/products/desktop)

Conclusão

Segundo o Guia Salarial 2017 divulgado pela Robert Ralf, Big Data está revolucionando o mercado e as empresas estão buscando profissionais que possuam conhecimento em TI e Estatística para que consigam traduzir dados de negócio em informações estratégicas para a tomada de decisão. O cientista de dados, conforme mencionado no decorrer do nosso artigo é o profissional que mescla estes conhecimentos.

A ciência de dados é uma área muito abrangente e está entre as tendências de movimento no mundo da tecnologia, pois há muito a ser explorado com a quantidade de dados que se tem disponível, utilizando principalmente os conceitos e ferramentas explanadas no decorrer deste artigo.

Referências Bibliográficas

[1] DataScience Academy, http://www.datascienceacademy.com.br/

[2] Microsoft Azure, https://docs.microsoft.com/pt-br/azure/machine-learning/

[3] Ciência de Dados, www.cienciadedados.com

[4] IBM, https://www.ibm.com/br-pt/marketplace/watson-analytics

[5] InfoQ, https://www.infoq.com/br/articles/apache-spark-introduction

[6] BI na era do big data para cientista de dados: Loh, Stanley

[7] The New Era of Enterprise Business Intelligence: Biere, Mike

Anúncios
Publicado em Uncategorized | Publicar um comentário

Framework Scrum

Objetivo:

O objetivo deste breve artigo é descrever um pouco do Scrum e dar algumas dicas para quem está se preparando para a certificação Scrum Master (PSM1).

Framework SCRUM

O framework Scrum é um conjunto de valores, princípios e práticas que fornecem a base para que a sua organização adicione suas práticas particulares de engenharia e gestão e que sejam relevantes para a realidade da sua empresa.

O Scrum foi desenvolvido para que seja utilizado em qualquer projeto de TI. Ele aproxima áreas de negócio e time de desenvolvimento, e desta forma, a expectativa é que os softwares produzidos atendam as expectativas dos usuários.

O Framework Scrum é baseado em Papéis, Eventos e Artefatos, explicados abaixo:

Scrum

Scrum

Papéis (Scrum Team)

Product owner: é o ponto central com poderes de liderança sobre o produto. Ele é o único responsável por decidir quais recursos e funcionalidades serão construídos e qual a ordem que devem ser feitos.
Scrum master: é responsável por ajudar a todos os envolvidos a entender e abraçar os valores, princípios e práticas do Scrum. Age como um Coach, executando a liderança do processo e ajudando a equipe Scrum (e o resto da organização) a desenvolver sua própria abordagem do Scrum, que tenha a melhor performance, respeitando as particularidades da organização. O Scrum master também tem um papel de facilitador. Ele deve ajudar a equipe a resolver problemas e fazer melhorias no uso do Scrum. Ele também é responsável por proteger a equipe contra interferências externas e assume um papel de liderança na remoção de impedimentos que podem atrapalhar a produtividade.
Development Team: é simplesmente a junção de todas as pessoas que trabalham no processo e desenvolvimento de Software (Arquiteto, Testers, Analista de Requisitos, Desenvolvedores, …) na metodologia tradicional em uma equipe multidisciplinar, e que são responsáveis pela concepção, construção e testes do produto.A equipe deve ser auto-organizada e auto- conduzida, normalmente possui entre 4 e 9 pessoas.
Eventos

Sprint planning: O product backlog pode representar muitas semanas ou até meses de trabalho, o que é muito mais do que pode ser concluído em um único sprint. Para determinar quais os subconjuntos de itens do Product Backlog mais importantes para construir no próximo sprint, o product owner, junto com o Scrum master e Development team devem realizar o Sprint Planning. A duração de um Sprint Planning é entre 4 e 8 horas considerando uma Sprint de 1 mês.
Daily scrum: Todos os dias, idealmente no mesmo horário e preferencialmente mesmo local, os membros da equipe de desenvolvimento devem realizar uma reunião com tempo definido (15 minutos ou menos), chamado Daily Scrum. Também conhecida como StandUp Meeting.
Sprint retrospective: tem como objetivo verificar necessidades de adaptações no processo de trabalho.
Sprint: são iterações ou ciclos de até um mês. O trabalho realizado em cada sprint deve criar algo de valor tangível para o cliente. Sprints são timeboxed(duração fixa) para que tenham sempre um início e fim data fixa, e, geralmente, todos eles devem estar com a mesma duração.
Sprint review: realizada ao final da Sprint e tem como objetivo verificar e adaptar o produto que está sendo construído.Trata-se da apresentação do produto desenvolvido aos Stakeholders.
Artefatos

Product backlog: é um documento que está constantemente evoluindo. Os itens podem ser adicionados, excluídos e revisto pelo Product Owner por conta de mudanças nas condições de negócios, ou conforme a compreensão da equipe Scrum sobre o produto aumenta. O product owner e os stakeholders são responsáveis pela priorização do Product backlog.
Sprint backlog: contém todo o trabalho que será executado em uma Sprint.
Definition of done: A DoD é um acordo formal doScrumTeam que define claramente quais são os passos mínimos para a conclusão de um item potencialmente entregável. Serve como um contrato entre o ScrumTeam e o Product Owner, garantindo que todo o produto gerado pelo projeto estará dentro dos padrões de qualidade estabelecidos entre eles. É uma forma de se buscar a excelência, especialmente em um cenário multi-iterativo.
Dicas para estudar para a certificação Scrum Master (PSM1):

Prestar muita atenção nos eventos Timeboxed, os tempos são cobrados na certificação PSM 1 e perguntas na negativa (pegadinhas).
A prova só está disponível no idioma inglês, por isso é adequado estudar e acostumar com os termos em inglês
Há simulados na internet onde encontra-se perguntas muito parecidas a das provas:
http://www.knowledge21.com.br/simulado-de-scrum-para-a-prova-de-certificacao-da-scrum-alliance-certified-scrummaster/

http://www.gp4us.com.br/simulados-para-certificacao-scrum/

Site para a prova:
scrum.org
85% (quantidade de acertos)
Na própria página do scrum.org há um simulado de teste para a prova (com perguntas reais)

https://www.scrum.org/assessment-launch/start-psm-i
60 minutos pra responder 80 questões
Valor: $150,00
Leia o Scrum Guide ele contém tudo o que cairá na prova:
http://www.scrumguides.org/docs/scrumguide/v2016/2016-Scrum-Guide-US.pdf

Recomendo a leitura de: Scrum a arte de fazer o DOBRO do trabalho na metade do TEMPO (Autor: Jeff Sutherland que é um dos co-criadores do Scrum), a venda pelo Kindle.
Detalho um pouco mais sobre o Scrum em:
https://oradeep.wordpress.com

Publicado em Uncategorized | Publicar um comentário

COBIT 4.1 Foudation – Governança Corporativa

COBIT (Control Objectives for Information and related Technology) – Governança Corporativa de TI
By José Eduardo Fiamengui Jr – Rumo a certificação COBIT
1-) Foco da Governança Corporativa
Alinhamento Estratégico – focado em assegurar a integração entre os planos estratégicos de negócios e de TI, na definição, manutenção e validação dos propósitos de TI, e no alinhamento das operações de TI com as operações corporativas.
Entrega de Valor – executando propostas de valor através de um ciclo de entrega, assegurando que as entregas de TI atendem aos benefícios estabelecidos na estratégia e, principalmente, na otimização dos custos, comprovando o valor essencial de TI.
Gerenciamento de Recursos – a otimização e gerenciamento dos investimentos nos recursos críticos de TI: processos, aplicações, infra-estrutura e informação. Principalmente relativo à otimização do conhecimento e da infra-estrutura.
Gerenciamento de Risco – requerido com uma consciência pelos executivos seniores da corporação, o entendimento claro da vontade da organização por risco, a transparência sobre o significado dos riscos para a corporação e as responsabilidades do gerenciamento de riscos.
Medição de Desempenho – rastrear e monitorar a implementação da estratégia, conclusão de projetos, utilização de recursos, execução dos processos e entrega de serviços, utilizando, por exemplo, “balanced scorecards” (BSC) que traduzam a estratégia em ações para atingir as metas mensuráveis, além da verificação convencional.

2-) Estrutura do COBIT
Cobit1Figura 1
Detalhando COBIT
3-) Critérios da Informação
Para atender aos objetivos de negócio da organização, a informação precisa seguir determinados critérios de controle, que são denominados como os critérios da informação. São dividos em 3 categorias: Qualidade, Segurança e Fiduciary.

Efetividade ou Eficácia (Qualidade): A informação entregue precisa ser relevante e pertinente, entregue em tempo, de maneira correta, para a pessoa correta, de forma consistente e utilizável.

Eficiência (Qualidade): A informação entregue deve fazer o melhor uso possível dos recursos da organização. Deve-se buscar a máxima produtividade com o menor custo.

Confidencialidade (Segurança): A informação deve ser protegida para evitar divulgação indevida e ser conhecida apenas pelas pessoas que possuem permissão para isso.

Integridade (Segurança): A informação precisa ser correta, completa e consistente.

Disponibilidade (Segurança): A informação deve estar disponível sempre que for necessária para o negócio.

Conformidade (Fiduciary): A informação deve estar de acordo com as leis, regulamentos e contratos que afetem o negócio de alguma forma. As regras internas da empresa também são consideradas.

Confiabilidade (Fiduciary): A informação entregue para a gerência deve ser confiável para a tomada de decisão negocial.
Resumindo, as informações precisam ter qualidade, ser seguras, atender às leis e precisam ser confiáveis.

4-) COBIT – Componentes
Framework:
 Faz um link entre a TI e o negócio
 Organiza os processos e atividades de TI em um modelo mundialmente aceito
 Identifica os maiores recursos de TI a serem gerenciados
 Defini os processos a serem implementados
 Ajuda a focar no processo mais importante

Objetivos de Controle (Processos):
 São os Processos a serem implementados:

Planejar e Organizar: cobre o uso de informação e tecnologia e como isso pode ser usado para que a empresa atinja seus objetivos e metas. Ele também salienta que a forma organizacional e a infraestrutura da TI devem ser consideradas para que se atinjam resultados ótimos e para que se gerem benefícios do seu uso.
Adquirir e implementar: cobre a identificação dos requisitos de TI, a aquisição de tecnologia e a implementação desta dentro dos processos de negócio da companhia. Esse domínio também lida com o desenvolvimento de um plano de manutenção que a companhia adota para prolongar a vida do sistema de TI e de seus componentes.

Entregar e Suportar: foca aspectos de entrega de tecnologia da informação. Cobre a execução de aplicações dentro do sistema de TI e seus resultados, assim como os processos de suporte que permitem a execução de forma eficiente e efetiva. Esses processos de suporte também incluem questões de segurança e treinamento.

Monitorar e Avaliar: lida com a estimativa estratégica das necessidades da companhia e avalia se o atual sistema de TI atinge os objetivos para os quais ele foi especificado e controla os requisitos para atender objetivos regulatórios. Ele também cobre as questões de estimativa, independentemente da efetividade do sistema de TI e sua capacidade de atingir os objetivos de negócio, controlando os processos internos da companhia através de auditores internos e externos.
Management Guidelines
Define as entradas, atividades dos processos e saídas que cada processo irá gerar. Além disso, se preocupa em definir as responsabilidades de cada atividade do processo através da matriz RACI(Responsible, Accountable, Consulted e Informed). O COBIT é uma biblioteca voltada a indicadores, e as orientações de gerenciamento sugerem que para cada processo sejam criados indicadores de desempenho de TI e de negócio. O COBIT sugere indicadores de negócio, pois cada processo de TI existe para suportar um ou mais processos de negócio.

Estrutura de cada processo:
Processo

Cobit2

Modelos de Maturidade
E no final da descrição de cada processo há um modelo de avaliação de maturidade do processo, que é dividido:
Níveis
i) Inexistente (0): não se aplica processo de gestão
ii) Inicial (1): os processos são ad hoc e desorganizados
iii) Repetitivo mas intuitivo(2) (não documentado): os processos seguem um padrão definido
iv) Definido (3) (escrito e comunicado): processos documentados e comuicados
v) Gerenciado e Medido (4): Processos são monitorados e mensurados
vi) Otimizado (5): Melhores práticas são seguidas e automatizadas

Os modelos de maturidade são importantes para saber qual grau de maturidade de um dado processo na organização, além de se poder estabelecer através dele onde se quer chegar.

5-) COBIT – O Integrador
O COBIT não se preocupa em COMO IRÁ SER IMPLEMENTADO, e sim em, O QUE SERÁ IMPLEMENTADO.

Cobit3

Figura 2

Com isso é entram os demais frameworks como ITIL, ISO27001, entre outros, que se preocupam em como IMPLEMENTAR … . É um integrador de todos estes Frameworks.
6-) Conclusão:
Governança Corporativa: Instrumento do CIO para gerenciar a TI (Tecnologia da Informação) em organizações e base para a implementação da Governança Corporativa.
Principais Objetivos: Eliminar riscos e perdas e Agregar valor às organizações.
Principais Beneficios: TI mais transparente e Maiores orçamentos.

7-) Referencias Bibliográficas
[1] http://www.governancadeti.com/2010/08/uma-visao-geral-do-cobit/
[2] http://www.trainning.com.br/download/COBIT_41.pdf
[3] http://books.google.com.br/books?id=u4CiQmnBWucC&pg=PA7&lpg=PA7&dq=cobit+materials&source=bl&ots=I7zEDnLJdB&sig=XfErCBURHMeJAD-yX7wSflGW1Ns&hl=en&sa=X&ei=W5W0UJrJH5Lw8ASxxoH4Ag&ved=0CG8Q6AEwCDge#v=onepage&q=cobit%20materials&f=false

Publicado em Cobit | Publicar um comentário

Capacity Planning (Parte 2)

Capacity Planning (Continuação)

Agora que conhecemos a teoria para a realização de um projeto capacity planning, vamos analisar quais as métricas devem ser coletadas para cada camada que constitui o sistema computacional.
Primeiramente, temos que definir thresholds que indicam níveis de conforto satisfatórios, por exemplo 50 GB de redo diário. Ultrapassando esse nível, os tamanhos dos arquivos têm de ser reajustados para manter o tempo de leitura recomendado pelo Oracle (15 a 30 min).
Depois disso, será necessário colidir as métricas do Oracle com as métricas coletadas pelos outros componentes do sistema computacional. As métricas que devem ser coletadas são:
i) CPU: utilização, run-queue, context switches (voluntárias e involuntárias), interrupções, system calls;
ii) Storage: Número de IOPS/second, Queue Depth, Tamanho de IOPS, Tempo de resposta, throughput;
iii) Filesystem: crescimento e tempo de resposta;
iv) Memória: memória física consumida, swap in/out e Page faults;
v) Rede: Throughput e detalhes do netstat –s e kstat; e
vi) Servidor de aplicação (supondo IIS): time-taken, bytes-sent, bytes-received, status, cs-uri-stem, cs-uri-query, cs(cookie), cs(referrer).
Do monitoramento do servidor de aplicação, podemos retirar as informações plotadas na figura 4:

Figura4

As métricas que devem ser coletadas para uma análise detalhada do banco de dados:

  • Users (transactions, logons, parses);
  • Redo activity;
  • Temp activity;
  • Tablespace e espaço usado pelos objetos;
  • Pga usage;
  • Sga usage;
  • Parallel Operations;
  • I/O Operations; e
  • File Stats e Temp Stats.

Para Wait events:

Analisar os top waits events, events idle e parallel (PX*) waits (se houver), conforme pode ser visto na figura 5:

Figura5

 

A decomposição do tempo de resposta mostra que events idle e parallel não são significativos no dia analisado desta base. Então vamos detalhar rapidamente os principais wait events plotados na figura 5:

  • CPU: tempo gasto de CPU para processamento das operações
  • Db file scattered read: tempo gasto com leituras multiblocks
  • Db file seqüencial read: tempo gasto com leituras single-blocks
  • Buffer busy waits: este evento indica uma contenção (problema de lentidão) e análise deve ser aprofundada para que seja descoberta se esta contenção ocorre, por exemplo, em um bloco de índice ou de dados, ou até no header do bloco e para cada um destes casos há uma solução diferente que são melhor explicada através do metalink: Case Study: Buffer Busy Waits Issue [ID 358303.1].

Após a coleta de todas as métricas citadas acima deve se montar tabelas com a sumarização dos dados para cada servidor e BD monitorados e os thresholds definidos juntamente com a área de negócio.

Darei mais exemplos no próximo post de como fazer a correlação entre negócio e hardware.

 

Abraços

José Eduardo Fiamengui Jr

 

 

 

Publicado em Oracle | Publicar um comentário

Capacity Planning (parte 1)

Capacity Planning (Parte 1)

Por José Eduardo Fiamengui Jr

Publicação completa feita na revista SQL Magazine

É cada vez mais comum nas organizações de TI gerenciar, analisar e corrigir problemas de desempenho que os usuários relatam. No mundo perfeito, os administradores se preparam com antecedência a fim de evitar gargalos, utilizando-se do que chamamos de capacity planning. Esse tipo de projeto tem por objetivo determinar a capacidade de produção para responder a novas demandas, fornecendo níveis satisfatórios de serviços aos usuários e mantendo, assim, uma boa relação custo-benefício. Neste contexto, este artigo visa a detalhar teoricamente um projeto de capacity planning, bem como mostrar quais são e como coletar as métricas importantes para a realização desse tipo de projeto.

A Figura 1 mostra os três pilares fundamentais para a realização de um capacity planning.

Vamos, então, detalhar cada um desses pilares.

Determinar os níveis de serviços requeridos pelos usuários

O primeiro passo em projeto de capacity planning é categorizar o trabalho realizado pelo sistema e alinhar as expectativas dos usuários do modo como o trabalho é realizado.

Nessa fase, o capacity planning deve focar seus esforços em:

Who: quem realiza o trabalho (usuário ou departamento);

What: qual tipo de trabalho é realizado (relatório de finanças);

How: como o trabalho é realizado (rotina batch); e

Establish Service Levels: acordar um nível satisfatório entre service provider (provedor do serviço) e o service consumer (cliente). O service levels é frequentemente definido pela perspectiva do usuário, tipicamente em tempo de resposta e throughput.

O processo global de estabelecimento de requisitos em nível de serviço exige primeiro uma compreensão dos workloads (cargas de trabalho) e service que é a classificação lógica do trabalho realizado em um computador do sistema, como mostrado na Figura 2.

Figura 2

A partir deste entendimento inicial, como estabelecer os níveis de serviço?

Os níveis de serviço devem ser estabelecidos conforme as metas plausíveis para o negócio e, para tanto, será necessário conhecer, no mínimo:

Os processos de negócio envolvidos com determinado serviço;

A prioridade para o negócio do serviço;

O crescimento esperado da procura pelo serviço durante os próximos anos;

O pior tempo de resposta aceitável para o serviço; e

Sazonalidade do serviço.

Não são necessários acordos formais e assinados pela TI e a área de negócios, mas é recomendável garantir que ambas as partes recebam as informações supracitadas. Estabelecidos tais acordos, o Capacity poderá garantir um desempenho adequado a um custo mínimo.

Analisar a capacidade de processamento instalada

Devemos analisar a capacidade atual para que ela seja alinhada às expectativas de tempo de resposta dos usuários.

Nessa fase é necessário:

Comparar as medidas de todos os itens referenciados nos acordos de nível de serviço com seus objetivos, o que fornece a resposta sobre a capacidade atual estar ou não adequada ao que esperam os usuários;

Analisar o uso de todos os dispositivos envolvidos no sistema CPU, memória, dispositivo de I/O, banco de dados, servidor de aplicação, entre outros; e

Mensurar o tempo de resposta e a utilização de recursos para cada workload e determinar quais recursos do sistema estão sendo mais consumidos para cada workload.

Como mensurar o uso global de recursos?

É importante realizar o monitoramento de cada um dos recursos envolvidos no sistema computacional, verificando se algum deles está saturado (utilização próxima ou igual a 100%). Caso haja saturação, os workloads que utilizam tal recurso estarão susceptíveis a apresentar tempos piores de resposta. O tempo de resposta pode ser definido segundo a fórmula abaixo:

Tempo de Resposta = Tempo de Serviço + Tempo de Espera (Wait Events)

Por isso, mostra-se importante também o detalhamento de cada workload com relação aos recursos utilizados, refletido em algo semelhante à Figura 3. Por exemplo, imagine um comando ou processo que obtenha o relatório das apólices de seguro fechadas no último mês e um detalhamento de onde é gasto o tempo para completar este workload.

Figura 3

Dimensionar a capacidade necessária para atender os níveis de serviços atuais e futuros

Utilizando as previsões de crescimento do negócio e os requisitos do sistema, deve-se implementar as alterações necessárias para manter os mesmos níveis de serviço alinhados com as perspectivas de crescimento do negócio.

Nessa fase será necessário conhecer:

Crescimento esperado do negócio;

Requisitos para novas funcionalidades/aplicações; e

Consolidação dos itens acima com as métricas coletadas pelos dispositivos atuais.

Publicado em Uncategorized | Publicar um comentário

Itil – Gerenciamento de Serviços de TI

ITIL (Information Technology Infrastructure Library)

O Infra-estrutura de TI de hoje exige uma atenção maior na solicitação dos clientes, oferecendo soluções de qualidade e com pleno alinhamento com os objetivos de negócio, só assim o gerenciamento de serviços pode evoluir.

Vamos neste post explicar o que é ITIL e alguns passos para iniciar sua implementação:

O que é ITIL?

É uma metodologia amplamente adotada para Gerenciamento de Serviços de TI pelo mundo. Ela fornece um guia de melhores práticas para identificar, planejar, entregar e realizar suporte de serviços de TI agregando valor ao negócio.

Processos ITIL:

Suporte:
Gerenciamento de Incidentes
Gerenciamento de Problemas
Gestão da Mudança
Gerenciamento da Configuração
Gerenciamento de Liberação

Entrega:
Gerenciamento da Capacidade
Gestão Financeira
Gerenciamento de Disponibilidade
Gerenciamento de Nível de Serviço
Gerenciamento da Continuidade do Serviço

Para iniciar a implementação do ITIL, podemos utilizar o The Office of Government Commerce (OGC), proprietária do ITIL, fornece recursos online que podem avaliar a IT Organization e fornecer diversos materiais para download no Website (http://www.itil.co.uk/online_ordering/online_ordering.htm).

Como iniciar a implementação:

Determinar Objetivos: depois de saber como a organização está, alinhe com seus superiores até que ponto eles querem chegar com a implementação das melhores práticas do ITIL. Pode se usar uma estrutura de maturidade para marcar resultados da avaliação e determinar o nível que sua organização tentará alcançar. A pontuação pode variar de 0 a 5, onde zero indica ausência e 5 indica otimização. Pode se ter a idéia que todos os níveis de serviço estejam em 5 (otimização), no entanto isso pode ter um custo muito elevado.

Avaliar Gaps: verificar as lacunas existentes entre “Onde estamos” e “Onde queremos chegar”.

Foco no processo: depois de analisarmos as lacunas, temos que determinar qual processo deve ser focado e isso pode ser uma tarefa árdua. Minha recomendação para esse caso é com o Gerenciamento de Incidentes não chegou a um estado CONTROLADO (nível 3), o correto seria começar por lá, o Gerenciamento de Incidentes é um processo fundamental que muitos outros irão depender, pois seu objetivo é restaurar a operação normal o mais rápido possível para os clientes.

Iniciar o projeto: Iniciar um plano de projeto mostrando como a TI mudará seus processos e como isso será implementado e efetivamente implementá-lo. Durante essa fase você identificará as atividades que serão monitoradas e medidas. A seleção dessas atividades vai depender dos objetivos do negócio.

Medir: uma vez que o projeto já concluído e as alterações no processo de TI foram implementadas é hora de tirar as métricas, que o ITIL ajudou a identificar ao longo do processo. Exemplo:

Percetual (%) de redução no tempo para responder um chamado, Percentual (%) de stakeholders satisfeitos com o atendimento, entre outros. Dessa forma será possível prever se os objetivos do negócio serão atingidos.

Melhoria Contínua: nenhum processo é perfeito, então explicar, a organização a importância dos esforços de melhoria contínua. Como o processo é testado ao longo do tempo, os funcionários irão sugerir refinamentos adicionais.

A execução global das melhores práticas de ITIL não é algo que ocorrerá durante uma noite. A adoção dessas práticas exigirá uma mudança de cultura para a organização do seu cliente, além das mudanças previstas para os processos em si.

Publicado em Itil, Uncategorized | Publicar um comentário

Oracle Collections (Bulk)

By Oradeep: José Eduardo Fiamengui Júnior

O que é ?
Um tipo de cursor para retorno de dados. Com bulk collect, o PL/SQL engine conversa com o SQL engine para retornar muitas linhas a cada interação, reduzindo o número de interações e normalmente o tempo de resposta.
Até aqui encontramos em qualquer site, mas vamos ao como é processado isso tudo por dentro do Oracle:

Temos 2 engines diferentes dentro da memória do banco de dados para processamento dos SQLs (comandos).

Engine1: Bloco PL/SQL (Ifs, declares, whiles, var, etc…)

Engine2: Comando SQL (select, update, delete, insert), para o processamento de cada um dos comandos SQLs contidos no bloco PL/SQL é necessário uma interação entre os engines (vai SQL e volta DADO) e a partir daí todo o processamento do comando SQL (… PARSE, BIND, EXECUTE, FETCH), um maior detalhamento dessas fases foi feito no artigo STATISTICS.

Process: Convencional BINDS

 

Processamento(linha-a-linha)

Process: BULK COLLECT BINDS

Processamento(Bulk Collect)

Bulk Binds Collect fazem um código PL/SQL retorne muitas linhas de um cursor em apenas uma chamada ao invés de uma linha por vez. Esse tipo de código normalmente reduz o consumo de CPU e executa mais rapidamente, pois reduz leituras lógicas e tempo de processamento.

Bulks Collect utilizam a PGA para armazenar seus dados, e a PGA é alocada normalmente por sessão (Conexão Dedicada). Vários bulks executando ao mesmo podem ocasionar problemas de alto consumo de memória, por isso a opção LIMIT (limitando as linhas retornadas) DEVE ser utilizada pelos desenvolvedores.

Partindo para a prática, criei 2 cenários para teste:

a) Implementação de Inserção via Cursor Simples:

Implementação-CursorSimples

 

b) Implementação de Bulk Bind Collect:

Implementação-BulkCollect

Análise Comparativa entre os 2 processos: Trace

Utilizei para ambos os casos:
alter session set events ‘10046 trace name context forever, level 8’ ;
tkprof .trc .txt sys=no sort=fchela explain=teste/teste

a) Implementação (Cursor Simples)

Trace-CursorSimples

b) Implementação (Bulk Collect)

Trace-BulkCollect

 


Houve uma pequena variação na quantidade de linhas (9 linhas), pois as implementações foram feitas em dias diferentes e acredito que já tinha criado outros objetos em meu database. Ainda assim a conclusão que chegamos é bem clara: o tempo de resposta para essa quantidade de registros caí em aproximadamente 85%.
Uma diferença considerável e que aumentará, conforme o aumento na quantidade de registros processados.
Agora que entendemos um pouco mais sobre Collections vale lembrar que é possível utilizar esse recursos também com operações de DELETE e UPDATE.

Grande abraço a todos!, e como esse Post deve fechar o ano de 2011:

Gostaria de desejar um *** Feliz Natal e um Ano Novo repleto de realizações ***

Publicado em Oracle | 2 Comentários