terça-feira, fevereiro 24, 2015

Termo de abertura do projeto – Ferramentas,Técnicas e Saídas

De posse dos documentos e informações listadas no post anterior sobre o termo de abertura, podemos partir para as ferramentas e técnicas para desenvolver o termo de abertura.
Uma das ferramentas indicadas neste processo é chamada de “Opinião Especializada”, esta ferramenta é citada em 28 dos 47 processos e basicamente se trata do resultado de consultas individuais ou em formato de painel por meio de discursões de grupo, pesquisa de opinião e ou contratação de consultoria externa para ajuda no desenvolvimento do termo, ou seja, faça o que você faz de melhor, terceirize o resto.
A segunda ferramenta indicada pelo PMI para composição do termo de abertura são as Técnicas de facilitação, são as técnicas usadas para tornar as reuniões mais eficientes, deixando claro o objetivo da reunião, mantendo o foco para atender o objetivo, estimulando a participação e garantindo que as decisões tomadas estejam coerentemente documentadas e executadas.
O Básico da estrutura do Termo de Abertura seria:
  • Título do projeto;
  • Resumo das condições que definem o projeto (introdução);
  • Nome do gerente do projeto e suas responsabilidades e autoridades;
  • Necessidades básicas do trabalho a ser realizado;
  • Descrição do produto do projeto;
  • Cronograma Básico do Projeto;
  • Estimativas iniciais de custo;
  • Necessidades iniciais de recursos;
  • Necessidade de suporte pela organização;
  • Controle e gerenciamento das informações do projeto;
  • Aprovações com assinatura do executivo responsável pelo documento (elemento externo ao projeto)
Modelo de Termo de abertura:

segunda-feira, fevereiro 23, 2015

Integração – 4.1 Desenvolver o termo de abertura do projeto - Entradas

O termo de abertura do projeto é na minha visão é o documento que autoriza o projeto, é um documento que basicamente vai conter um conjunto de dúvidas, questões e colocações, desejos do patrocinador sobre o projeto e que só vão ser detalhadas/respondidas pela equipe e pelo gerente de projeto na declaração do escopo. No decorrer do projeto muitas fases começam a depender uma da outra e a ordem em que isso ocorre pode não ter uma regra forte, como a mudança de um plano durante a execução por meio dos controles e monitoramento, porem o termo de abertura é único e não costuma se alterado durante as outras fases, é dado como o primeiro passo para o início do projeto.
Neste resumo vou falar um pouco sobre as principais fontes de informação para a confecção do termo de abertura ou seja, a Especificação do trabalho do projeto, Business case, regras e restrições Contratuais, fatores ambientais da empresa e os ativos de processos organizacionais.
A Especificação do trabalho do projeto é a descrição dos produtos ou serviços que serão fornecidos pelo projeto. Para projetos internos, o indicador ou patrocinador do projeto fornece esse documento com base nas necessidades de negócios e requisitos. Para projetos externos a especificação do trabalho do projeto pode ser recebida do cliente como parte de um documento de licitação. Deve constar no documento “Necessidade de negócios” e “Descrição do escopo”. Este documento deve fornecer informação suficiente para o vendedor criar e especificar uma proposta comercial.
Modelo do documento de Especificação do trabalho do projeto: http://escritoriodeprojetos.com.br/SharedFiles/Download.aspx?pageid=18&mid=24&fileid=73
Outra entrada para a construção do termo de abertura é um documento chamado Business case, este documento deve fornecer as informações necessárias do ponto de vista de um negócio, para determinar se o projeto justifica ou não o investimento. Deve conter a necessidade de negócios e a análise de custo benefício para justificar o projeto.
Modelo: http://escritoriodeprojetos.com.br/SharedFiles/Download.aspx?pageid=18&mid=24&fileid=17
Acordos/contratos, se aplica quando o projeto está atrelado a algum acordo contratual existente, são requisitos, termos e condições que devem ser acatadas no projeto.
Fatores Ambientas, estrutura organizacional, capacidade de recursos humanos, e as próprias políticas estabelecidas por um eventual Escritório de Projetos, bases de riscos, concorrentes, regulamentações, padrões de indústria, políticas governamentais, marketing e qual quer outro item que esteja atrelado ao ambiente onde o projeto deve se desenvolver.
Ativos de processos organizacionais, são políticas, procedimentos, modelos, principais projetos, portais de intranet, documentos de projetos anteriores, lições aprendidas e todo e qual quer documento existente na empresa que tenha alguma utilidade no projeto.
O termo de abertura do projeto é apenas a ponta do iceberg no guia do PMI, ao todo são 47 processos, cada um com suas entradas ferramentas e saídas, no próximo post vou dissecar as ferramentas para construção do termo de abertura e comentar um pouco sobre a estrutura do documento. Até breve.
*Os links contidos neste post são de autoria do site http://escritoriodeprojetos.com.br uma boa fonte de estudo sobre o tema!

