quarta-feira, 16 de outubro de 2019

Introduzindo o Project for the Web

Olá pessoal –

Ontem, dia 15 de Outubro de 2019, a Microsoft oficialmente iniciou a divulgação da nova versão do Project, que irá se chamar ‘Project for the Web’. De acordo com o post publicado, todos os clientes que já possuem ao menos uma licença do tipo Microsoft Project Premium ou Microsoft Project Professional irão também obter acesso ao Project for the Web ainda nesse mês de Outubro.

A princípio não haverá custos adicionais para os clientes no que se refere à introdução do Project for the Web. A tabela abaixo, tirada do post publicado pela Microsoft, exibe os tipos de licença e seus respectivos produtos:


Dois links importantes, que podem auxiliar no entendimento sobre o novo serviço e suas diferenças para o serviço atual do Project Online, também foram compartilhados:



Irei publicar uma série de posts ao longo dos próximos dias/semanas para focar no novo serviço, suas funcionalidades, recursos e principais diferenças se comparado ao serviço atual do Project Online. 

Vamos explorar os cenários de utilização de cada serviço, e entender o Roadmap da Microsoft e como se planejar para implantar o serviço na nossa organização.


Fique ligado aqui no blog e também lá no canal no YouTube.


segunda-feira, 7 de outubro de 2019

Flow e Project Online: Gatilhos e Conectores Nativos (parte 2)

Olá pessoal –

Dando continuidade à parte 1 do vídeo sobre gatilhos e conectores nativos do Flow para o Project Online, vamos falar hoje sobre a ação Listar projetos. Esta é uma ação nativa que tem como objetivo disponibilizar/listar algumas informações dos projetos disponíveis no ambiente do Project Online.

Para simular um cenário real de utilização da ação Listar Projetos, digamos que um administrador do Project Online queira receber semanalmente a listagem dos projetos que foram deixados em check-out.

Para começar, vou iniciar um novo Flow e então definir uma recorrência semanal, sempre às segundas-feiras. Em seguida, a nova etapa utilizará o conector do Project Online que possui a ação Listar Projetos:


Esta ação possui apenas um parâmetro de entrada, que é o endereço do site raiz do Project Online:


Uma coisa que eu gosto bastante de fazer para aprender como o Flow trabalha nos bastidores, e também para descobrir quais são os resultados disponíveis no contexto da ação executada, é executar o fluxo de fato. O objetivo aqui é descobrir se entre os campos retornados na ação Listar Projetos há algo que permita descobrir se o projeto está ou não em check-out. Portanto, vou executar o Flow e descobrir a lista de campos retornados na ação:


Uma vez confirmada a existência da propriedade chamada “IsCheckedOut”, vamos prosseguir. Como o objetivo é listar apenas os projetos em check-out, na próxima etapa vou incluir a ação Matriz do filtro (em inglês, Filter array), que permite a segmentação das informações obtidas através da aplicação de um critério. O filtro será aplicado com base no valor retornado Projetos retornados Foi feito check-out:


A condição deve ser verdadeira (true):


So far so good... temos a nossa lista de projetos em check-out. A questão agora é: como organizá-la? Para enviar a lista por e-mail, uma boa alternativa é convertê-la em uma tabela, para que os dados sejam estruturados adequadamente. Nesse sentido, na próxima etapa vou utilizar a ação Criar Tabela HTML, onde iremos obter o resultado/output do passo anterior como entrada/input:


Aqui é importante notar algo relevante: apesar de o passo anterior estar filtrando apenas os projetos em check-out, todas as propriedades (colunas) estão sendo obtidas... isso significa que a tabela HTML não será estruturada adequadamente caso alguns ajustes não sejam feitos. Desse modo, ainda nesta etapa, clique em Mostrar opções avançadas para que seja possível determinar quais são as informações a serem exibidas na tabela. Perceba que você poderá criar um cabeçalho e então determinar quais propriedades deseja utilizar:



