Olá pessoal –
Há um certo
tempo eu e meu amigo André Xavier entregamos uma palestra no evento Global
Microsoft 365 Developer Bootcamp, e mesmo passados quase 3 anos do evento
ainda hoje tenho desenvolvido soluções, através do Power Automate, que permitam
a integração e a troca de informações entre o Project Online e o Azure DevOps.
Pretendo retomar
esse assunto aqui no blog para compartilhar, com um pouco mais de detalhes, as
lições aprendidas que venho coletando ao longo desse tempo a respeito da integração
entre essas duas plataformas.
É tudo uma questão de processos
Antes de qualquer coisa, se você pretende iniciar um projeto que tenha como objetivo integrar essas duas plataformas, foque inteiramente no processo. Conversar e obter a maior quantidade possível de informações com os principais interessados na integração é fundamental para que, tecnicamente, a solução seja desenvolvida com sucesso. Procure entender aspectos como:
- Quais
times serão beneficiados (ou afetados) com a sincronização? É importante entender quem são os
principais interessados pelo processo de integração, e como eles serão
beneficiados/afetados. Não é incomum que, dentro de uma organização, diferentes
times utilizem o Azure DevOps de diferentes maneiras, de modo que tentar criar
um processo de integração único se torne complexo e problemático. Caso você
tenha que suportar diferentes times, com diferentes metodologias e processos,
talvez o melhor caminho seja construir uma integração individual para cada um
dos times.
- Qual
o caminho a ser percorrido pelos dados?
É preciso determinar se as informações serão coletadas no Azure DevOps para
então alimentar o Project Online, ou se o caminho a ser percorrido será no
sentido contrário. Ou, caso o processo desejado seja ainda mais complexo, pode
ser que exista a necessidade de comunicação em duas vias, onde os dois sistemas
trocarão informações entre si.
- Quais
informações serão coletadas e processadas na automação? O Azure DevOps permite que as
equipes estruturem seu trabalho utilizando os mais variados componentes, como Bugs,
Epics, Features, User Story e Tasks. Procure
entender como esses componentes estão estruturados na sua organização (ou no seu
cliente), e quais deles participarão de fato da integração. Além disso, para
cada um dos componentes que eventualmente tenham de fazer parte do processo de
integração, entenda quais atributos devem ser sincronizados (Trabalho
Real/Restante, datas de Início e/ou Término, etc).
- Qual será a periodicidade de sincronização? Lembre-se que, para editar um projeto no Project Online, é preciso efetuar o seu check-out... nesse contexto, um processo de sincronização que esteja configurado para ser executado muitas vezes ao longo do dia pode se tornar um pesadelo para os gerentes de projeto, uma vez que seus projetos podem ficar indisponíveis em diferentes momentos do dia, em decorrência do processo de automação. Uma recomendação é estabelecer uma periodicidade semanal (programada para acontecer no final de semana).
Crie campos personalizados
Uma vez que o roadmap do processo de sincronização tenha sido definido, o passo seguinte será criar os campos (colunas) personalizados para capturar os principais atributos que irão permitir a comunicação entre as duas plataformas – campos a serem criados tanto no Project Online quanto no Azure DevOps. A princípio, você deve pensar nos seguintes campos/colunas:
É claro que
podem haver outros campos/colunas personalizadas que tenham de ser criadas nas
plataformas, a depender de quais informações seja necessário coletar.
No azure devops, crie uma consulta robusta e confiável
Caso a necessidade
da sua organização (cliente) seja a de sincronizar informações do Azure DevOps
para o Project Online (trata-se da grande maioria dos casos), então você deve
criar uma consulta extremamente robusta e confiável (no Azure DevOps).
Para melhor
esclarecer o parágrafo anterior, é preciso entender que o processo de automação
que é iniciado a partir do Azure DevOps precisa ser baseado em uma consulta – uma
das primeiras ações do Power Automate é obter os resultados de uma consulta
específica criada no ADO. Nesse sentido, ao configurar a consulta, é preciso
garantir que seus parâmetros estejam muito bem definidos, afim de que apenas os
dados necessário sejam submetidos à sincronização.
Uma consulta robusta e confiável também deve incluir parâmetros de governança e conformidade, evitando que dados contraditórios sejam trazidos ao processamento. Alguns exemplos:
- Caso a sua organização (cliente) tenha a intenção de processar apenas o componente Tasks, configure a sua consulta para filtrar especificamente este item, deixando todos os demais de fora.
- De modo geral, no Azure DevOps os usuários não tem a obrigatoriedade de preencher certas informações – como datas de início e término. Ao tentar sincronizar datas não preenchidas (em branco) com o Project Online o processo de automação gerará erros, e dessa forma é preciso configurar a consulta para que ela exclua do processamento tarefas que não possuam todas as informações a serem sincronizadas.
- Da mesma maneira, o Azure DevOps permite que inconsistências sejam inseridas no âmbito de um componente – por exemplo, um usuário pode inserir uma data de término anterior à data de início. Como o Project Online jamais aceitará que uma tarefa tenha sua data de término definida para antes do seu início, é preciso configurar a consulta para excluir esse tipo de inconsistência.
Lembre-se de que
é preciso rever os requisitos de negócio de maneira bem detalhada e meticulosa,
para que seja possível identificar os possíveis erros que podem evetualmente
acontecer no momento da sincronização, garantindo que eles sejam tratados pela
consulta.
Tratamento de erros
Esteja preparado para aplicar o devido
tratamento de erros ao processo de automação. Alguns dos erros mais comuns são:
- Projetos em estado de check-out no momento da execução da automação
- Tarefas (ou componentes) que fazem parte do processo de automação e que tenham sido eventualmente excluídas do cronograma (ou do board do Azure DevOps)
- Tarefas com caracteres especiais nos seus nomes (! $ # * & ’ @ etc.)
...............................................
Bem, por hoje
era isso. O objetivo era realmente trazer algo mais genérico a respeito do
processo de automação, seus eventuais problemas e desafios – e não algo técnico
que fosse descrever detalhadamente como estruturar toda a integração.
Se você ainda precisa de alguma ajuda fazer a sincronização funcionar aí na sua empresa, é só entrar em contato 😉.