Wednesday, October 31, 2012

Traduzindo a Estratégia para a Operação

Entre os principais desafios das organizações e seus gestores está o atendimento às necessidades dos interessados1 no negócio, principalmente quanto aos resultados esperados por estes. Para tanto, alguns trabalhos têm sido desenvolvidos visando alinhar os resultados das iniciativas advindas dessas necessidades aos objetivos estratégicos de uma organização.

Recentemente, uma norma sobre gerenciamento de portfolio foi lançada pelo Project Management Institute2 com orientações importantes para melhorar os resultados dos projetos selecionados por uma organização, e em especial que estejam alinhados aos objetivos estratégicos desta. Quando se trata de atingir resultados alinhados aos objetivos estratégicos um referencial a ser seguido é o método de Balanced Scorecard 3. Assim sendo, um modelo para alinhamento do gerenciamento do portfolio de projetos aos objetivos estratégicos para uma organização empreendedora deve ser baseado na gestão do BSC.



O Balanced Scorecard (BSC) constitui uma valiosa metodologia adotada por empresas que desejam não apenas mensurar, mas também obter elementos que proporcionem condições de acompanhar o desempenho e auxiliar na revisão de metas e estratégias de ação.

Assim, o BSC além de preservar os indicadores financeiros como a síntese final do desempenho gerencial e organizacional, também incorpora um conjunto de medidas mais genérico e integrado que vincula o desempenho sob as perspectivas dos clientes, processos internos, funcionários e sistemas ao sucesso financeiro em longo prazo.

Uma vez estabelecidas as metas financeiras e as metas com relação ao cliente, como por exemplo, aumento de 35% nas vendas; a organização deve identificar objetivos e medidas para seus processos internos como aumento de vendas, de produção e novos produtos.

Uma das dificuldades surge no momento de obter os indicadores e suas metas (históricas e projeções (e como calcular as projeções)). A seguir temos alguns indicadores sugeridos por (BACK, 2002):

 Tabela 1 - Perspectiva Financeira

 Tabela 2 - Perspectiva Cliente

 Tabela 3 - Perspectiva Processos

 Tabela 4 - Perspectiva Aprendizado

BACK, R.S. Um método para definição de indicadores de desempenho aplicado à gestão de projetos de sistemas de informação. Dissertação da UFRGS, Porto Alegre, 2002

Sunday, October 28, 2012

O Coelho e o Caranguejo


Uma vez, o coelho combinou com o caranguejo de fazerem juntos uma plantação de cenouras. Eles trabalharam em harmonia durante vários dias. Primeiro, escolheram as sementes e as plantaram. Depois, cuidaram das pequenas mudas, sempre concordando em tudo. Chegou então a colheita e eles separaram as ramas das cenouras.
Mas os problemas começaram no momento de dividir a colheita. O coelho tentava enganar o caranguejo:
– Olha, temos aqui dois montes: um grande e um pequeno. Você fica com o grande que eu fico com o pequeno.
Mas, vendo que o monte grande era todo de ramas e que no pequeno só havia cenouras, o caranguejo respondeu:
– Ah!, não, obrigado, meu amigo, mas prefiro fazer uma divisão por igual. Proponho dividirmos os dois montes em dois: eu vou dividir e você escolherá, ou então você divide e eu escolho, como você quiser. O que me diz?
– Não, não, não posso aceitar! – respondeu o coelho. – É melhor recuarmos trinta passos e corrermos até os montes. O primeiro a chegar ficará com as cenouras e o outro com as ramas. O que acha?
– Está bem, parece correto – respondeu o caranguejo.
– Bem, finalmente estamos de acordo! – exclamou o coelho. Ele estava contente, pois tinha a certeza de que ganharia: – Estou tão contente com este arranjo – continuou ele – que, se você ganhar, estou decidido a lhe dar as cenouras e as ramas. De acordo?
– De acordo! – respondeu o caranguejo.
– Ah! tem outra coisa – acrescentou o coelho. – Como sei que você é mais lento que eu, proponho que você saia com uma vantagem de dez passos.
– Não, é demais! Não posso aceitar! – respondeu o caranguejo, fingindo não querer se aproveitar do coelho. – Eu é que devo conceder uma vantagem. E ficarei zangado se você recusar.
– Aceito, aceito! – apressou-se em responder o coelho, que não queria contradizê-lo, ansioso em aproveitar a vantagem. Mas, assim que ele deu as costas ao caranguejo, este, tranquilamente, agarrou-se à cauda do coelho com suas pinças, sem que o coelho percebesse.
Quando chegou ao monte de cenouras, o coelho se virou, certo de que o caranguejo ainda estava longe e para ver onde poderia estar. Mas, nesse momento, o caranguejo abriu as pinças e caiu tranquilamente sobre as cenouras.
– Onde você está? – gritou o coelho, todo contente por ter ganho e não vendo o caranguejo em lugar algum.
– Ei! estou aqui! – disse uma voz atrás dele.
O coelho deu um pulo de surpresa e começou a tremer todo, não acreditando em seus ouvidos. Virando-se, deu de cara com o caranguejo diante dele, no alto da pilha de cenouras!
– Pois é! Cheguei primeiro!
Era a primeira vez que o coelho perdia uma corrida. Ficou muito triste, porque não conseguia compreender como o caranguejo poderia ter sido mais rápido.
Em todo caso, foi assim que o caranguejo ganhou as cenouras.