Nesse ponto acabei descobrindo que há um pequeno bug no conector do Flow 😕. Os resultados obtidos na ação Matriz do filtro disponibilizam uma propriedade chamada ‘Nome do Projeto’, que em teoria deveria trazer o nome do projeto conforme filtrado anteriormente. Acontece que, por algum motivo desconhecido, essa propriedade não está relacionada ao nome do projeto, mas sim à propriedade ‘Nome do Tipo de Projeto da Empresa’. Isso que dizer que a tabela não irá conseguir disponibilizar/listar os nomes dos projetos em check-out 😔.

Tenho que confessar que eu fiquei bem frustrado ao descobrir isso, pois o nome do projeto é uma propriedade essencial para o tipo de resultado que desejamos obter nesse exemplo. De qualquer maneira, já reportei o bug à Microsoft, então vamos continuar... ao invés de retornar os nomes dos projetos em check-out, iremos retornar outras três informações:

- O identificado do projeto
- A última data em que o projeto foi salvo
- O Id interno do projeto


Ao rodar o fluxo, teremos o seguinte resultado:


Para finalizar, vou configurar o envio de um e-mail com base nos resultados da tabela HTML. Nas configurações da ação Enviar um email lembre-se de expandir as opções avançadas para determinar que se trata de uma mensagem HTML:


Quando o fluxo rodar na data pré-definida, as notificações serão enviadas conforme exemplo abaixo:


Considerações


Como foi possível observar nesse post e também no post anterior, infelizmente os gatilhos e conectores nativos do Flow com o Project Online parecem não terem recebido a atenção merecida, exigindo certo malabarismo para que seja possível trabalhar com as informações que precisamos. Por este motivo irei dar continuidade a esta série de posts, onde iremos continuar explorando outras alternativas que permitam maior flexibilidade na obtenção dos campos disponíveis na api do Project Online. Fique ligado aqui no blog.

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

quarta-feira, 2 de outubro de 2019

Microsoft Ignite the Tour: I will be speaking!

Olá pessoal –


O Microsoft Ignite é uma conferência global anual, voltada para desenvolvedores e profissionais de TI. Em 2019, a conferência irá acontecer em Orlando FL, entre os dias 4 e 8 de Novembro.

Para abranger um número maior de pessoas e exponenciar os conteúdos apresentados no Ignite, a Microsoft criou o Ignite The Tour, que são versões menores do evento global distribuídas em várias cidades ao redor do globo. O tour passará por São Paulo entre os dias 12 e 13 de Dezembro, e as inscrições já estão abertas!

A boa notícia é que hoje eu recebi a confirmação de que duas palestras que submeti foram aprovadas, ou seja, I will be speaking at Ignite the Tour! 🎉🥳🚀. As minhas sessões serão:

- Power Platform & Project Management: creating a PowerApps app to read Project Online data
- Portfolio snapshoting: creating a trend analysis report from Project Online with Flow, SharePoint and Power BI

Então corra, visite a página do evento e faça a sua inscrição. É um evento gratuito, com muito conteúdo relevante, entregue pelos principais profissionais do país!

Te vejo no Transamérica Expo Center em Dezembro!

terça-feira, 1 de outubro de 2019

Flow e Project Online: Gatilhos e Conectores Nativos

Olá pessoal –

Trabalhe menos, faça mais. Este é o bordão do Microsoft Flow, uma plataforma pertencente ao ecosistema Power Platform que tem como objetivo permitir a criação de fluxos automatizados entre diferentes aplicativos e serviços, de modo a enviar/obter notificações, sincronizar arquivos, coletar dados entre muitas outras possibilidades.

Há cerca de um ano eu escrevi um post para falar sobre as minhas primeiras impressões sobre o Flow, e como as organizações podem utilizá-lo para automatizar alguns processos no Project Online. Desde então, também passei a gravar conteúdo no meu canal do YouTube, criando uma playlist para falar exclusivamente sobre a integração dos aplicativos do Power Platform com a suíte PPM.

