Task Group is a DevOps feature which is not that commonly used, but it is actually pretty useful. In short task group is described like this:
A task group allows you to encapsulate a sequence of tasks, already defined in a build or a release pipeline, into a single reusable task that can be added to a build or release pipeline, just like any other task.
Task Group is created by selecting multiple build (or release) steps, right clicking over them and selecting “Create task group”.
Task group build steps cannot contain any linked variables, so ensure that all the parameters are unliked. Steps can and should(!) contain variables, but no linked values.
After the task group is created, it cannot be edited from build definition anymore. All the edits are done from Task Group tab.
So if Azure DevOps setup contains lots of build and release definitions with similiar kind of steps, it’s a good practice to group them into task group and manage them as group. Task groups can also be versioned, so it’s safe to do changes into group itself and then publish them when they are ready to be used.
For more info about Task Groups, check Microsoft documentation from:
https://docs.microsoft.com/en-us/azure/devops/pipelines/library/task-groups?view=vsts