Programming with Palermo

Programming with Palermo

By Jeffrey PalermoTechnologyEducationHow To
Download on the App Store

Programming with Palermo episodes

  • Engineering Practices for Establishing Quality- Episode 24

    In this episode, Jeffrey discusses quality and the engineering practices that support it. Not at all a comprehensive list of possible practices, this list contains the practices that should be considered essential. Without these, any team would find it difficult to establish a high-quality piece of software. Establishing quality is one of the pillars of the Clear Measure Way.

    • Without first establishing quality, software developers end up spending time finding, diagnosing, and fixing bugs that pop up. This robs the team of much-needed capacity for new features and enhancements. Trying to add features without first establishing quality is like budgeting based on a credit card rather than income. There is no way the budget will balance, and it's only a matter of time before the situation comes crumbling down.
      • An automated (private) build
      • Test-driven development
      • Onion architecture (dependency management & proper factoring)
      • Static analysis
      • Pull request checklists
      • Continuous integration
      • Automated full-system acceptance tests

    Sample repository

    Thanks to Clear Measure for sponsoring this sample and episode of Programming with Palermo.

    This program is syndicated on many channels. To send a question or comment to the show, email [email protected]. We'd love to hear from you.

    To use the private and confidential Chaplain service, use the following Gentleman: 512-619-6950 Lady: 512-923-8178

    34 min
  • Custom Primitives- Refactoring- Speed- Episode 23

    Custom primitives, an example of how refactoring accelerates team speed, part of the Clear Measure Way

    In this episode, Jeffrey discusses custom primitives, a specific refactoring. Refactoring is one of the engineering practices that increases team speed. Moving fast is part of the Clear Measure Way.

    • With a refactoring mindset, we modify existing code so that a new change appears as if we had designed it that way since the genesis of the software. We don't allow something to appear "bolted on"
      • An Onion Architecture mindset encourages us to push dependencies to the edges and pull core concepts to the center
      • Common operations on primitives clutter the UI, one of the edge interfaces in any application
      • Pulling common operations into the core model of an application limits repetition and reduces concept count
      • Options for refactoring custom usages of primitives
      • C# implicit operators allow the rest of the application to believe our decimal is a normal C# decimal
      • A custom primitive allows the execution of custom logic everywhere while keeping the logic in one place.

    Sample repository

    Thanks to Clear Measure for sponsoring this sample and episode of Programming with Palermo.

    This program is syndicated on many channels. To send a question or comment to the show, email [email protected]. We'd love to hear from you.

    To use the private and confidential Chaplain service, use the following Gentleman: 512-619-6950 Lady: 512-923-8178

    17 min
  • Leading a High Performing Team- Episode 22

    In this episode, Jeffrey discusses how to form, equip, train, and lead your software team

    • The fundamentals of software team leadership
      • Read my book, .NET DevOps for Azure
      • Write down your team charter to align your team members
      • How to hire when adding new team members
      • Training the team
      • Equipping the team
      • Leading the team

    Thanks to Clear Measure for sponsoring this sample and episode of Programming with Palermo.

    This program is syndicated on many channels. To send a question or comment to the show, email [email protected]. We'd love to hear from you.

    To use the private and confidential Chaplain service, use the following Gentleman: 512-619-6950 Lady: 512-923-8178

    16 min
  • Production Stability- How to Run Your Software With Confidence- Episode 21

    In this episode, Jeffrey discusses how to run your software with confidence by achieving production stability

    • The funamentals of stability
      • Read my book, .NET DevOps for Azure
      • Stress the software more in test suites than you think production will
      • Implement logs
      • Implement tracing
      • Implement metrics
      • Build an automated telemetry dashboard that allows easy analysis of the above telemetry

    Thanks to Clear Measure for sponsoring this sample and episode of Programming with Palermo.

    This program is syndicated on many channels. To send a question or comment to the show, email [email protected]. We'd love to hear from you.

    To use the private and confidential Chaplain service, use the following Gentleman: 512-619-6950 Lady: 512-923-8178

    17 min
  • Setting a Foundation For Software Quality- Episode 20

    In this episode, Jeffrey discusses how to set a foundation for software quality.

    • The fundamentals of quality
      • Read my book, .NET DevOps for Azure
      • Detect early, or better yet, prevent defects
      • Implement static analysis
      • Use test-driven development with multiple test suites
      • Add formal inspections to your pull request approvals
      • Quality comes first, then stability in production, then the speed of productivity you want to achieve
    • Costs of poor quality are also discussed

    Thanks to Clear Measure for sponsoring this sample and episode of Programming with Palermo.

    This program is syndicated on many channels. To send a question or comment to the show, email [email protected]. We'd love to hear from you.

    To use the private and confidential Chaplain service, use the following Gentleman: 512-619-6950 Lady: 512-923-8178

    17 min
  • Empowering Your Software Team to Move Fast- Episode 19

    In this episode, Jeffrey discusses how to empower your software team to move fast. You are an architect. You lead a software team. You can do it. But it's up to you to turn their effort into progress.

    • The fundamentals of moving fast
      • Read my book, .NET DevOps for Azure
      • Test-driven development
      • Continuous integration (actual CI, not just a triggered compile)
      • Automated deployments from day 1, through TDD, UAT, and Prod environments.
      • Operational telemetry from day 1 in your environments
      • Team scorecard. Know your throughput, velocity, and capacity. Measure it, analyze it, tune it.
    • Threats to moving fast are also analyzed

    Thanks to Clear Measure for sponsoring this sample and episode of Programming with Palermo.

    This program is syndicated on many channels. To send a question or comment to the show, email [email protected]. We'd love to hear from you.

    To use the private and confidential Chaplain service, use the following Gentleman: 512-619-6950 Lady: 512-923-8178

    24 min
  • The Need For Strong Software Leaders- Episode 18

    In this episode, Jeffrey discusses the need for strong software leaders. Whether they be software managers, lead engineers, lead developers, architects, or chief architects, he'll discuss the history of software industry failure and the forces at play that any software leader must contend with. Then, Jeffrey reviews the responsibilities of a software leader.

    • What you do as a software leader
      • Form your team
      • Equip your team
      • Design the environment your team works in
      • Sets vision, targets, and process for your team
      • Establishes priorities and pushes them in the right direction
      • Measures your team. A players want a report card. C players don't want to be graded.
      • Monitors and adjusts your team
      • Grows/stregnthens your team.

    Thanks to Clear Measure for sponsoring this sample and episode of Programming with Palermo.

    This program is syndicated on many channels. To send a question or comment to the show, email [email protected]. We'd love to hear from you.

    To use the private and confidential Chaplain service, use the following Gentleman: 512-619-6950 Lady: 512-923-8178

    28 min
  • .gitignore- What It Is and How To Use It- Episode 17

    In this episode, Jeffrey reviews what the .gitignore file is, its importance, and how to use it. The file rreviewcan be found at .gitignore file here

    Thanks to Clear Measure for sponsoring this sample and episode of Programming with Palermo.

    This program is syndicated on many channels. To send a question or comment to the show, email [email protected]. We'd love to hear from you.

    To use the private and confidential Chaplain service, use the following Gentleman: 512-619-6950 Lady: 512-923-8178

    11 min
  • Microsoft Ignite 2022 Software Development Sessions- Episode 16

    In this episode, Jeffrey updates us on the Microsoft Ignite 2022 conference and highlights twelve sessions highly relevant for software developers.

    Microsoft Ignite 2022

    Making cloud native easier: Architecting the next-gen Azure PaaS

    Deep dive into Dapr.io and Cloud Native Architectures

    Hidden gems and live coding with .NET 7

    How Visual Studio builds Visual Studio with Visual Studio

    Minimal APIs: The magic revealed

    Increasing productivity and quality for hybrid development teams

    Pragmatic production debugging in Azure

    7 Tips for Building Robust Cloud Applications

    Implementing Effective DevSecOps for Azure

    Make building cloud native solutions a breeze with visual studio code, GitHub and Azure container apps

    Supercharge your testing practice with UiPath Test Suite

    Automated cloud application testing with Azure and Playwright

    Thanks to Clear Measure for sponsoring this sample and episode of Programming with Palermo.

    Scott Hunter- AzureDevOps Podcast- Episode 24 Scott Hunter- AzureDevOps Podcast- Episode 119 Scott Hunter- AzureDevOps Podcast- Episode 152 Scott Hunter- AzureDevOps Podcast- Episode 211 Brady Gaster- AzureDevOps Podcast- Episode 102 Kendall Roden- AzureDevOps Podcast- Episode 137 Kendall Roden- AzureDevOps Podcast- Episode 203

    This program is syndicated on many channels. To send a question or comment to the show, email [email protected]. We'd love to hear from you.

    To use the private and confidential Chaplain service, use the following Gentleman: 512-619-6950 Lady: 512-923-8178

    16 min
  • Packaging Release Candidates- Episode 15

    Code Sample

    In this episode, Jeffrey is going to show you how to properly package release candidates of your application and prepare them to be deployed to a representative environment, a pre-production environment, that will eventually go to production. In order to have something to deploy, it needs to be packaged in the proper manner.

    First, you will create a release candidate with a version number using the proper pattern: major.minor.build.revision, and integrate that into your build. You will learn how to modify the build script for the build script to have the logic necessary to create deployable packages from the built code. You will then learn how to archive the files that are a result of this process into a package manager to produce the release candidate.

    A release candidate is a concept with multiple files and a particular version of a particular application. This can be composed of one or multiple files and one or multiple deployable components. In this example, the application has a website and database that will be packaged up, including the full system acceptance test suite. This will allow you to run the test suite in a fully deployed environment. This means there will be three things you will need to package and three things that are going to be deployed and operate in a production-like environment. They will all be stamped with the name of the application, the church bulletin in this example, with the version of the application that comes from the build number.

    You will also be introduced to proper build numbers- dot net, dot exe- to have the right files to package up. You will learn about a tool called Octopus CLI to package up the three components into NuGet packages ready for deployment.

    When archiving the release candidates, you will use Azure Artifacts in the full NuGet server to provide a safe, secured, and available location whenever the deployment tooling needs to grab a specific version or a specific deployable component.

    Thanks to Clear Measure for sponsoring this sample and episode of Programming with Palermo.

    This program is syndicated on many channels. To send a question or comment to the show, email [email protected]. We'd love to hear from you.

    To use the private and confidential Chaplain service, use the following Gentleman: 512-619-6950 Lady: 512-923-8178

    27 min

About Programming with Palermo

From the publisher's feed

You deliver software. That's what you do. And it can be frustrating when things take too long, when bugs pop up, or when things break in production. But you have what it takes. Programming with…