Trago esse assunto de volta ao blog porque acredito que é preciso contextualizar um pouco mais os recursos, as funcionalidades e aplicabilidades do Flow, assim como suas limitações – principalmente quando falamos da sua combinação com o Project Online. Nesse sentido, a ideia é escrever alguns posts para explorar um pouco mais a fundo as possibilidades de utilização do Flow no contexto do gerenciamento de projetos.

gatilhos e conectores

No Microsoft Flow, os usuários podem criar fluxos que executam uma ou mais tarefas automaticamente depois que ela é disparada por um evento. No âmbito do Project Online, o Flow possui 4 gatilhos:

- Quando um novo projeto é criado
- Quando um novo recurso é criado
- Quando um projeto é publicado
- Quando uma nova tarefa é criada


Uma vez acionado um gatilho, você pode determinar as ações a serem tomadas pela plataforma. E é aí que a coisa aperta...

Vamos supor que você queira criar um fluxo simples: todas as vezes que um projeto for publicado no Project Online, um e-mail deve ser enviado. O Microsoft Flow utiliza o conceito de etapas, onde uma ação deve ser tomada a partir dos gatilhos e/ou eventos passados. Ao fazer isso, a plataforma proporciona aos usuários os Conteúdos Dinâmicos: os resultados das etapas anteriores estão disponíveis como conteúdo dinâmico para serem eventualmente utilizados na ação seguinte.

Veja o exemplo da imagem abaixo: ao adicionar uma nova etapa que contém a ação Enviar um email, após selecionar a área do corpo do email você poderá utilizar o conteúdo dinâmico da etapa anterior – neste caso, os campos do Project Online que foram obtidos no gatilho Quando um projeto é publicado:


O grande problema aqui é que o conector nativo do Flow para o Project Online disponibiliza apenas uma fração dos campos existentes – que, na sua grande maioria, são campos pouco relevantes. Outro ponto importante a se notar é que os campos personalizados, que são utilizados pela maioria das organizações para classificar e definir as propriedades e os atributos dos projetos, infelizmente não são disponibilizados pelo conector nativo do Flow.

Utilizando campos não disponibilizados pelo conector nativo do flow

A boa notícia é que é possível utilizar os campos que não são disponibilizados de maneira nativa pelo conector do Microsoft Flow com o Project Online, e é aqui que temos o famoso ‘pulo do gato’.

Quando um novo fluxo é criado e executado, suas entradas e saídas podem ser exibidas, de maneira que o usuário possa entender um pouco mais sobre o que acontece por trás das cortinas. Se criássemos um fluxo bem simples, que enviasse um e-mail contendo apenas o nome do projeto toda vez que um projeto é publicado, ao visualizarmos os resultados seria possível identificar, no corpo da ação, uma série de campos do Project Online que, de maneira nativa, não estão disponíveis nos conteúdos dinâmicos. Um exemplo claro é o capo “EnterpriseProjectTypeName”:


Ao navegar entre os campos disponíveis no corpo da ação, é possível concluir que o Flow de fato consegue ler todos os campos da base do Project Online. O que acontece é que o conector nativo foi desenhado de maneira a não disponibilizar esses campos nos conteúdos dinâmicos... pois é, vai entender.

Para forçar a inclusão dos campos desejados, voltemos ao nosso exemplo: suponha que o email a ser enviado tenha de conter as informações de Percentual Concluído (que é um campo nativo do Project Online), Patrocinador, Status de Prazo e Programa (que são campos personalizados criados no ambiente). Pois bem, na ação Enviar um email, inclua um campo qualquer do conteúdo dinâmico (eu incluí o campo Projetos Retornados Nome do Projeto); em seguida, passe o mouse sobre o campo retornado: você irá visualizar a expressão que o Flow utiliza para obter esse campo da base do Project Online:

triggerBody()?[‘ProjectName’]