Fonte
O COELHO e o caranguejo. In: COSTA, Flávio Moreira da (Org.). Grandes contos populares do mundo. Rio de Janeiro: Ediouro, 2005.

Friday, October 26, 2012

Estrutura de um Algorimo Genético

(1) Inicialmente escolhe-se  uma  população  inicial,  normalmente  formada  por indivíduos criados aleatoriamente;
(2) Avalia-se toda a população de indivíduos segundo algum critério, determinado por  uma função  que avalia a  qualidade  do  indivíduo (função  de aptidão ou "fitness");
(3) Em seguida,  através do operador de  "seleção", escolhem-se os indivíduos de melhor valor (dado pela função de aptidão) como base para a criação de um novo conjunto de possíveis soluções, chamado de nova "geração"; 
(4) Esta  nova  geração  é  obtida  aplicando-se  sobre  os  indivíduos selecionados operações que misturem suas  características (chamadas  "genes"), através dos operadores de "cruzamento" ("crossover") e "mutação"; 
(5) Estes passos são repetidos até que uma solução aceitável seja encontrada, até que o número predeterminado de passos seja atingido ou até que o algoritmo não consiga mais melhorar a solução já encontrada. 


Wednesday, October 24, 2012

Colocando a vida em ordem com as dicas de… Bruce Lee

