Manage Nuget Packages CentrallyPublished on 4/17/23 8:30 am by Martin StühmerFor over 12 years, NuGet package management has been part of the .NET ecosystem with direct integrations to various IDEs, CLIs and build systems. But a feature took 12 years before it appeared and certainly needs some more maintenance until it is mature!
Illuminate Technical DebtPublished on 4/12/23 5:00 pm by Martin StühmerWhatever our role, be it developer, IT professional or architect, we try to avoid technical debt. If this is not possible from the outset, or if we decide to accept this technical debt for a limited period of time, we usually lack the tools to do so. This is where this article may help.
When Can I Finally Renew My Microsoft CertificationPublished on 4/11/23 9:00 am by Martin StühmerWhen can I finally renew my Microsoft certification? - I’m certainly not alone with this or similar questions and the associated uncertainty. Okay, a certain impatience certainly resonates as well. After all, I would also like to schedule it into my daily routine. But how?
How to Prepare for Microsoft CertificationPublished on 1/27/23 9:00 pm by Martin StühmerHow do I best prepare for a Microsoft certification? - this or a similar question is asked by everyone who wants to deal with the topics Microsoft, Azure, Microsoft 365, Power Platform or Dynamics 365. In this article, I would like to go into the possibilities that Microsoft offers us for preparation.
Martin StühmerMartin is a seasoned software architect and developer based in the Cologne/Bonn area, with over 15 years of experience in utilizing .NET and Microsoft technologies in his work. His expertise lies in enhancing the quality and performance of development teams, optimizing software solutions for target environments, and maximizing application efficiency. Currently serving as the Director Consulting Services at CGI, he specializes in cloud-native and .NET solutions, while also providing training in cloud and software architecture. Beyond his professional endeavors, Martin actively contributes to open-source communities by offering various NuGet packages. In 2021, he achieved certifications as an IHK instructor and Microsoft certified trainer, furthering his commitment to continuous learning. Additionally, he became a certified trainer for CGI’s Risk and Cost Driven Architecture program in 2022.
Manage Nuget Packages CentrallyFor over 12 years, NuGet package management has been part of the .NET ecosystem with direct integrations to various IDEs, CLIs and build systems. But a feature took 12 years before it appeared and certainly needs some more maintenance until it is mature!
Illuminate Technical DebtWhatever our role, be it developer, IT professional or architect, we try to avoid technical debt. If this is not possible from the outset, or if we decide to accept this technical debt for a limited period of time, we usually lack the tools to do so. This is where this article may help.
When Can I Finally Renew My Microsoft CertificationWhen can I finally renew my Microsoft certification? - I’m certainly not alone with this or similar questions and the associated uncertainty. Okay, a certain impatience certainly resonates as well. After all, I would also like to schedule it into my daily routine. But how?
How to Prepare for Microsoft CertificationHow do I best prepare for a Microsoft certification? - this or a similar question is asked by everyone who wants to deal with the topics Microsoft, Azure, Microsoft 365, Power Platform or Dynamics 365. In this article, I would like to go into the possibilities that Microsoft offers us for preparation.
A Tale of Forgotten Pennies and Lost DollarsIn software development, there’s a silent debt that accrues interest over time, often hidden beneath layers of code and decisions made in haste or ignorance. This debt is aptly termed technical debt. Much like the german proverb, “Wer den Pfennig nicht ehrt, ist den Taler nicht wert”, (or the english equivalent, “A penny saved is a penny earned”) technical debt reminds us that small oversights or compromises in the present can snowball into significant challenges down the road. This article critically examines the parallels between financial principles and technical debt, emphasizing the importance of addressing both direct and indirect debt while understanding its distinction from external risks such as hacking or abuse.
Master dependency management with automation: story behind `dependamerge`In software development, dependencies are inevitable - any project worth its salt relies on various libraries, frameworks, or packages. However, as I found in my own work, managing these dependencies can be an onerous task. Constant updates, new vulnerabilities, and endless manual approvals were draining my time and focus. What if, I thought, these processes could be automated? This thought led to the creation of dependamerge, a GitHub Action designed to free developers from the drudgery of manual dependency maintenance and let us get back to what we do best: building great software.
Gradually Introducing Nullability in Legacy Code: A Practical Guide for .NET and C#As developers, we’re often tasked with maintaining and modernizing legacy codebases that were written long before some of the best practices of today—such as nullability annotations—were available. While modern C# now supports nullable reference types, enabling us to avoid the dreaded NullReferenceException, introducing this feature to existing, large codebases can be a challenge.In this article, I’ll share my step-by-step approach for introducing nullability into a legacy .NET and C# project. You’ll learn how to apply nullability in a controlled, incremental manner using project-level settings, scoped annotations, and file/method-level directives, all while maintaining the integrity of your legacy codebase. After all, modernizing your code doesn’t have to be an all-or-nothing endeavor—gradual change is key to a successful transition. Let’s get started!
Mastering .NET Project Properties: The `BuildingInsideVisualStudio` FlagIn the ever-evolving world of .NET development, managing project configurations effectively is crucial for maintaining a clean and efficient build process. One of the less frequently discussed but highly useful properties is BuildingInsideVisualStudio. This property, when correctly utilized, can streamline your build process and ensure that your project is configured properly depending on the build environment. In this article, we’ll explore the BuildingInsideVisualStudio property with concrete examples and discuss best practices for using it effectively.
Reimagining the Microsoft Certification Exam UI ExperienceEmbark on a journey through Microsoft’s redesigned certification exam UI. Discover streamlined navigation, enhanced accessibility, and personalized experiences, revolutionizing the exam-taking experience.
A Tale of Forgotten Pennies and Lost DollarsPublished on 11/22/24 4:45 pm by Martin StühmerIn software development, there’s a silent debt that accrues interest over time, often hidden beneath layers of code and decisions made in haste or ignorance. This debt is aptly termed technical debt. Much like the german proverb, “Wer den Pfennig nicht ehrt, ist den Taler nicht wert”, (or the english equivalent, “A penny saved is a penny earned”) technical debt reminds us that small oversights or compromises in the present can snowball into significant challenges down the road. This article critically examines the parallels between financial principles and technical debt, emphasizing the importance of addressing both direct and indirect debt while understanding its distinction from external risks such as hacking or abuse.
Master dependency management with automation: story behind dependamergePublished on 11/13/24 9:00 am by Martin StühmerIn software development, dependencies are inevitable - any project worth its salt relies on various libraries, frameworks, or packages. However, as I found in my own work, managing these dependencies can be an onerous task. Constant updates, new vulnerabilities, and endless manual approvals were draining my time and focus. What if, I thought, these processes could be automated? This thought led to the creation of dependamerge, a GitHub Action designed to free developers from the drudgery of manual dependency maintenance and let us get back to what we do best: building great software.
Gradually Introducing Nullability in Legacy Code: A Practical Guide for .NET and C#Published on 10/7/24 5:15 pm by Martin StühmerAs developers, we’re often tasked with maintaining and modernizing legacy codebases that were written long before some of the best practices of today—such as nullability annotations—were available. While modern C# now supports nullable reference types, enabling us to avoid the dreaded NullReferenceException, introducing this feature to existing, large codebases can be a challenge.In this article, I’ll share my step-by-step approach for introducing nullability into a legacy .NET and C# project. You’ll learn how to apply nullability in a controlled, incremental manner using project-level settings, scoped annotations, and file/method-level directives, all while maintaining the integrity of your legacy codebase. After all, modernizing your code doesn’t have to be an all-or-nothing endeavor—gradual change is key to a successful transition. Let’s get started!
Mastering .NET Project Properties: The BuildingInsideVisualStudio FlagPublished on 9/10/24 5:00 pm by Martin StühmerIn the ever-evolving world of .NET development, managing project configurations effectively is crucial for maintaining a clean and efficient build process. One of the less frequently discussed but highly useful properties is BuildingInsideVisualStudio. This property, when correctly utilized, can streamline your build process and ensure that your project is configured properly depending on the build environment. In this article, we’ll explore the BuildingInsideVisualStudio property with concrete examples and discuss best practices for using it effectively.
Reimagining the Microsoft Certification Exam UI ExperiencePublished on 3/14/24 9:00 am by Martin StühmerEmbark on a journey through Microsoft’s redesigned certification exam UI. Discover streamlined navigation, enhanced accessibility, and personalized experiences, revolutionizing the exam-taking experience.
Manage Nuget Packages CentrallyPublished on 4/17/23 8:30 am by Martin StühmerFor over 12 years, NuGet package management has been part of the .NET ecosystem with direct integrations to various IDEs, CLIs and build systems. But a feature took 12 years before it appeared and certainly needs some more maintenance until it is mature!
Illuminate Technical DebtPublished on 4/12/23 5:00 pm by Martin StühmerWhatever our role, be it developer, IT professional or architect, we try to avoid technical debt. If this is not possible from the outset, or if we decide to accept this technical debt for a limited period of time, we usually lack the tools to do so. This is where this article may help.
When Can I Finally Renew My Microsoft CertificationPublished on 4/11/23 9:00 am by Martin StühmerWhen can I finally renew my Microsoft certification? - I’m certainly not alone with this or similar questions and the associated uncertainty. Okay, a certain impatience certainly resonates as well. After all, I would also like to schedule it into my daily routine. But how?
How to Prepare for Microsoft CertificationPublished on 1/27/23 9:00 pm by Martin StühmerHow do I best prepare for a Microsoft certification? - this or a similar question is asked by everyone who wants to deal with the topics Microsoft, Azure, Microsoft 365, Power Platform or Dynamics 365. In this article, I would like to go into the possibilities that Microsoft offers us for preparation.
Mastering .NET Project Properties: The BuildingInsideVisualStudio FlagIn the ever-evolving world of .NET development, managing project configurations effectively is crucial for maintaining a clean and efficient build process. One of the less frequently discussed but highly useful properties is BuildingInsideVisualStudio. This property, when correctly utilized, can streamline your build process and ensure that your project is configured properly depending on the build environment. In this article, we’ll explore the BuildingInsideVisualStudio property with concrete examples and discuss best practices for using it effectively.Understanding the BuildingInsideVisualStudio PropertyThe BuildingInsideVisualStudio property is a conditional flag that can be used within your project files (.csproj) to apply certain settings or include/exclude packages and references based on whether the project is being built inside Visual Studio. This property is particularly useful when you need to differentiate between builds triggered from Visual Studio and those triggered from other environments such as command-line builds or CI/CD pipelines.Example: Adding a Package Reference ConditionallyLet’s start with a practical example: adding a package reference only when the project is being built inside Visual Studio. This can be useful when you want to include certain tools or analyzers only in the development environment to keep the build lean for production.Assuming you want to add a reference to SonarAnalyzer.CSharp, a popular static code analysis tool, but only when building the project within Visual Studio, you can use the BuildingInsideVisualStudio property to conditionally include this package reference in your .csproj file. Why would you want to do this? It’s already included in your CI/CD pipeline, so you don’t need it in your local development environment? The answer is simple: you want to have the same code analysis rules and hints in your local development environment as in your CI/CD pipeline. This way, you can fix issues early and avoid surprises when pushing your code to the repository, and executing maybe long-running CI/CD pipelines.Here’s how you can do it:<Project Sdk="Microsoft.NET.Sdk"> <ItemGroup Condition="'$(BuildingInsideVisualStudio)' == 'true'"> diff --git a/posts/dependamerge-action/index.html b/posts/dependamerge-action/index.html index 6c32c77..50e590a 100644 --- a/posts/dependamerge-action/index.html +++ b/posts/dependamerge-action/index.html @@ -1,5 +1,5 @@ Master dependency management with automation: story behind `dependamerge` — Daily DevOps & .NET -Daily DevOps & .NET +Daily DevOps & .NET PostsAbout usMaster dependency management with automation: story behind dependamergeIn software development, dependencies are inevitable - any project worth its salt relies on various libraries, frameworks, or packages. However, as I found in my own work, managing these dependencies can be an onerous task. Constant updates, new vulnerabilities, and endless manual approvals were draining my time and focus. What if, I thought, these processes could be automated? This thought led to the creation of dependamerge, a GitHub Action designed to free developers from the drudgery of manual dependency maintenance and let us get back to what we do best: building great software.The realities of manual dependency management: My journeyLike many developers, I used to spend a lot of time managing dependencies. Dependabot would helpfully create pull requests for each new release, but I still had to check and merge each one. This quickly became an endless cycle. The hassle of checking every dependency update, even minor ones, pulled me away from critical tasks.The reality is that as teams grow in size, dependency management becomes increasingly complex. For a while, I was stuck in a manual cycle, balancing the risk of out-of-date dependencies against the time commitment of updates. This tension was a big factor that inspired dependamerge.Why automation? Why now?My experience echoed the frustrations faced by many developers:Unending maintenance: Keeping up with dependency updates is like an unrelenting treadmill. Without automation, it’s all too easy for obsolete packages to slip through the cracks.Disrupted flow: Each pull request interrupts the flow, forcing us to context-switch and potentially delaying real progress.Security pressure: At a time when vulnerabilities can bring down entire ecosystems, dependency maintenance is non-negotiable, but finding the time to do it can feel impossible.Productivity drain: Manual dependency management is a time sink, diverting focus from the core work of building and improving software.Technical debt: Neglected dependencies can accumulate into a significant technical debt, leading to more problems down the line.Expand on the Benefits of AutomationAutomating dependency management with dependamerge brings a range of significant benefits that streamline development and enhance code quality:Time-Saving: By automating dependency updates, dependamerge saves developers from manually reviewing each pull request. This efficiency frees up hours each week, allowing teams to focus on feature development and innovation rather than getting bogged down by routine maintenance.Enhanced Security: In today’s landscape, where vulnerabilities can have far-reaching impacts, timely updates are essential for maintaining a secure codebase. With dependamerge, critical updates can be applied promptly and consistently, helping to protect your projects from potential threats. Automation ensures that nothing slips through the cracks, even when time is limited.Improved Code Quality and Stability: Automated dependency updates reduce the risk of errors that can occur when manually merging changes across environments. Consistent updates prevent compatibility issues that might arise from neglected dependencies, contributing to a more stable and reliable codebase.Reduced Technical Debt: By keeping dependencies up-to-date, dependamerge helps prevent the buildup of technical debt that can slow down future development and create unexpected blockers. With fewer outdated dependencies, teams can avoid the last-minute scramble to upgrade critical packages or dependencies right before a major release.Seamless Integration in CI/CD Workflows: dependamerge is designed to operate smoothly within a CI/CD pipeline, allowing dependency updates to be tested and validated alongside other code changes. This integration reduces interruptions to the workflow and ensures that updates don’t introduce issues at later stages in the development lifecycle.By automating these repetitive tasks, dependamerge empowers developers to focus on what matters most: building and improving software. It’s a tool that boosts productivity, enhances security, and ultimately contributes to a more efficient and resilient development process.Introducing dependamerge: A solution built for developersDesigned to take the reins of dependency updates, dependamerge works with Dependabot to make dependency management truly seamless. This GitHub action doesn’t just approve updates—it is adjustable to your project’s specific needs, ensuring that only the right updates are merged at the right time. Even better, dependamerge can be part of a fully automated CI/CD pipeline, ensuring that dependency updates are tested and validated alongside other code changes.Highlights of dependamerge include:Fully compatible with Dependabot: dependamerge works seamlessly with Dependabot, extending its capabilities and streamlining the update process. To do this, dependamerge communicates with Dependabot’s comment commands to manage the pull requests.Automated merging: With the ability to define specific merge rules, updates are approved without disrupting your day. Regardless of the ecosystem, all current and future Dependabot ecosystems are supported.Customizable conditions: Tailor the automation to prioritize critical updates, such as security patches, while handling non-critical updates according to your project’s needs.Human-Free Handling: Freeing developers from dependency maintenance not only saves time, but also prevents mental fatigue from routine tasks. dependamerge ensures that updates are handled consistently and reliably, without manual intervention.Usage example: Setting up dependamerge in a CI/CD pipelineTo start with dependamerge, you can use the following example configuration. This GitHub action is highly customizable, allowing you to adjust various parameters to suit your project’s specific requirements.name: DependaMerge on: diff --git a/posts/how-to-prepare-for-microsoft-certification/index.html b/posts/how-to-prepare-for-microsoft-certification/index.html index 4f16d26..5aea5f0 100644 --- a/posts/how-to-prepare-for-microsoft-certification/index.html +++ b/posts/how-to-prepare-for-microsoft-certification/index.html @@ -1,5 +1,5 @@ How to Prepare for Microsoft Certification — Daily DevOps & .NET -Daily DevOps & .NET +Daily DevOps & .NET PostsAbout usHow to Prepare for Microsoft CertificationHow do I best prepare for a Microsoft certification? - this or a similar question is asked by everyone who wants to deal with the topics Microsoft, Azure, Microsoft 365, Power Platform or Dynamics 365. In this article, I would like to go into the possibilities that Microsoft offers us for preparation.Regardless of whether you’re new to the subject or already know it, preparing for a potential exam is often a challenge. But first, let’s clarify which exams and certifications are available in the first place.Microsoft certifications at a glanceMicrosoft categorizes its entire Certification Portfolio by category and level. The following categories are currently provided by Microsoft:AzureDynamics 365Microsoft 365Power PlatformSecurity, Compliance and IdentityAs well as in the levels Fundamentals, Role-based and Specialty. This is very clearly presented in the overview (aka.ms/TrainCertPoster ) and is regularly updated by Microsoft. In addition, Microsoft offers a second, much more detailed overview (aka.ms/TrainCertDeck diff --git a/posts/illuminate-technical-debt/index.html b/posts/illuminate-technical-debt/index.html index 39fc57d..d189107 100644 --- a/posts/illuminate-technical-debt/index.html +++ b/posts/illuminate-technical-debt/index.html @@ -1,5 +1,5 @@ Illuminate Technical Debt — Daily DevOps & .NET -Daily DevOps & .NET +Daily DevOps & .NET PostsAbout usIlluminate Technical DebtWhatever our role, be it developer, IT professional or architect, we try to avoid technical debt. If this is not possible from the outset, or if we decide to accept this technical debt for a limited period of time, we usually lack the tools to do so. This is where this article may help.What is technical debt?Technical debt is a metaphor used to describe the costs and risks incurred as a result of decisions or omissions. It is important to note that this metaphor can be applied to all types of technical debt.First, there is architectural debt, which is usually based on a decision made by an individual architect or group of architects. Then there is implementation debt, which is probably the most common in most projects, as it is also identified through source code analysis. And then there is the test and documentation debt, which is far too often neglected.Whatever the type of technical debt, the common denominator is that it tends to cause problems in projects and later in operations. In July 2011, Phillipe Kruchten described them as “invisible negative elements in the backlog”.However, they are rarely recorded and visualised.How can I still make them visible?In most projects, it is individuals or a small group of individuals who are aware of individual Technical Debts. However, these projects usually have another thing in common: when these technical debts are addressed, they are postponed or even dismissed.To avoid this, Technical Debts need to be tracked in the same way as requirements or defects. All you need is a person with administrative rights in Azure DevOps or comparable platforms.Extension of the Azure DevOps process templatesAzure DevOps provides the ability to visualise technical debt by extending process templates. The Microsoft article [Customize a process template] (https://learn.microsoft.com/en-us/azure/devops/reference/process-templates/customize-process?view=azure-devops ) details how to inherit and extend a process template to achieve the following result.In this case, the extended process templates AgileRCDA and ScrumRCDA were simply extended by an additional WorkItem type, which will be used in the future to record and visualise technical debt. In 2011, Kruchten already used the colour black for the colour scheme of technical debt.For later prioritisation and sorting, it is advisable to pass additional parameters to the WorkItem type, such asThis creates the technical foundation based on the process templates, and within the project only the technical debt type work items need to be recorded.SummaryThe Azure DevOps extension (or alternative platforms) presented here takes only a few minutes to extend and deploy. But it will have the desired effect by the next sprint meeting. That’s because the black work items of the “technical debt” type quickly give the impression of a tombstone and provide the necessary visibility.Don’t be surprised if the tombstones start to pile up after a few weeks. Your colleagues and team members know about other Technical Debts that you probably haven’t noticed yet.Comments
Master dependency management with automation: story behind dependamergeIn software development, dependencies are inevitable - any project worth its salt relies on various libraries, frameworks, or packages. However, as I found in my own work, managing these dependencies can be an onerous task. Constant updates, new vulnerabilities, and endless manual approvals were draining my time and focus. What if, I thought, these processes could be automated? This thought led to the creation of dependamerge, a GitHub Action designed to free developers from the drudgery of manual dependency maintenance and let us get back to what we do best: building great software.The realities of manual dependency management: My journeyLike many developers, I used to spend a lot of time managing dependencies. Dependabot would helpfully create pull requests for each new release, but I still had to check and merge each one. This quickly became an endless cycle. The hassle of checking every dependency update, even minor ones, pulled me away from critical tasks.The reality is that as teams grow in size, dependency management becomes increasingly complex. For a while, I was stuck in a manual cycle, balancing the risk of out-of-date dependencies against the time commitment of updates. This tension was a big factor that inspired dependamerge.Why automation? Why now?My experience echoed the frustrations faced by many developers:Unending maintenance: Keeping up with dependency updates is like an unrelenting treadmill. Without automation, it’s all too easy for obsolete packages to slip through the cracks.Disrupted flow: Each pull request interrupts the flow, forcing us to context-switch and potentially delaying real progress.Security pressure: At a time when vulnerabilities can bring down entire ecosystems, dependency maintenance is non-negotiable, but finding the time to do it can feel impossible.Productivity drain: Manual dependency management is a time sink, diverting focus from the core work of building and improving software.Technical debt: Neglected dependencies can accumulate into a significant technical debt, leading to more problems down the line.Expand on the Benefits of AutomationAutomating dependency management with dependamerge brings a range of significant benefits that streamline development and enhance code quality:Time-Saving: By automating dependency updates, dependamerge saves developers from manually reviewing each pull request. This efficiency frees up hours each week, allowing teams to focus on feature development and innovation rather than getting bogged down by routine maintenance.Enhanced Security: In today’s landscape, where vulnerabilities can have far-reaching impacts, timely updates are essential for maintaining a secure codebase. With dependamerge, critical updates can be applied promptly and consistently, helping to protect your projects from potential threats. Automation ensures that nothing slips through the cracks, even when time is limited.Improved Code Quality and Stability: Automated dependency updates reduce the risk of errors that can occur when manually merging changes across environments. Consistent updates prevent compatibility issues that might arise from neglected dependencies, contributing to a more stable and reliable codebase.Reduced Technical Debt: By keeping dependencies up-to-date, dependamerge helps prevent the buildup of technical debt that can slow down future development and create unexpected blockers. With fewer outdated dependencies, teams can avoid the last-minute scramble to upgrade critical packages or dependencies right before a major release.Seamless Integration in CI/CD Workflows: dependamerge is designed to operate smoothly within a CI/CD pipeline, allowing dependency updates to be tested and validated alongside other code changes. This integration reduces interruptions to the workflow and ensures that updates don’t introduce issues at later stages in the development lifecycle.By automating these repetitive tasks, dependamerge empowers developers to focus on what matters most: building and improving software. It’s a tool that boosts productivity, enhances security, and ultimately contributes to a more efficient and resilient development process.Introducing dependamerge: A solution built for developersDesigned to take the reins of dependency updates, dependamerge works with Dependabot to make dependency management truly seamless. This GitHub action doesn’t just approve updates—it is adjustable to your project’s specific needs, ensuring that only the right updates are merged at the right time. Even better, dependamerge can be part of a fully automated CI/CD pipeline, ensuring that dependency updates are tested and validated alongside other code changes.Highlights of dependamerge include:Fully compatible with Dependabot: dependamerge works seamlessly with Dependabot, extending its capabilities and streamlining the update process. To do this, dependamerge communicates with Dependabot’s comment commands to manage the pull requests.Automated merging: With the ability to define specific merge rules, updates are approved without disrupting your day. Regardless of the ecosystem, all current and future Dependabot ecosystems are supported.Customizable conditions: Tailor the automation to prioritize critical updates, such as security patches, while handling non-critical updates according to your project’s needs.Human-Free Handling: Freeing developers from dependency maintenance not only saves time, but also prevents mental fatigue from routine tasks. dependamerge ensures that updates are handled consistently and reliably, without manual intervention.Usage example: Setting up dependamerge in a CI/CD pipelineTo start with dependamerge, you can use the following example configuration. This GitHub action is highly customizable, allowing you to adjust various parameters to suit your project’s specific requirements.name: DependaMerge on: diff --git a/posts/how-to-prepare-for-microsoft-certification/index.html b/posts/how-to-prepare-for-microsoft-certification/index.html index 4f16d26..5aea5f0 100644 --- a/posts/how-to-prepare-for-microsoft-certification/index.html +++ b/posts/how-to-prepare-for-microsoft-certification/index.html @@ -1,5 +1,5 @@ How to Prepare for Microsoft Certification — Daily DevOps & .NET -Daily DevOps & .NET +Daily DevOps & .NET PostsAbout usHow to Prepare for Microsoft CertificationHow do I best prepare for a Microsoft certification? - this or a similar question is asked by everyone who wants to deal with the topics Microsoft, Azure, Microsoft 365, Power Platform or Dynamics 365. In this article, I would like to go into the possibilities that Microsoft offers us for preparation.Regardless of whether you’re new to the subject or already know it, preparing for a potential exam is often a challenge. But first, let’s clarify which exams and certifications are available in the first place.Microsoft certifications at a glanceMicrosoft categorizes its entire Certification Portfolio by category and level. The following categories are currently provided by Microsoft:AzureDynamics 365Microsoft 365Power PlatformSecurity, Compliance and IdentityAs well as in the levels Fundamentals, Role-based and Specialty. This is very clearly presented in the overview (aka.ms/TrainCertPoster ) and is regularly updated by Microsoft. In addition, Microsoft offers a second, much more detailed overview (aka.ms/TrainCertDeck diff --git a/posts/illuminate-technical-debt/index.html b/posts/illuminate-technical-debt/index.html index 39fc57d..d189107 100644 --- a/posts/illuminate-technical-debt/index.html +++ b/posts/illuminate-technical-debt/index.html @@ -1,5 +1,5 @@ Illuminate Technical Debt — Daily DevOps & .NET -Daily DevOps & .NET +Daily DevOps & .NET PostsAbout usIlluminate Technical DebtWhatever our role, be it developer, IT professional or architect, we try to avoid technical debt. If this is not possible from the outset, or if we decide to accept this technical debt for a limited period of time, we usually lack the tools to do so. This is where this article may help.What is technical debt?Technical debt is a metaphor used to describe the costs and risks incurred as a result of decisions or omissions. It is important to note that this metaphor can be applied to all types of technical debt.First, there is architectural debt, which is usually based on a decision made by an individual architect or group of architects. Then there is implementation debt, which is probably the most common in most projects, as it is also identified through source code analysis. And then there is the test and documentation debt, which is far too often neglected.Whatever the type of technical debt, the common denominator is that it tends to cause problems in projects and later in operations. In July 2011, Phillipe Kruchten described them as “invisible negative elements in the backlog”.However, they are rarely recorded and visualised.How can I still make them visible?In most projects, it is individuals or a small group of individuals who are aware of individual Technical Debts. However, these projects usually have another thing in common: when these technical debts are addressed, they are postponed or even dismissed.To avoid this, Technical Debts need to be tracked in the same way as requirements or defects. All you need is a person with administrative rights in Azure DevOps or comparable platforms.Extension of the Azure DevOps process templatesAzure DevOps provides the ability to visualise technical debt by extending process templates. The Microsoft article [Customize a process template] (https://learn.microsoft.com/en-us/azure/devops/reference/process-templates/customize-process?view=azure-devops ) details how to inherit and extend a process template to achieve the following result.In this case, the extended process templates AgileRCDA and ScrumRCDA were simply extended by an additional WorkItem type, which will be used in the future to record and visualise technical debt. In 2011, Kruchten already used the colour black for the colour scheme of technical debt.For later prioritisation and sorting, it is advisable to pass additional parameters to the WorkItem type, such asThis creates the technical foundation based on the process templates, and within the project only the technical debt type work items need to be recorded.SummaryThe Azure DevOps extension (or alternative platforms) presented here takes only a few minutes to extend and deploy. But it will have the desired effect by the next sprint meeting. That’s because the black work items of the “technical debt” type quickly give the impression of a tombstone and provide the necessary visibility.Don’t be surprised if the tombstones start to pile up after a few weeks. Your colleagues and team members know about other Technical Debts that you probably haven’t noticed yet.Comments
How to Prepare for Microsoft CertificationHow do I best prepare for a Microsoft certification? - this or a similar question is asked by everyone who wants to deal with the topics Microsoft, Azure, Microsoft 365, Power Platform or Dynamics 365. In this article, I would like to go into the possibilities that Microsoft offers us for preparation.Regardless of whether you’re new to the subject or already know it, preparing for a potential exam is often a challenge. But first, let’s clarify which exams and certifications are available in the first place.Microsoft certifications at a glanceMicrosoft categorizes its entire Certification Portfolio by category and level. The following categories are currently provided by Microsoft:AzureDynamics 365Microsoft 365Power PlatformSecurity, Compliance and IdentityAs well as in the levels Fundamentals, Role-based and Specialty. This is very clearly presented in the overview (aka.ms/TrainCertPoster ) and is regularly updated by Microsoft. In addition, Microsoft offers a second, much more detailed overview (aka.ms/TrainCertDeck diff --git a/posts/illuminate-technical-debt/index.html b/posts/illuminate-technical-debt/index.html index 39fc57d..d189107 100644 --- a/posts/illuminate-technical-debt/index.html +++ b/posts/illuminate-technical-debt/index.html @@ -1,5 +1,5 @@ Illuminate Technical Debt — Daily DevOps & .NET -Daily DevOps & .NET +Daily DevOps & .NET PostsAbout usIlluminate Technical DebtWhatever our role, be it developer, IT professional or architect, we try to avoid technical debt. If this is not possible from the outset, or if we decide to accept this technical debt for a limited period of time, we usually lack the tools to do so. This is where this article may help.What is technical debt?Technical debt is a metaphor used to describe the costs and risks incurred as a result of decisions or omissions. It is important to note that this metaphor can be applied to all types of technical debt.First, there is architectural debt, which is usually based on a decision made by an individual architect or group of architects. Then there is implementation debt, which is probably the most common in most projects, as it is also identified through source code analysis. And then there is the test and documentation debt, which is far too often neglected.Whatever the type of technical debt, the common denominator is that it tends to cause problems in projects and later in operations. In July 2011, Phillipe Kruchten described them as “invisible negative elements in the backlog”.However, they are rarely recorded and visualised.How can I still make them visible?In most projects, it is individuals or a small group of individuals who are aware of individual Technical Debts. However, these projects usually have another thing in common: when these technical debts are addressed, they are postponed or even dismissed.To avoid this, Technical Debts need to be tracked in the same way as requirements or defects. All you need is a person with administrative rights in Azure DevOps or comparable platforms.Extension of the Azure DevOps process templatesAzure DevOps provides the ability to visualise technical debt by extending process templates. The Microsoft article [Customize a process template] (https://learn.microsoft.com/en-us/azure/devops/reference/process-templates/customize-process?view=azure-devops ) details how to inherit and extend a process template to achieve the following result.In this case, the extended process templates AgileRCDA and ScrumRCDA were simply extended by an additional WorkItem type, which will be used in the future to record and visualise technical debt. In 2011, Kruchten already used the colour black for the colour scheme of technical debt.For later prioritisation and sorting, it is advisable to pass additional parameters to the WorkItem type, such asThis creates the technical foundation based on the process templates, and within the project only the technical debt type work items need to be recorded.SummaryThe Azure DevOps extension (or alternative platforms) presented here takes only a few minutes to extend and deploy. But it will have the desired effect by the next sprint meeting. That’s because the black work items of the “technical debt” type quickly give the impression of a tombstone and provide the necessary visibility.Don’t be surprised if the tombstones start to pile up after a few weeks. Your colleagues and team members know about other Technical Debts that you probably haven’t noticed yet.Comments
Illuminate Technical DebtWhatever our role, be it developer, IT professional or architect, we try to avoid technical debt. If this is not possible from the outset, or if we decide to accept this technical debt for a limited period of time, we usually lack the tools to do so. This is where this article may help.What is technical debt?Technical debt is a metaphor used to describe the costs and risks incurred as a result of decisions or omissions. It is important to note that this metaphor can be applied to all types of technical debt.First, there is architectural debt, which is usually based on a decision made by an individual architect or group of architects. Then there is implementation debt, which is probably the most common in most projects, as it is also identified through source code analysis. And then there is the test and documentation debt, which is far too often neglected.Whatever the type of technical debt, the common denominator is that it tends to cause problems in projects and later in operations. In July 2011, Phillipe Kruchten described them as “invisible negative elements in the backlog”.However, they are rarely recorded and visualised.How can I still make them visible?In most projects, it is individuals or a small group of individuals who are aware of individual Technical Debts. However, these projects usually have another thing in common: when these technical debts are addressed, they are postponed or even dismissed.To avoid this, Technical Debts need to be tracked in the same way as requirements or defects. All you need is a person with administrative rights in Azure DevOps or comparable platforms.Extension of the Azure DevOps process templatesAzure DevOps provides the ability to visualise technical debt by extending process templates. The Microsoft article [Customize a process template] (https://learn.microsoft.com/en-us/azure/devops/reference/process-templates/customize-process?view=azure-devops ) details how to inherit and extend a process template to achieve the following result.In this case, the extended process templates AgileRCDA and ScrumRCDA were simply extended by an additional WorkItem type, which will be used in the future to record and visualise technical debt. In 2011, Kruchten already used the colour black for the colour scheme of technical debt.For later prioritisation and sorting, it is advisable to pass additional parameters to the WorkItem type, such asThis creates the technical foundation based on the process templates, and within the project only the technical debt type work items need to be recorded.SummaryThe Azure DevOps extension (or alternative platforms) presented here takes only a few minutes to extend and deploy. But it will have the desired effect by the next sprint meeting. That’s because the black work items of the “technical debt” type quickly give the impression of a tombstone and provide the necessary visibility.Don’t be surprised if the tombstones start to pile up after a few weeks. Your colleagues and team members know about other Technical Debts that you probably haven’t noticed yet.Comments