Bah.... taí a solução dos nossos problemas. Basta utilizar o construtor de expressões (ao invés do conteúdo dinâmico) para referenciar os campos desejados a partir do corpo do gatilho. No meu exemplo, os nomes dos campos personalizados que foram criados no meu ambiente são:

triggerBody()?[‘Sponsor’]
triggerBody()?[‘ScheduleKPI’]
triggerBody()?[‘Program’]


Após configurar todos os campos, o fluxo será apresentado conforme a imagem abaixo:


E então, quando os projetos forem publicados, as mensagens de e-mail serão disparadas contendo o conteúdo requerido:


Muito bom, não acha? 😎

Como eu havia comentado em outros posts (e como estou frequentemente comentando nos meus vídeos no YouTube), os aplicativos disponibilizados no ecosistema Power Platform terão um impacto gigantesco na maneira como trabalhamos, então a recomendação é se planejar e reservar tempo para aprender a utilizar esses aplicativos o quanto antes.

Minha contribuição estará em continuar gravando vídeos e escrevendo posts sobre casos de uso e soluções de negócio que envolvam o Project Online, SharePoint, Flow, PowerApps e Power BI. Fique ligado!

Espero que tenha gostado desse post, e até o próximo!


quinta-feira, 12 de setembro de 2019

O novo Project, reimaginado!

Olá pessoal –

Nesta semana a Microsoft publicou no Centro de Mensagens do Office 365 que a nova experiência para gerenciamento de projetos, baseado no novo serviço a princípio chamado de ‘Project Service’, começará a ser disponibilizado a partir de Outubro/2019:


Quando a Microsoft utiliza o termo ‘reimaginado’ ela não está brincando: a nova versão do Project foi construída do zero, utilizando-se do Microsoft Power Platform como fundação – ou seja, adeus SharePoint! A experiência do usuário, do ponto de vista de navegação e interatividade, também foi completamente remodelada, uma vez que agora teremos uma interface mais simples e intuitiva.

Em um post publicado aqui no blog há um ano eu já havia comentado a respeito da visão de futuro da Microsoft para as plataformas integrantes do ecosistema de gerenciamento de projetos, com o objetivo principal de que haja comunicação, integração e colaboração com todo o ecosistema e plataformas do Microsoft Power Platform. No meu canal do YouTube eu já iniciei uma playlist para falar com mais detalhes sobre o Power Platform – hoje os vídeos ainda estão focados no Flow, mas teremos novas gravações expandindo os temas e abordando outras ferramentas. A página oficial do Roadmap do Microsoft Project também já disponibiliza informações atualizadas sobre a programação de lançamento/disponibilização do Project Service.

Como o novo ‘project service’ irá me afetar?

Por enquanto não haverá nenhuma mudança significativa para as organizações que utilizam o Project Online – ou seja, o serviço continuará funcionando normalmente. O novo serviço irá compartilhar a mesma assinatura atualmente existente para o Project Online.

Uma pequena mudança se dará na nomeclatura do modelo de licenciamento do Project:


- A licença Project Online Professional para a se chamar Project Plan 3
- A licença Project Online Premium passa a se chamar Project Plan 5


É ainda importante ressaltar que, de acordo com o comunicado da Microsoft, não haverá acréscimo de custos com a disponibilização do novo serviço.

Próximos passos

Por hora, não há nada a ser feito. Como mencionei acima, o Project Online continuará funcionando normalmente, e as organizações poderão continuar utilizando a plataforma para gerenciar seus projetos e iniciativas. Na medida em que a Microsoft efetuar novos anúncios e compartilhar um direcionamento mais claro a respeito do posicionamento de cada plataforma irei trazer mais informações para maior esclarecimento.

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

terça-feira, 25 de junho de 2019

Permissionamento & Direitos Efetivos no Project Online

Olá pessoal –

Do ponto de vista de segurança, é muito comum que as empresas limitem algumas permissões dos usuários que utilizam o Project Online para gerenciar os seus projetos. Um dos principais objetivos de restringir algumas permissões está associado à governança e conformidade, pois deve-se evitar que os usuários, por desconhecimento ou de maneira deliberada, executem algumas ações que não fazem parte da sua rotina de trabalho com a plataforma PPM.