sexta-feira, fevereiro 13, 2015

Gerenciamento de Projetos

Sobre o Gerenciamento de Projetos




Estou as voltas com uma matéria de muito apreço que pude ter contato em meu curso de pós graduação e em alguns anos conduzindo projetos de TI, o Gerenciamento de Projetos.
Durante este ano de 2015 muito provavelmente terei novos desafios envolvendo o tema. Aproveito o momento oportuno para usar este espaço para criar algumas postagens sobre esse assunto tão importante para a maioria das empresas, sejam públicas ou privadas.

Este primeiro post vou tentar resumir de forma bem geral o que entendo como Gerencia de Projetos, como guia uso as referências do livro de boas práticas, o principal livro de referência do PMI o PMBook versão 5.

A necessidade da gerencia de projeto nasce justamente da premissa do controle, da gestão, do acompanhamento, da estruturação de um plano e do que acontece durante sua execução, monitorando sistematicamente cada fase e em fim registrando o seu encerramento.
Ou seja, basicamente 5 grandes grupos de atividades:
1 – Iniciação
Onde o projeto é posto à prova, sobre o ponto de vista de viabilidade, descrevendo em um documento chamado Termo de Abertura os objetivos do projeto, um cronograma inicial e principais fontes motivadoras de sua existência, nesta fase também são identificados todos os envolvidos ou interessados no projeto.
2 – Planejamento
A fase de planejamento é basicamente onde o projeto será idealizado, onde nasce o plano de gerenciamento do escopo, cronograma, EAP etc., é onde se define todas as regras para serem usadas durante a execução do projeto, é definido como será tocado o projeto dos pontos de vista de Escopo, Tempo, Custos, Riscos, Qualidade, Recursos humanos e Comunicações.
3 – Execução
A fase de Execução é como o nome diz, pôr em prática tudo o que foi planejado. As equipes são mobilizadas, a qualidade é apurada, as aquisições são conduzidas, a equipe se desenvolve, a comunicação acontece de forma frequente e o próprio planejamento pode ser ajustado com base no andamento da execução.
4 – Monitoramento e Controle
Esta fase basicamente acompanha a execução e define se uma mudança no planejamento pode acontece e como vai acontecer, controlando o cronograma, o escopo, o trabalho, controla a comunicação, controla os riscos, aquisições e até mesmo o engajamento das partes interessadas.
5- Encerramento

Muitas vezes é onde a grande engrenagem é iniciada, pois como todo projeto se compõe de início, meio e fim, ao final do projeto podemos ter um produto finalizado ou transição para o início das atividades de um serviço de produção. Na fase de encerramento também se documentada as lições aprendidas e a conclusão de serviços contratados nas fases de aquisição.

quinta-feira, setembro 26, 2013

PLANO DE COMUNICAÇÃO COMO CHAVE PARA O SUCESSO

PLANO DE COMUNICAÇÃO COMO CHAVE PARA O SUCESSO