Bruce Lee tem uma história de vida interessante. Além de ter sido um ícone cultural como o principal responsável pelo início da onda de interesse ocidental por artes marciais nos anos 60 e 70, ele também influenciou o cinema no ocidente e oriente, e é visto por muitos como um modelo na busca da eficiência física e no domínio das artes marciais.
Não é um fato amplamente conhecido fora do círculo dos fãs, mas Bruce Lee também era graduado em Filosofia, pela Universidade de Washington. E a visão adquirida desta forma transpira para seus métodos e mesmo para seus livros de artes marciais. Quem leu o livro “Getting things done” (GTD) e conhece a citação de “mind like water”, sobre buscar ter a mente maleável e adaptável como a água, que simplesmente absorve o que é jogado dentro dela, se agita apenas durante o processo, e logo retorna ao seu estado original, talvez se surpreenda ao saber que Bruce Lee também defendia o mesmo princípio (para quem gosta: “Be formless… shapeless, like water. If you put water into a cup, it becomes the cup. You put water into a bottle; it becomes the bottle. You put it into a teapot; it becomes the teapot. Water can flow, and it can crash. Be water, my friend…”). Aliás, David Allen, o autor do GTD, também era praticante de artes marciais.
E as dicas de filosofia de vida que Bruce Lee registrou, quando analisadas separadamente, podem dar boa inspiração e provocar insights. Henrik Edberg montou uma pequena coletânea das dicas de Bruce Lee para colocar a vida em ordem, e eu trago a vocês algumas delas, com a minha própria interpretação:
  • O que você está pensando – hoje? Nossos pensamentos, planos e intenções do dia-a-dia devem refletir nossas metas e objetivos de vida, ou de longo prazo. A tendência é que aquilo que nós pensamos ou pretendemos a cada dia sirva de guia ou de limitação para o que podemos alcançar e produzir, e é muito fácil perder a coerência entre o curto e longo prazos. Leia também: Planejamento estratégico: como aplicar à sua vida
  • Simplifique. A tendência de quem está procurando melhorar a vida é buscar acrescentar coisas. E pode ser bom, mas muitas vezes não temos o tempo ou a energia para realizar (ou aproveitar) o que buscamos acrescentar. Bruce Lee descreveu a sua visão sobre isso assim: “Não é o acréscimo diário, mas o decréscimo diário. Corte fora o que não for essencial”. Definir o que é essencial depende de cada um, mas o número de pessoas que eu conheço que estão estressadas por tentar fazer muitas coisas ao mesmo tempo só aumenta.
  • Aprenda sobre você mesmo observando as suas interações. Ou, como disse Bruce Lee, conhecer a si é estudar a si mesmo em ação com outras pessoas. Como as pessoas interagem com você, ou como reagem à sua presença ou às suas ações, pode ensinar muito a você. Todo mundo já ouviu isso, mas sempre vale lembrar que o que vemos, percebemos e entendemos sobre as outras pessoas pode muitas vezes ser um reflexo do que nós mesmos somos.
  • Veja o todo, e não apenas o seu lado. Não divida. Na hora de analisar algo, deixe de lado o posicionamento, a busca de saber quem está certo e quem está errado. Exceto nos momentos em que desejar ser conduzido pelas suas emoções, se você quer compreender algo, não seja a favor ou contra, observe a partir de uma perspectiva externa – conduza seu pensamento e suas emoções.
  • Não dependa de validação dos outros. Como disse Lee, “não estou neste mundo para satisfazer as suas expectativas, e você não está aqui para satisfazer as minhas.” E mais: “se exibir é a idéia que um tolo faz sobre a glória”. Depender de validação dos outros é uma busca sem fim, e acaba permitindo que os outros (mesmo sem saber) tenham o controle de como você se sente.
  • Seja proativo. Uma coisa é compreender as circunstâncias, e outra é criar oportunidades. É mais difícil não se limitar a seguir o que o resto do rebanho já está fazendo. Mas é mais recompensador, e mais efetivo, liderar e criar a oportunidade de se alcançar os objetivos, apesar das circunstâncias.
  • Seja você. Não adianta encontrar modelos e personalidades bem-sucedidas e tentar repetir seus passos. Você precisa ser você mesmo, expressar quem você é, e ter fé – no estilo “eu sou mais eu”. Seja genuíno e autêntico, e defenda quem você realmente é, e não um personagem.

Wednesday, October 17, 2012

Alta Disponibilidade : O mito dos 99.999%



As novas demandas dos negócios começam a exigir sistemas 24x7, disponíveis sete dias por semana, vinte e quatro horas por dia. O tempo que estes ssitemas podem ficar fora do ar são cuidadosamente definidos e normalmente utilizam-se métricas que regem os contratos entre as áreas fins e a área de TI.
Deve ficar claro que o negócio define o nível de disponibilidade necessária pois quanto maior a disponibilidade requerida maior o investimento em infra-estrutura.
A figura abaixo representa um acidente no tempo T1 ocorrido em um determinado sistema. O tempo decorrido entre T1 e T2 é o tempo de downtime. O tempo T0 é o tempo de perda de dados durante o downtime. Quanto menor o tempo de downtime e menor o tempo de perda de dados maior a disponibilidade do sistema e maior o investimento em tecnologias que permitem a recuperação do site.
A Alta disponibilidade significa que o serviço de TI está continuamente disponível para o cliente havendo pouco downtime e recuperação rápida. A alta disponibilidade (HA) e a recuperação a desastres (DR) devem ser pensadas como um continuum e acontecem em várias camadas , onde cada camada propicia os níveis de disponibilidade adequado para a camada superior.