Um exemplo clássico é a exclusão de projetos: por padrão, o Project Online permite que os gerentes de projeto possam excluir os projetos dos quais forem proprietários. Para evitar que esse tipo de ação seja tomada, muitas empresas decidem remover a permissão dos gerentes de projeto, deixando esta ação a cargo de administradores ou super-users (normalmente, membros do PMO com maiores privilégios na plataforma).

No Project Online, caso a sua empresa esteja utilizando o modo de permissão Project Server, os grupos de segurança irão possuir três possíveis opções de permissionamento: 1) Permitir, 2) Negar e 3) Não permitir. Permitir significa que as permissões foram concedidas ao grupo, de modo que seus membros poderão executar as ações associadas à permissão; Negar significa que, de maneira explícita, qualquer ação associada à permissão está proibida; a opção Não permitir acontece quando uma permissão não está concedida e nem negada explicitamente.

As configurações de segurança em vigor na sua empresa devem ser estudadas e bem planejadas para que os usuários possam ter acesso a todas funcionalidades inerentes ao seu trabalho, ao mesmo tempo que estejam dentro dos padrões de segurança, conformidade e governança estabelecidos. Recentemente tive uma experiência interessante com um cliente, a qual gostaria de compartilhar nesse post.

Havia um grupo de usuários que eram Administradores do Project Online, ao mesmo tempo em que também estavam inseridos no grupo Gerentes de Projeto. Uma das regras de negócio em vigor na organização determinava que os gerentes de projeto não poderiam salvar as Linhas de Base, uma vez que esta ação seria uma responsabilidade do time de PMO. Para aplicar tal configuração, a permissão ‘Salvar Linha de Base Protegida’ foi negada para o grupo gerentes de projeto. Pois bem, o que aconteceu em seguida foi que qualquer usuário que fizesse a tentativa de salvar uma Linha de Base seria impedido, mesmo que fosse membro do grupo de Administradores, os quais possuíam a permissão. Mas, então, qual a razão para este comportamento?

O que aconteceu nesse caso está relacionado à natureza da opção de negar explicitamente uma permissão: caso uma permissão seja explicitamente negada, ela irá se sobrepor à permissão Permitir, independentemente de o usuário possuir a permissão em outro grupo. Por este motivo, a utilização da opção Negar é recomendada apenas em cenários muito específicos, quando como desejamos limitar as permissões de usuários externos que possuem acesso ao ambiente da nossa organização.

Ok, mas o que os direitos efetivos tem a ver com isso?

Os direitos efetivos são uma excelente ferramenta para que seja possível entender as permissões que foram concedidas ou negadas a um determinado usuário. Pegando o gancho no caso anterior: você acabou de assumir a administração do Project Online em uma determinada empresa, e alguns usuários estão reportando que não possuem as devidas permissões para executar suas atividades. Você não tem o histórico do ambiente, e não sabe quais configurações e parametrizações de segurança foram feitas... então, como é possível descobrir a causa-raiz do problema?

Para isso, você pode navegar à página de Configurações do PWA e então clicar em Gerenciar Usuários. Em seguida, selecione o usuário que está reportando o problema e clique em Verifique os Direitos Efetivos:


Você poderá então navegar entre as permissões globais e os diferentes tipos de objeto de segurança (projetos, recursos e modos de exibição) para entender as permissões concedidas e negadas para o usuário, assim como o contexto na qual elas acontecem. Perceba que, neste exemplo, o usuário Arthur Mamede está com a permissão ‘Gerenciar Check-Ins’ negada no contexto do grupo de segurança Gerentes de projeto:


Alterando o tipo de permissão para o contexto dos projetos, é possível identificar que o mesmo usuário está com a permissão ‘Salvar Linha de Base Protegida’ para o projeto ‘Bay Plaza’, no contexto do grupo de segurança Gerentes de projeto:



Utilizando os direitos efetivos para identificar as restrições existentes irá ajudá-lo a entender o contexto das configurações de segurança em vigor na sua organização, de modo que você poderá elaborar um plano de reestruturação para sua melhor adequação às necessidades e parâmetros de segurança, conformidade e governança.

Por hoje, vou ficando por aqui. Espero que o post seja útil!

Um forte abraço!

terça-feira, 18 de junho de 2019

Erro ao excluir PDPs: Exception from HRESULT: 0X810200D0

Olá pessoal –

Outro dia um cliente me enviou uma mensagem dizendo que estava tendo problemas ao tentar excluir uma Página de Detalhes de Projeto (PDP) no Project Online. Ao tentar realizar o procedimento, o seguinte erro era apresentado: Exception from HRESULT: 0x810200D0


Infelizmente, a mensagem de erro não é muito clara, não oferecendo indicações do que pode eventualmente estar causando o problema. Porém, a resolução é mais fácil do que se imagina 😊

Uma PDP não pode ser excluída caso esteja sendo utilizada em algum estágio em um workflow no Project Online. No meu caso especificamente, ao navegar à área Estágios do Fluxo de Trabalho, pude verificar que a PDP que o meu cliente estava tentando excluir estava configurada para ser exibida em dois estágios do fluxo, e por este motivo havia o bloqueio do Project Online quando se tentava sua remoção:


Assim, foi só remover a PDP dos estágios em questão e a exclusão foi então efetivada sem problemas!

Um forte abraço!


sexta-feira, 31 de maio de 2019

Importando calendários locais para o Project Online

Olá pessoal –

Muitas empresas que decidem adotar o Project Online como plataforma unificada para gerenciamento de projetos, programas e portfólios já possuem um histórico de gerenciamento de projetos, que é na maioria das vezes realizado através da gestão dos cronogramas nas máquinas dos gerentes de projeto – onde os cronogramas são normalmente salvos localmente ou em um drive de rede compartilhado.

Com base nesse cenário, é muito comum que os gerentes de projeto possuam calendários personalizados que representem as datas de exceção em vigor na organização, como feriados, pontes, folgas, férias e etc. (inclusive, o tema calendários é bem recorrente aqui no blog). O problema é que esses calendários estão associados aos cronogramas locais, e não fazem parte das configurações padrão do Project Online – e assim, criá-los na plataforma PPM geraria um esforço considerável, a depender do número de calendários que devam ser replicados.

Eu mesmo passei por essa experiência recentemente: uma empresa de grande porte aqui no Brasil estava iniciando a adoção do Project Online, e seus funcionários estavam espalhados por todo o território nacional (assim como seus projetos). Nesse sentido, um dos principais requisitos a serem atendidos pelo Project Online determinava que os recursos deveriam estar associados a calendários locais, os quais iriam refletir as particularidades da cidade/município onde o funcionário está situado. A estratégia de adoção foi simples: o calendário Padrão, nativo do Project Online, deveria ser configurado para refletir apenas os feriados a nível nacional, sem considerar pontes ou emendas. Então, calendários locais de cada cidade deveriam ser criados na plataforma PPM, de modo que cada projeto e cada recurso fossem configurados individualmente.

Como sabíamos que os calendários locais já haviam sido configurados na máquina de alguns GPs, a questão foi: como importar os calendários para o Project Online, para que não houvesse a necessidade de criar cada um dos calendários do zero?

E é aí que a mágina acontece!

Como administrador do Project Online, abra o Project Desktop que contém o calendário que deseja importar, e garanta que você esteja conectado ao seu ambiente. Clique em Alterar Período Útil, e selecione o calendário que deseja importar. Em seguida, clique na opção Adicionar Calendário à Empresa...


Defina um nome para o calendário e então clique OK:


Assim, o novo calendário será incorporado ao Project Online e poderá ser utilizado pelos usuários:


Uma configuração simples, mas muito útil! 👌

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