Our blog

The latest news from our team at Clever Dynamics

Team looking at a computer screen

From Idea to Implementation - How the Clever Dynamics team Create New Products

Much of what we do at Clever Dynamics is driven by the needs of those who use our products daily – namely our partners and customers. Our core team is comprised of a number of highly experienced senior developers and consultants with real implementation experience, but it is critical that we listen rather than develop in isolation: The new products and features we create should be designed to be the best that we can make them, to solve the real-world problems that our customers face.

The idea

We use Azure DevOps to manage our backlog and development pipelines - every idea and suggestion we receive (Regardless of the source) is recorded in Azure DevOps as a unit of work (A work item) and tagged for discussion if necessary. We also link a new support desk request that is used to track contact details for the suggestion. The work items are then reviewed by the team in a regular meeting that occurs every three weeks. Whether the idea is approved or rejected our response is then fed back to whoever requested it.

Azure DevOps

Azure DevOps is a collection of tools and services from Microsoft that helps teams plan, collaborate, and ship software projects.

What makes a good suggestion for a major new feature?

It needs to be something that can be productised for one, it should be potentially applicable across a broad spectrum of different kinds of organisations rather than solving a specific custom need for one Dynamics 365 Business Central user. We are no replacement for a partner who adds value to a customer’s environment by customising it precisely to their needs, but we are here to save you time and money by building and maintaining useful products so that you don’t have to.

Development and release

Once we have added the work to the roadmap it gets scheduled into a release – we must evaluate the difficulty, impact, and existing developer workload. We need to determine how much work or effort is in a release and whether we can deliver it according to schedule with existing resources. At this point a release is a firm plan, but smaller items may still be dropped into a later release if we find that we are unlikely to make our due date.

We make a fresh branch of the current master release in DevOps. This is our release candidate where completed work-items are placed ready for testing.

We also make another branch for each unique feature or bug that we will be working on. These feature or bug branches are for safely storing work in progress.

Branching strategy

A DevOps branch is a copy of a software project's code base created when a developer makes changes to the code. Branches are a key part of DevOps because they allow developers to work on different features at the same time without interfering with each other's work.

Image

As features are completed, they are pushed into the release candidate branch for testing. At this point, we will also create automated tests that run as part of the pipeline. Tests are useful for testing the new functionality or ensuring we are not breaking functionality for historical changes we have made before (this is called regression testing).

Sometimes, if the work is reasonably complex, what we call a pull request is created so that other developers on the team can review the code before approval. During or immediately following

development, the work item is handed over to our QA (Quality Assurance) team to test the new functionality (or bugfix) and to update Clever Documentation online.

Finally, once the development is complete, tested and documented we generate translations and push the work back into the master branch. The DevOps pipelines run automatically, every single automated test must run successfully, and a completed build of the new version is uploaded to Clever Drive (For our on-premise installations of Dynamics 365 Business Central). The QA team also ensure that the new version is delivered to Microsoft AppSource, the online marketplace where you can find all of our products.

Phew! Sounds like a lot? Well, we’re used to it and DevOps takes a huge amount of the strain. Our goal is to provide useful and usable software of the highest quality we can muster.

If you have an idea that will make you and your customer's lives easier, let us know. Contact us through our website, email at This email address is being protected from spambots. You need JavaScript enabled to view it. or via our helpdesk.