Byte Journeys

Join me as I share insights and discoveries from my journey in the world as a software engineering manager by day and tinkerer by night.

How to ensure software quality

08 February 2024

CfP: With all we do, there are three key principles that our team follows to ensure that our process flow remains effective and efficient. The first principle is "Finishing > Starting." Once a work item has entered the system, our team prioritizes finishing it before starting new work. This means that we focus on completing in-progress work before taking on new tasks. By prioritizing finishing work items, we ensure that we deliver value to our customers and stakeholders in a timely and consistent manner. The second principle is "Limit the work in progress." Our team limits the amount of work that can be in progress at any given time. We actively monitor our work items to ensure that we don't have too much work in progress, which can lead to a decrease in productivity and quality. If we see that too much work is being done in parallel, we start a discussion to re-prioritize or re-assign work. The third principle is "Collaboration over expertise excellence." We prioritize building expertise within the team and encourage collaboration rather than relying on one expert to solve every issue. - Process - Team principles - - finishing > starting - - Limit wip - - collaboration over expertise excellence - TDD, ensure software quality, testing Platforms teams operate differently than product teams. Where product teams' success can be measured by their output and their pace of inovation, platform or infrastructure teams need to focus on stability, resilience and ... Title: Tailoring Agile: Custom Processes for Product vs. Platform Abstract: This talk examines tailored development processes for platform teams and how they differ from product teams, contrasting their needs and outlining best practices for platform team stability, resilience, and productivity. Description: Different team mandates require distinct processes tailored to their specific roles and outcomes. We have matured from blindly applying Scrum and can pick and adapt whatever process is right for our specific team's need. In this talk I will explore the fundamental differences in development processes between product teams, with their direct user focus, and platform teams, whose customers are often internal to an organization and how to pick the right process artifacts for your team. As a base, I will outline the core mandates of platform teams and how these contrast with the priorities of customer-facing product teams. This distinction sets the stage for understanding why off-the-shelf agile practices, often optimized for user-focused iterative delivery, may not directly translate to the context of platform development. The talk will then present best practices in the form of a specific platform team process as an example. This process focuses on everything you would expect from a platform team: long term stability, resilience, developer productivity and how all of this will make your customers in the product teams and all engineers involved happy.