quinta-feira, 18 de abril de 2019

Criando relatórios para o Project Roadmap - parte 1

Olá pessoal –

Em alguns posts anteriores aqui no blog, procurei explorar um pouco mais sobre a nova plataforma da Microsoft, o Project Roadmap. Em Outubro de 2018 publiquei o primeiro post com a visão geral do Roadmap; já em Dezembro eu tive o prazer de escrever um artigo junto ao Kenneth Steiness para explicar em mais detalhes os contextos nos quais o Roadmap poderia ser utilizado; finalmente, em Janeiro deste ano eu escrevi um terceiro post para discutir alguns recursos e funcionalidades da plataforma.

Os posts e artigos escritos anteriormente tinham como objetivo iniciar a conversa sobre o Project Roadmap, assim como explorar cenários sobre como a plataforma pode contribuir com o planejamento estratégico das organizações. A partir de agora, a ideia é entrar em alguns detalhes mais técnicos, principalmente no que se refere à criação de relatórios, painéis e dashboards com dados oriundos do Roadmap.

Como você já deve ter lido em algum dos posts anteriores, quando novos roadmaps são criados, os dados são armazenados no CDS (Common Data Services for Apps), e não no tradicional banco de dados OData que armazena dados dos projetos criados no Project Online. Nesse sentido, o resultado prático é que administradores do Project Online, que por padrão possuem acesso ao serviço de relatórios do Project Online (ou seja, podem estabelecer conexões com o banco OData para criar seus relatórios), não terão as mesmas permissões no CDS, e assim não irão conseguir acessar o banco de dados para extrair as informações de que precisam.

Com base nesse contexto, neste post vamos entender um pouco mais sobre o processo de extração de informações do CDS, os bloqueios existentes e os ajustes que precisam ser feitos para garantir que os usuários sejam atribuídos às permissões devidas.

Como saber onde os dados do roadmap são armazenados?

O primeiro passo para construir relatórios com dados dos roadmaps é descobrir a URL que contém o endereço da instância do Dynamics 365 onde os dados estão armazenados. Para isso, abra o navegador e digite https://powerapps.microsoft.com. Na página inicial do PowerApps, clique na engrenagem e então Personalizações Avançadas > Recursos para desenvolvedor:



A página seguinte irá exibir a URL da API do Dynamics a qual você deverá se conectar para obter dados dos roadmaps construídos na sua organização:




Para o meu ambiente de demonstração, a URL do Dynamics 365 é: https://org48c5c3c8.crm2.dynamics.com/


Obtendo dados de roadmaps
Uma vez com o endereço da URL do Dynamics 365 teríamos condições de, em teoria, estabelecer uma conexão com o CDS para obter os dados dos roadmaps e iniciar a construção dos relatórios. No Power BI Desktop, podemos clicar em Obter Dados > Online Services > Common Data Service for Apps (Beta):



Em seguida deve ser inserida a URL com a fonte de dados:



Ao clicar em OK deve-se entrar com as credenciais que farão a autenticação junto ao Dynamics 365. Uma vez realizada a autenticação, será possível identificar todas as entidades disponíveis no ambiente do Dynamics 365. É possível pesquisar o termo ‘roadmap’ para facilitar a identificação de todas as entidades relacionadas ao Roadmap, que são:


- msdyn_roadmap
- msdyn_roadmapitem
- msdyn_roadmapitemlink
- msdyn_roadmapRowLink

- msdyn_usersetting


No próximo post iremos discutir em mais detalhes cada uma das entidades, incluindo como as informações estão estruturadas em cada uma delas e como devemos utilizá-las para construir os nossos relatórios, painéis e dashboards. Por enquanto, ainda temos uma barreira a superar.

O problema atual é que, após selecionar as entidades do Roadmap e clicar em carregar, nenhuma informação é exibida:


Ao clicar no Editor de Consultas do Power BI é possível entender o motivo de os dados não terem sido carregados:


A mensagem de erro apresentada é clara: Expression:Error: Access to the resource is forbidden – ou seja, a conta utilizada não possui as permissões necessárias para obter os dados do Dynamics 365.

Concedendo permissões para leitura de dados dos roadmaps no dynamics 365

