Badge Claimed: ACDC Craftsman
Version 2 – Further detail added on our versioning, building, deployment and testing approaches.
It’s been a fun, interesting few days for our team at ACDC, as we dived into new and familiar topics. But the importance of the fundamentals to ensure our development and deployment process was as smooth as possible carried us through the days and long nights. Here are a few highlights we can point towards:
- All developers need clearly defined task and development workflow and, although some may scoff at our retro take to manage it, the results speak for themselves with our very complete looking Kanban board:

- We made sure to setup our foundational elements for effective application lifecycle management; not only within the Power Platform, but also in ensuring we have an Azure DevOps Git repository, and the associated deployment pipelines configured. Find out more about what we have in Azure here and see below examples of what we’ve configured in the Power Platform.


- Separating out our environments between development, testing and production ensures we can develop safely, test things in the proper way and not affect our live users intentionally. And our Power Platform Pipelines ensures we can deploy everything out automatically, and also handle proper versioning of our solution:

- We don’t hardcode things. Especially for important things like API keys and secrets. For this reason, we are using Azure Key Vault to store all of our secrets and then have them accessed directly via the Function App. Thanks to Managed Identities, this process becomes so much more easier and secure as well:


- A continuous feedback loop ensures a more effective development workflow. Thanks to our incorporation of Application Insights capabilities, developers have a rich array of datapoints to monitor the performance of our solution, and we can even use this to initiate new work items directly into Azure DevOps
- Artificial Intelligence presents a huge opportunity, but without considering best practice approaches when building system prompts, things can go awry very quickly. As you’ll see from the work we’ve done with our custom agent, we’ve ensured our prompts have been tested and hardened appropriately, to prevent potential misuse.
- Our YAML pipeline handles all of all builds centrally, to ensure our Bicep templates function as we expect and to also ensure we are handling versioning correctly:


- Our plug-ins have incorporated both logical and integration testing at the class level, to ensure things can be properly tested before it reaches our end users:


These are just a few examples from our 3 day experience, where we have all learned a lot and collaborated well as a group. And we think this close teamwork represents what ACDC is all about – because developers can only do things well when they are working together openly and collaboratively in a team. We hope to back again next year!