A comunicação é peça chave no desenvolvimento pessoal e empresarial, o plano de comunicação mostra de forma sistemática como aplicar regras ás necessidades de comunicação.


No meu breve estudo sobre comunicação, ficou bem clara a percepção de que
comunicação é realmente algo muito importante em empresas e na própria vida.
Levando o conhecimento direcionado a área empresarial, nada mais prática do
que um plano de comunicação. Sem muita experiência qual quer um diria que o plano
de comunicação já está implícito no próprio cronograma do projeto, mais mesmo o mais
ricos dos guias sobre projetos, o PMBOK, trata da comunicação como processos bem
definidos e fundamentais para outros processos do guia. O plano de comunicação nada
mais é do que um projeto para planejar a forma com vai ser fundamentada a
comunicação do projeto.
Como escreveu em seu famoso livro Gerenciando Pessoas, o guru Idalberto
Chiavenato deixa bem claro que nas organizações mais bem-sucedidas do mundo, a
comunicação recebe a máxima prioridade. E sem sombra de duvidas, todos nos já
passamos por problemas relacionados a falha de comunicação em nossos ambientes de
trabalho, e quantos milhões são perdidos, sejam em mal aproveitamento de tempo seja
em perdas financeiras pela falha no processo de comunicação?
O plano de comunicação visa aplicar uma sistemática, que deve ser cumprida a
risca, para o processo de comunicação, sendo formalmente elaborado por uma comissão
composta pelos responsáveis pelo projeto ou pela área da organização que não tenha um
processo de comunicação bem definido. Os ganhos com a aplicação da metodologia são
visíveis e imediatos, há que ser dada a devida importância à comunicação, pois ela é a
chave para o sucesso. 

sábado, maio 04, 2013

APF x Ágil

Texto de Célio Junior

Como quase tudo que envolve métodos ágeis a questão não é técnica e sim conceitual.

O principal objetivo das metodologias ágeis é entregar valor para o cliente. E como isso ocorre? Cliente e Time (ágil) irão colaborar para entregar o máximo de "software" possível que implique ao cliente o maior retorno de investimento (ROI) possível.

O que é PF? É o tamanho funcional de um sistema.
PF mede valor de negócio? Não (só se for indiretamente e olhe lá).
Então por que um time/cliente ágil vai utilizar PF em um projeto ágil? Não faz sentido...

Quero dizer, o cliente pode pagar por 10PF hoje e ter um ROI imenso, e pagar por 10PF amanhã e não ter ROI nenhum. Ou seja, PF não pode ser usado como uma métrica útil para times ágeis a não ser para ser usada como ela é hoje, para "precificar" o software. Ai é que conceitualmente mora o perigo pois da forma como PF é usada estaremos agora observando preço ao invés de valor.

Nessa visão de preço o time e o cliente não mais colaboram e sim concorrem, afinal o cliente quer ter o minimo de PFs com o máximo de software (pagando menos), enquanto o time quer ter o mínimo software com o máximo de PFs (recebendo mais) e o foco da minha negociação deixa de ser vantagem competitiva do cliente para ser preço de PF e detalhamento de requisitos (histórias do usuário...) e isso não tem mais nada a ver com agilidade.

Por isso que métodos ágeis funcionam melhor com contrato de custo fixo (pagando por mês por exemplo) e escopo variável, enquanto que na conjectura atual, PF + escopo variável = preço variável e nesse cenário negociação de contratos é mais importante do que colaborar com o cliente (O contrário disto está na 3ª declaração do manifesto ágil).

E pra variar, PF não tem culpa disso ;)

sexta-feira, janeiro 27, 2012

Resumo do livro Clean Code

Resumo de alguns tópicos do livro Clean Code do Uncle Bob, recomendadíssimo!
programador profissional é aquele que produz código limpo e testado!
 Regra de escoteiro: “você deve sempre deixar o lugar mais limpo do que encontrou” 

Nomes significativos