A alta disponibilidade hoje é considerada o principal SLA de qualquer instalação de DATACENTER. Para se obter um nível de serviço adequado é necessário que os componentes de toda a solução contribuam para a obtenção deste nível de serviço.

Quase todo usuário de sistema quando interrogado sobre qual o SLA requerido sempre diz que é 100%, mas sabe-se que para muitas aplicações um SLA menor é mais do que suficiente e economico (ver artigo Porque ILM ? neste blog ). A disponibilidade que é percebida pelo usuário depende da quantidade de indisponibilidades, da duração da indisponibilidade e da quantidade de usuários afetados,A disponibilidade (ou a alta disponibilidade) de um sistema é calculada da seguinte forma:
Onde A é o grau de disponibilidade expresso em porcentagem, MTBF é o mean time between failures e o MTTR é o maximum time to repair. Se um sistema tem MTBF de 100.000 horas (mais que 11 anos) e o MTTR é de 1 hora , o disponibilidade (A) é de 99.9999 %. Ou seja em 11 anos teremos neste caso 6 minutos de downtime.
Há uma tendencia que o downtime (tempo que o sistema esta fora do ar) considerado por organizações que atuam 24x7 inclua a indisponibilidade planejada e a indisponibilidade não planejada. O downtime não planejado tem sua fonte principal na falha do software, segundo pesquisa realizada pelo Gartner/Dataquest e mostrada o gráfico abaixo.




A alta disponibilidade alcançada é indicada por métricas como mostrado na tabela abaixo.
É muito comum associar o nível de alta disponibilidade a percentagem de uptime que o sistema permite . Sistemas com cinco noves (99.999%) podem parar cinco minutos e 15 segundos ao longo do ano considerando inclusive as paradas programadas.



Vejamos o exemplo de um serviço fim a fim baseado em uma aplicação client/server prometido por um fornecedor com 99.99% de disponibilidade. Na verdade considerando todo o sistema é muito dificil ter um SLA desta ordem. Vejamos o processo de realizar uma consulta a esta aplicação client/server realizada por um usuário (na sua estação de trabalho - o client). Entre os dois estão a estação do cliente, a rede LAN da organização, a rede WAN, os servidores, a aplicação e finalmente o storage. Não estamos considerando alguns componentes para facilitar (firewall, switches, etc.)
Para simplificar vamos considerar que existem sete componentes entre o client e o storage. Se cada componente tiver 99.99% e assumirmos que as falhas não acontecem ao mesmo tempo , o SLA final da cadeia é de 99.93% (0.9999*0.9999*0.9999*0.9999*0.9999*0.9999*0.9999) que não representa 52 minutos parados no ano mais sim 6 horas ! That is the question !
Pois bem ! Este papo de sistemas fim a fim com cinco noves que teoricamente ficariam trinta e dois segundos fora do ar por ano é balela ! Outro aspecto importante é que o simples fato de um dos componentes da rede ter um SLA menor dispenca o SLA médio final. É só fazer a conta.