Para resolver o problema de permissionamento, você precisará da ajuda de alguém que possua permissões globais no ambiente do Office 365 da sua empresa. Essa pessoa deverá: 1) criar uma nova função (role) que terá as devidas permissões de leitura nas entidades do Roadmap; 2) atribuir a nova função aos usuários que irão consumir os dados do Roadmap para criar os relatórios. O passo-a-passo para está listado abaixo:

1. Acessar o ambiente do PowerApps (https://powerapps.microsoft.com) e clicar na engrenagem > Funções de segurança


2. Na página seguinte, clicar em New para criar uma nova função


3. Neste exemplo, irei nomear a nova função como ‘Roadmap Reporting


4. Em seguida, clicar em Custom Entities para determinar o tipo de permissão a ser associada às entidades do Roadmap para os usuários que forem atribuídos à esta função. A permissão Read (leitura) deve ser combinada com a Key Organization



5. Clicar em Save and Close

6. Na janela seguinte, junto à nova função, clicar no link do Business Unit para acessar as configurações personalizadas da organização


7. Em seguida deve-se selecionar o(s) usuário(s) que será(ão) atribuído(s) à função. Clicar em More Actions > Assign Roles


8. Por fim, basta associar os usuários com a nova função para que eles tenham condições de extrair dados referentes aos roadmaps


Uma vez que as devidas permissões forem corrigidas, você deverá estar apto a obter os dados que serão utilizados no relatório:


Fique ligado pois nos próximos posts falaremos mais sobre a construção dos relatórios, painéis e dashboards com dados do Roadmap.

Um abraço e até o próximo post!

domingo, 3 de março de 2019

Nunca atribua recursos à tarefas resumo

Olá pessoal –

Muitos gerentes de projeto que utilizam o Microsoft Project acabam não seguindo as boas práticas de utilização do software – as vezes por desconhecimento, as vezes por negligência – o que pode gerar resultados diferentes daqueles esperados para o cronograma, podendo inclusive comprometer o planejamento, a execução e a monitoria e controle do empreendimento.

Uma das ações mais comuns dos gerentes de projeto com os quais trabalho no meu dia-a-dia é a de atribuir recursos à tarefas resumo (as tarefas resumo são aquelas que representam um grupo comum de tarefas do projeto, normalmente representando uma fase do projeto). O argumento utilizado, na maioria dos casos, é o seguinte: “o recurso fulano será responsável por toda essa fase do projeto, logo, vou atribuí-lo à fase (tarefa resumo) ao invés de atribuí-lo a cada tarefa individualmente, o que seria muito trabalhoso”.

Esta é, definitivamente, uma prática não recomendada ao se trabalhar com o Microsoft Project. E como sempre procuro explicar com exemplos práticos os motivos de não recomendar que se trabalhe no software dessa maneira, resolvi escrever este post pois assim podemos ajudar um maior número de pessoas e também pra já ter tudo documento nos casos futuros 😊.

Abaixo vou listar os principais motivos para que se evite a atribuição de recursos à tarefas resumo.

Problema #001 – superalocação, atribuições duplicadas e cálculo de esforço incorreto

Ao atribuir recursos à tarefas resumo, o MS Project poderá acabar apresentado resultados divergentes no que se refere ao montante de trabalho (esforço) requerido ao recurso ao longo do projeto. Além disso, outros problemas também podem acontecer, a depender de como as atribuições são configuradas. Os problemas mais comuns são:

1 - Cálculo incorreto do montante de horas de trabalho (esforço) requerido ao recurso

2 - Problemas de superalocação e duplicidade de trabalho caso o recurso também esteja atribuído às subtarefas

Veja o exemplo abaixo, referente ao primeiro cenário. Ao atribuir o recurso apenas à tarefa resumo, o cálculo do trabalho apresenta um valor incorreto (enquanto o montante total de esforço do recurso é de 24 horas, o trabalho total esperado para as 3 sub-tarefas do projeto é de 72 horas):


Já no segundo cenário, caso o recurso também seja atribuído às sub-tarefas, o montante de esforço será calculado em duplicidade. Perceba que o trabalho esperado para o projeto já não é mais de 72 horas (a soma das 3 sub-tarefas), mas sim de 96 horas. Além disso, uma vez que há atribuições em duplicidade, o recurso também passa a ser apresentado como superalocado, pois o total de esforço de suas atribuições será superior à sua capacidade diária de trabalho:


Apenas para contextualizar melhor, em ambos os casos estou utilizando um modo de exibição combinado, ou seja, uma janela dividida com os modos de exibição Gráfico de Gantt e Uso dos Recursos.
            
Problema #002 – reporte de progresso

Outro problema recorrente da atribuição de recursos à tarefas resumo se dá quando é necessário reportar o progresso das tarefas. Por padrão, o comportamento das tarefas resumo no Microsoft Project é o de absorver e consolidar o montante de progresso reportado nas suas sub-tarefas. Nesse sentido, caso o reporte de progresso seja realizado nas sub-tarefas, o percentual concluído da tarefa resumo será calculado automaticamente pelo software:


Da mesma maneira, ao reportar progresso na tarefa resumo, as sub-tarefas serão impactadas automaticamente, mesmo que essa não seja a intenção:


Problema #003 – modelos de cronograma

Se você utiliza uma plataforma unificada de gerenciamento de projetos como o Microsoft PPM (Project Server ou Project Online), você não poderá iniciar novos projetos que tenham como modelo um cronograma com recursos atribuídos à tarefas resumo. Ao iniciar a criação de um novo projeto, a plataforma bloqueia o processo e uma mensagem de erro é apresentada, de modo que não é possível concluir a ação.

Conclusão

Para finalizar este post e reforçar a ideia de que nunca devemos atribuir recursos à tarefas resumo, para além dos argumentos citados anteriormente, acredito que valha a pena fazer uma pequena reflexão: em um projeto, as pessoas (recursos) são responsáveis pela execução de atividades (tarefas) que, juntas, formam um determinado pacote de trabalho (normalmente representada em uma tarefa resumo). Nesse sentido, um recurso nunca será, na prática, responsável por uma “fase” do projeto: ao contrário, ele irá executar ações coordenadas para que as entregas daquela fase sejam realizadas.

Portanto, se você ainda faz parte do time dos gerentes de projeto que atribuem recursos à tarefas resumo, chegou a hora de mudar de lado.

Como já é de praxe, neste link você poderá fazer o download deste post. 

Um forte abraço e até o próximo post!


quinta-feira, 7 de fevereiro de 2019

MVP Conference LATAM 2019


Olá pessoal,

Como aconteceu no ano passado, este ano teremos a segunda edição do MVP Conference LATAM 2019, o maior evento técnico realizado por experts Microsoft na América Latina.

O MVP Conf 2019 será realizado nos dias 12 e 13 de Abril, na Universidade Anhembi Morumbi em São Paulo.

O MVP Conf é realizado e mantido pelo time de MVPs do Brasil (com apoio da Microsoft) e neste ano irá entregar mais de 140 palestras nas mais variadas trilhas: .NET, Acessibilidade, Banco de Dados, Big Data, Gerenciamento de Projetos, Power BI, Office 365, Inteligência Artificial, Machine Learning, IoT entre outras.

Eu também irei palestrar no evento, na trilha de gerenciamento de projetos. O tema da minha palestra será: Data Driven Decisions: Como extrair dados do Project Online e SharePoint com o Power BI para criar Painéis, Relatórios e Dashboards para o Escritório de Projetos. O objetivo da palestra será apresentar casos de uso reais sobre como obter, modelar e apresentar informações do portfólio de projetos do Project Online através do Power BI, criando visualizações que dêem suporte ao PMO no processo de tomada de decisão. Na palestra irei utilizar experiências e desafios reais do meu dia-a-dia como consultor PPM, e como cada solução foi desenvolvida para resolver as necessidades de negócio apresentadas.

Ainda na trilha de gerenciamento de projetos, teremos outras sessões imperdíveis:

> O André Xavier irá entregar uma sessão sobre o Roadmap
> O Ricardo Monge falará sobre características gerais do Project Online, seus benefícios e melhores práticas de adoção
> O Mário Trentim fará um dueto com o João Benito Savastano para compartilhar dicas e truques sobre como efetuar a gestão ágil de projetos com o Project e o Planner

Isso sem contar inúmeras outras palestras das mais de 16 trilhas com os maiores experts do mercado.

Porém, caso você ainda esteja pensando se vale a pena participar do MVP Conf 2019, fica aqui o argumento final: 100% do valor arrecadado com o evento será destinado a 5 instituições beneficentes em diferentes regiões do Brasil. Ou seja, além de melhorar seus conhecimentos, ter a oportunidade de fazer networking com um super time de especialistas em plataformas Microsoft e dar um up na sua carreira, você também irá contribuir (e muito) com quem realmente precisa! 🙌

Acesse o site do MVP Conf, confira a grade de palestras, faça sua inscrição e participe conosco:  https://mvpconf.com.br/

Te vejo em Abril! Apareça lá na minha palestra e vamos bater um papo!


#MVPConf


quinta-feira, 31 de janeiro de 2019

Roadmap - Recursos e Funcionalidades

Olá pessoal,

Dando continuidade ao post publicado no mês de Dezembro, onde em parceria com o Kenneth Steiness eu pude explicar o funcionamento e o processo de construção de roadmaps, no post de hoje gostaria de explorar alguns recursos e funcionalidades adicionais da plataforma, para que seja possível dinamizar o trabalho e entender um pouco melhor o funcionamento do Roadmap nos bastidores.

ADICIONANDO ITENS PELA CENTRAL DE PROJETOS

Quando o Roadmap é habilitado no Office 365, o Project Online ganha um novo comando na Faixa de Opções (Ribbon) da Central de Projetos – este comando foi traduzido como Adicionar ao Roteiro. Através deste comando, os usuários do Roadmap podem rapidamente adicionar tarefas resumo, tarefas regulares ou marcos às linhas do seu roadmap.


Este é um recurso que facilita bastante a escolha dos elementos que devem ser exibidos no roadmap – sendo que o fator principal se deve ao fato de que adicionar as tarefas pela página do próprio Roadmap, como eu mostrei no post anterior, pode ser um pouco confuso, uma vez que não se tem visibilidade sobre todos os detalhes das tarefas sendo adicionadas.

Aqui, cabe ressaltar um ponto muito importante: só é possível adicionar tarefas de um cronograma via Central de Projetos caso o projeto em questão já tenha sido previamente conectado ao Roadmap. Caso você acesse o projeto diretamente (via Central de Projetos) sem antes tê-lo conectado ao roadmap, ao pressionar o comando Adicionar ao Roteiro será apresentado à seguinte mensagem:


Uma vez estabelecida a conexão entre o roadmap e o cronograma, ao clicar novamente em Adicionar ao Roteiro você estará apto a dar continuidade às configurações:


Também é interessante perceber que você pode selecionar múltiplas linhas do cronograma para adicioná-las de uma vez só ao seu roadmap:



PERMISSÕES DE ACESSO

Ao criar novas linhas em um roadmap, você precisa determinar o seu proprietário. Do ponto de vista do Roadmap, os proprietários são as pessoas responsáveis pela entrega (e também pela gestão) dos itens (tarefas regulares / tarefas resumo / marcos) incluídos na linha.

Nesse sentido, seria natural concluir que, ao determinar um proprietário para uma linha, esta pessoa recebesse automaticamente as permissões de acesso ao roadmap, correto? Pois é, infelizmente não é bem assim...

Peguemos como exemplo o Arthur Mamede: no cenário que estamos acompanhando nesse post, o Arthur foi incluído como proprietário da linha ‘Processos & Escritório’. Entretanto, ao acessar a página Home (https://project.microsoft.com), ele não possui visibilidade do roadmap há pouco criado:


Portanto, para que alguém possua acesso a um roadmap (mesmo que sendo proprietário de uma ou mais linhas), é necessário que esta pessoa seja adicionada como um membro do roadmap:


Deste modo, na próxima vez que o Arthur tentar acessar a seção Compartilhados comigo na página Home, terá visibilidade do novo roadmap e poderá acessá-lo normalmente:


E SE UM PROJETO FOR EXCLUÍDO?

Caso um projeto conectado a uma linha do roadmap venha a ser excluído, na próxima vez em que a sincronização for realizada pelo Microsoft Flow, uma mensagem de erro será apresentada junto à linha em questão:


Ao clicar em Detalhes será possível entender o motivo da falha na sincronização das informações, e então o projeto poderá ser removido:


E você, já está utilizando o Roadmap na sua organização?

Vou ficando por aqui, um forte abraço e até a próxima!