Nomes de classes, variáveis, métodos, etc, devem ser significativos, indicando claramente o que um método faz ou o que um atributo representa. A intenção deve ser visível através dos nomes. Crie nomes pronunciáveis para facilitar a comunicação, evite acrônimos e siglas.
Evite nomes confusos, os quais podem levar quem lê o código a conclusões erradas.
Use nomes que refletem o domínio do sistema, o contexto e os problemas que devem ser resolvidos.

Funções

Funções devem ser pequenas. Aliás, elas devem ser ainda menores. Deve haver apenas um nível de abstração por função.
Funções devem fazer uma coisa, e apenas uma. Novamente, utilize um nome que descreva bem o que a função faz. Utilize o menor número de argumentos possível, fazendo o máximo para que não passem de três.
Cuidado com “efeitos colaterais”, funções não podem fazer nada “escondido”. Use exceções ao invés de códigos de erro, e considere que tratar exceções é uma coisa.

Comentários

Comentários não salvam um código ruim. Procure explicar o que o código faz COM CÓDIGO.
Crie nomes de métodos e de variáveis informativos, ao invés de explicar com um comentário o que um método com um nome ruim faz. Use comentários para deixar uma expressão complexa mais clara, para avisar sobre as possíveis conseqüências de uma alteração, ou para ressaltar a importância de certo ponto do código.
Comentários ruins também poluem o código. Não escreva comentários redundantes, inúteis, ou pior, com falsas informações. Também não deve ser usado para indicar quando ou por quem foi alterado, para isso temos ferramentas de controle de versão. Não escreva comentários confusos ou grandes demais.
Não comente código que não será mais usado, simplesmente remova-o.

Objetos e estruturas de dados

Siga a Lei de Demeter. Faça boa abstração e encapsulamento. Não crie objetos burros.

Tratamento de erro

Use exceções ao invés de códigos de erro. Use exceções não checadas, e utilize mensagens de erro informativas.
Não retorne e nem passe null.

Testes

Siga as 3 leis do TDD.
Use uma assertiva por teste, e teste um conceito por vez.
Os testes devem ser rápidos, independentes, reprodutíveis em qualquer ambiente, auto-validáveis e escritos no momento certo. Mantenha o código de seus testes limpo.

Classes

Classes devem ser pequenas e seguir o princípio da responsabilidade única. Devem ser coesas,  essa coesão resulta em classes pequenas. Classes devem ser criadas visando a mudança, então programe orientado à interface.
Outros pontos que não posso deixar de citar são: Todos os testes devem estar passando; refatoração deve ser feita constantemente, visando à melhoria contínua; código duplicado deve ser evitado a todo custo; classes e métodos devem ser pequenos; o código deve ser o mais expressivo possível.
Esse resumo é um levantamento de alguns pontos importantes, tanto que aqui é mostrado o que deve ser feito, não o porquê ou o como, isso pode ser encontrado no livro. Esse post é o primeiro passo, espero que todos dêem continuidade lendo esse livro e muitos outros, buscando criar um código melhor. Eu não quero mais código sujo atrapalhando a minha vida. E você?
(Resumo feito  por Juliano Alves)

sexta-feira, agosto 12, 2011

segunda-feira, março 28, 2011

Arquivo XML para emissão de encomendas aos Correios

Não achei nada na net, então ai vai o inicio de um trabalho que estou fazendo para enviar encomendas volumosas aos Correios.
O nome do sistema dos Correios se chama SARA, se você estiver fazendo algum sistema que administra encomendas enviadas aos correios pode criar um arquivo xml nos padrões do SARA e enviar para eles. Isso evita preencher aqueles formulários limitados que são disponibilizados para encomendas.
Sei que muito DBA vai dizer "mas da pra fazer isso com FOR XML EXPLICIT", dá sim, mas da um trabalho escroto se vc estiver trabalhando com vários joins, é union e campo NULL que não acaba mais. Em C# ficou mais claro e fácil.
Fiz um pequeno exemplo que pode ser baixado nos links abaixo:

Layout SARA

Projeto Exemplo