Algumas regras importantes:
1 - Investir em um único componente tem pouco impacto no SLA total;
1.00*.995*.995*.995=98.5% (sai de 99.5% para 98.5%
2- Um componente pouco confiável reduz consideravelmente o SLA total;
0.95*.995*.995*.995=98.5% (sai de 99.5% para 93,6%)

3- Melhor cuidar da cadeia de SLA inteira
0.9975*0.9975*0.9975*0.9975=99%
Referência:
[1]Marcus, Evan & Stern, Hal. Blueprints for High Availability, Second Edition, 2003.
[2]Jorge Luís Cordenonsi, Gerenciamento da Disponibilidade de TI, material disponível na Internet.

Níveis de Alta Disponibilidade

Disponibilidade (%) Downtime/ano Downtime/mês
95% 18 dias 6:00:00 1 dias 12:00:00
96% 14 dias 14:24:00 1 dias 4:48:00
97% 10 dias 22:48:00 0 dias 21:36:00
98% 7 dias 7:12:00 0 dias 14:24:00
99% 3 dias 15:36:00 0 dias 7:12:00
99,9% 0 dias 8:45:35.99 0 dias 0:43:11.99
99,99% 0 dias 0:52:33.60 0 dias 0:04:19.20
99,999% 0 dias 0:05:15.36 0 dias 0:00:25.92

Thursday, October 11, 2012

Gerenciamento de Integração - PMBOK




A área de conhecimento Gestão da Integração do Projeto, engloba os processos de coordenação, a maioria dos quais são transversais ao ciclo de vida do projeto e essencialmente interativos, usados pelo gestor de projeto de forma recorrente ao longo de todo o ciclo de vida do projeto ou fase.

De acordo com o PMBOK esta área de conhecimento é composta por 6 processos que se distribuem de forma quase homogénea pelas 5 fases do ciclo de vida do projeto ou sub-projeto.

4.1 Criar o documento inicial do projeto (Fase Iniciar) – É a primeira atividade do gestor de projeto quando lhe é atribuída a responsabilidade de um novo projeto. O documento de abertura do projeto (Project charter) é o documento que descreve o projeto a realizar e, depois de formalmente aceite pelo promotor e principais partes interessadas, confere autoridade ao gestor de projeto para utilizar os recursos da organização.

Em determinadas organizações o documento de abertura do projeto é efetuado pelo promotor ou por uma estrutura especializada, geralmente no âmbito de um PMO. Esta situação é no entanto rara sendo mais habitual que o gestor receba do promotor a incumbência de o concretizar.

Nunca comece a planear o projeto sem que previamente exista e esteja aprovado o respetivo documento de abertura do projeto. Cuidado com o promotor que não reconhece a importância deste documento. Como gestor de projeto nomeado é sua responsabilidade demonstrar as vantagens da sua execução, insistindo na sua concretização.

Clique aqui para obter mais informação sobre o processo Criar o Documento Inicial do Projeto.

4.2 Desenvolver o plano de gestão do projeto (Fase Planear) – De acordo com o PMBOK o plano de gestão do projeto é outro dos documentos fundamentais de qualquer projeto na medida em que é nele que se define a forma como todo o projeto vai ser gerido, tendo influência em todas as áreas de conhecimento relacionadas com a gestão de projeto. Uma das componentes mais importantes do plano de gestão do projeto é a que define a forma como as alterações que necessariamente serão necessárias ao longo da fase execução serão avaliadas e geridas.

4.3 Orientar e gerir a execução do projeto (Fase Executar) – Após completar a fase de planeamento é altura de executar. Durante a fase de execução a função do gestor de projeto é a de garantir que cada um faz o que é suposto fazer e que o produto ou serviço que o projeto está a criar cumpre com as necessidades e expetativas das partes interessadas e, em especial, do cliente. É durante a execução que a qualidade do planeamento se revela e que os diversos planos criados para cada uma das áreas de conhecimento da gestão de projetos se executam de forma integrada.

4.4 Monitorizar e controlar o projeto (Fase Controlo e Monitorização) – Um bom gestor de projeto é aquele que monitoriza em permanência todas as variáveis que são determinantes para a correta execução do projeto. Quanto mais tarde descobrimos os problemas, mais difícil e maior impacto negativo terão as necessárias ações corretivas.

Implemente um sistema de controlo e monitorização que não pese excessivamente na execução do projeto e que tenha capacidade de detetar antecipadamente os potenciais focos de problema. Quanto mais cedo os problemas forem detetados e corrigidos mais satisfeitos estarão os elementos da equipa de projeto e as restantes partes interessadas.

4.5 Realizar o controlo integrado das alterações (Fase Controlo e Monitorização) – Uma vez descoberto um problema, concreto ou em potência, é necessário que o gestor de projeto em conjunto com a sua equipa, estudem as possíveis alternativas de forma a apresentar ao promotor ou ao comité de análise de alterações a melhor solução. A aceitação de determinada solução implica a necessidade de atualizar o plano de projeto para que este contemple as eventuais novas atividades necessárias para a conclusão do projeto. A atualização do plano do projeto garante ainda que todos aqueles que estão envolvidos na execução do projeto passam a guiar-se pelo novo plano não havendo dissonâncias entre eles.

4.6 Encerrar o projeto, fase ou sub-projeto (Fase Fechar) – A ultima fase do ciclo de vida do projeto é o encerramento. No decurso deste processo é fundamental garantir que tudo o que é relevante para o projeto está adequadamente documentado, em especial as lições aprendidas pelo gestor de projeto e pela sua equipa ao longo da execução do projeto. Lições aprendidas são essencialmente situações e soluções com as quais o gestor de projeto e a equipa se defrontaram ao longo das diversas fases de um determinado projeto e que têm potencial de vir a ser úteis para outros projetos da organização. Esta questão da potencialidade para ser útil noutros projetos é essencial para distinguir o que é algo que o projeto nos ensinou e que deve ser transmitido a terceiros, dos restantes acontecimentos do projeto.

Friday, October 05, 2012

Da Biologia para a Computação

Biologia Genética Algoritmos Genéticos
Cromossomo Estrutura de dados
Gene Elemento ocupando uma dada posição da estrutura de dados
Locus Posição ocupada por um gene numa estrutura de dados
Alelo Variações de um elemento que pode ocupar um locus
Cruzamento Troca de partes entre estruturas de dados
Mutação Substituição de um ou mais genes
Fitness (aptidão) Valor que indica a qualidade relativa de um indivíduo como solução
Seleção Processo que permite a sobrevivência e reprodução de indivíduos
Genótipo Codificação de uma solução candidata
Fenótipo Valor decodificado do cromossomo

Desenvolvimento de Algoritmos

(1) Dado um problema, como encontramos um algoritmo eficiente para sua solução?
(2) Encontrado um algoritmo, como comparar este algoritmo com outros algoritmos que solucionam o mesmo problema?
(3) Como deveríamos julgar a qualidade de um algoritmo?
(4) Qual é o algoritmo de menor custo possível para resolver um problema particular?

Questões desta natureza são de interesse para programadores e cientistas da computação. Algoritmos podem ser avaliados por uma variedade de critérios. Na maioria das vezes estamos interessados na taxa de crescimento do tempo ou de espaço necessário para a solução de grandes problemas.

Uma maneira de comparar algortimos é por meio da notação O. Abaixo temos uma tabela com os comportamentos mais comuns relacionados ao tempo para execução de um algoritimo.

Tabela 1- Comportamentos comuns em consumo de tempo
Função Significado ( tamanho da entrada = n)
1 tempo constante – o número de operações é o mesmo para qualquer tamanho da entrada
n tempo linear – se n dobra, o número de operações também dobra
n2 tempo quadrático – se n dobra, o número de operações quadruplica
log n tempo logarítmico – se n dobra, o número de operações aumenta de uma constante
nlog n tempo n log n - se n dobra, o número de operações ultrapassa o dobro do tempo da entrada de tamanho n
2n tempo exponencial - se n dobra, o número de operações é elevado ao quadrado

Algumas expressões de O são tão freqüentes que receberam denominações próprias:

Tabela 2- Algumas expressões de O
Expressão Nome
O(1) Constante
O(log n) Logarítmica
O(log2n) Log quadrado
O(n) Linear
O(nlog n) n log n
O(n2) Quadrática
O(n3) Cúbica
O(2n) Exponencial

A Figura 1 mostra esse comportamento de maneira gráfica.

Figura 1 - Represetação gráfica da Tabela 1