terça-feira, fevereiro 08, 2011

Windows 7 64 bits javascript No such interface supported - FIXED !!!

Finalmente conseguir resolver a porcaria de erro que não deixava rodar um simples window.open!
foi tão foda de achar a solução que resolvi compartilhar.

Download/run the appropriate, newly-updated script(s) by IE MVP Kai Schaetzl:
http://iefaq.info/index.php?action=artikel&cat=42&id=133&artlang=en

Tip: The file named ie8-rereg.all.zip contains all three (3) scripts below.
If you have a Win7 32-bit computer:
• Close all open applications (i.e., anything with an icon on the taskbar) then Run the script named ie8-rereg.cmd & reboot.
If you have a Win7 64-bit computer:
• Close all open applications (i.e., anything with an icon on the taskbar) then Run the script named ie8-rereg.32on64.cmd to correct the problem in IE8 32-bit & reboot.

• Close all open applications (i.e., anything with an icon on the taskbar) then Run the script named ie8-rereg.64on64.cmd to correct the problem in IE8 64-bit & reboot.

NB: If the above is your fix, either a Norton or McAfee application is installed or one had been installed. YMMV.

Fonte: social.answers.microsoft.com

segunda-feira, dezembro 06, 2010

SQL Convertendo Colunas em Linhas

Pelo menos uma vez na vida você que trabalha com dados já passou pro este problema, uma tabela com 3 colunas normalizadas e outras 25 que deveriam se transformar em uma unica coluna.
A mágica se chama UNPIVOT, saboreem:


SELECT
[LOTE],
[PRODUTO],
[CAIXA],
NU_TITULO
FROM
   (
SELECT
[LOTE],
[PRODUTO],
[CAIXA],
TITULO1, TITULO2, TITULO3, TITULO4, TITULO5,
TITULO6, TITULO7, TITULO8, TITULO9, TITULO10,
TITULO11, TITULO12, TITULO13, TITULO14, TITULO15,
TITULO16, TITULO17, TITULO18, TITULO19, TITULO20,
TITULO21, TITULO22, TITULO23, TITULO24, TITULO25

FROM
[TAB_ENTRADA_lotes]
) p
UNPIVOT
   (NU_TITULO FOR Titulo IN
      ( TITULO1, TITULO2, TITULO3, TITULO4, TITULO5,
TITULO6, TITULO7, TITULO8, TITULO9, TITULO10,
TITULO11, TITULO12, TITULO13, TITULO14, TITULO15,
TITULO16, TITULO17, TITULO18, TITULO19, TITULO20,
TITULO21, TITULO22, TITULO23, TITULO24, TITULO25)
)AS unpvt;

sábado, novembro 20, 2010

nopCommerce com módulo PagSeguro e Correios

Módulo de pagamento PagSeguro UOL para nopCommerce e
Módulo Correios para nopCommerce.

Após publicar a primeira loja a WikiCode se deparou com a necessidade de fazer as cobranças através de cartão de crédito e ou boleto bancário e o cálculo do frete utilizando o site dos Correios. Não foi surpresa não encontrar um módulo de cobrança que utilizasse uma empresa brasileira, como o PagSeguro da UOL, pois a ferramenta tem diversos colaboradores e a maioria é dos EUA. 

Uma solução foi desenvolvida e está a venda na Wikicode. 

Quem estiver interessado no módulo enviar e-mail para nopcommerce@wikicode.com.br. O mesmo pode ser acessado no site de exemplo publicado no endereço http://loja.wikicode.com.br.

domingo, outubro 10, 2010

Lean Thinking

O termo lean foi cunhado ao final da década de 80 em um projeto de pesquisa do Massachusetts Institute of Technology (MIT) sobre a indústria automobilística mundial. 

A pesquisa revelou que a Toyota havia desenvolvido um novo e superior paradigma de gestão nas principais dimensões dos negócios (manufatura, desenvolvimento de produtos e relacionamento com os clientes e fornecedores).

Naquela época, a montadora japonesa não estava nem entre as dez maiores do mundo. Em 2009, a Toyota tornou-se a maior em volume de vendas, acumulando vitória após vitória ao longo destas décadas, mostrando as vantagens e benefícios do sistema que desenvolveu. Não se trata de um conceito exclusivo da Toyota, podendo ser aplicado por empresas de qualquer negócio e em qualquer país ou região. Deve ser visto como um sistema de gestão para toda a empresa.

Lean é uma estratégia de negócios para aumentar a satisfação dos clientes através da melhor utilização dos recursos. 
A Gestão Lean procura fornecer consistentemente valor aos clientes com os custos mais baixos (PROPÓSITO) através da identificação de melhoria dos fluxos de valor primários e de suporte (PROCESSOS) por meio do envolvimento das pessoas qualificadas, motivadas e com iniciativa (PESSOAS). 
O foco da implementação deve estar nas reais necessidades dos negócios e não na simples aplicação das ferramentas lean.
As práticas envolvem a criação de fluxos contínuos e sistemas puxados baseados na demanda real dos clientes, a análise e melhoria do fluxo de valor das plantas e da cadeia completa, desde as matérias-primas até os produtos acabados, e o desenvolvimento de produtos que efetivamente sejam soluções do ponto de vista do cliente.

A adoção dessa filosofia tem trazido resultados extraordinários para as empresas que a praticam, ainda que poucas empresas tenham conseguido replicar totalmente o sucesso e a eficiência operacional alcançados pela Toyota. Originalmente concebidas como práticas de manufatura, tem sido gradualmente disseminadas em todas as áreas da empresa e também para empresas dos mais diferentes tipos e setores, tornando-se efetivamente uma filosofia e uma cultura empresarial.
Os resultados obtidos geralmente implicam aumento da capacidade de oferecer os produtos que os clientes querem, na hora que eles precisam, nos preços que estão dispostos a pagar, com custos menores, qualidade superior, "lead times" mais curtos, garantindo assim maior rentabilidade para negócio.

quinta-feira, outubro 07, 2010

SQL Server 2008 - Criando os índices necessários

Você sabia que o SQL Server mantem o controle dos índices que ele acha que você deve criar? A "falta de índice" DMVs  é uma grande novidade no SQL Server 2005, que (na minha opinião) parecem ter sido pouco utilizado até agora. Se você quiser ver se esse recurso e poupá-lo do tédio de uma tarde de identificação baixo desempenho de consultas, tudo que você tem a fazer é :

SELECT
  migs.avg_total_user_cost * (migs.avg_user_impact / 100.0) * (migs.user_seeks + migs.user_scans) AS improvement_measure,
  'CREATE INDEX [missing_index_' + CONVERT (varchar, mig.index_group_handle) + '_' + CONVERT (varchar, mid.index_handle)
  + '_' + LEFT (PARSENAME(mid.statement, 1), 32) + ']'
  + ' ON ' + mid.statement
  + ' (' + ISNULL (mid.equality_columns,'')
    + CASE WHEN mid.equality_columns IS NOT NULL AND mid.inequality_columns IS NOT NULL THEN ',' ELSE '' END
    + ISNULL (mid.inequality_columns, '')
  + ')'
  + ISNULL (' INCLUDE (' + mid.included_columns + ')', '') AS create_index_statement,
  migs.*, mid.database_id, mid.[object_id]
FROM sys.dm_db_missing_index_groups mig
INNER JOIN sys.dm_db_missing_index_group_stats migs ON migs.group_handle = mig.index_group_handle
INNER JOIN sys.dm_db_missing_index_details mid ON mig.index_handle = mid.index_handle
WHERE migs.avg_total_user_cost * (migs.avg_user_impact / 100.0) * (migs.user_seeks + migs.user_scans) > 10
and mid.database_id=33
ORDER BY migs.avg_total_user_cost * migs.avg_user_impact * (migs.user_seeks + migs.user_scans) DESC