Overview & Tenets

Here's a brief overview of the process; we'll dive deeper in future sections.

What are the core tenets for leading software organizations?

  1. Expect and foster leadership
  2. Work backward & eliminate waste
  3. Create the right feedback mechanisms

These tenets represent the main ideas we hold true, against which we'll evaluate everything we do.

Why are these tenets important?

  • Leadership is important because it allows your organization to gracefully handle various emerging situations without the need to define every single contingency. It also holds everyone accountable for delivering results.
  • Working backward, aka starting with the end in mind, is important because engineers time is too precious to waste.
  • The importance of eliminating waste is somewhat self-evident, but waste comes in many disguises - and it's sometimes tempting to classify some things as waste that really isn't. Hence, identifying waste is an important prerequisite to eliminating it and we'll mention multiple examples in the following sections.
  • Creating feedback mechanisms is important to correct course; it's simply impossible to steer the ship without quality signals.

What are the main process loops for software engineering?

Software engineering is iterative by nature. This is widely recognized, and what generally sets it apart from other disciplines. For instance, a software release will take less time than building a skyscraper, and functionality will accrete over time.

However, there are still complete loops to follow, and steps that shouldn't be skipped. Here are the main loops:

  • Ad hoc work & bugs: Driven by informal requirements, executed on the fly.
  • Production maintenance: Apart from emergent issues, requires regular reviews and rapid execution.
  • Projects & programs: Requires more structure, such as formal requirements, design, work breakdown, estimate, planning, execution, and triage. It also requires regular review and effective outward communications.
  • Organization well-being: Requires regular check-ins to ensure good team health and morale, followed through with corrective actions as needed.

How do these loops fit with our tenets?

Work backward & eliminate waste is evidenced in projects by the structured flow from formal requirements to execution. This is about envisioning the desired end state, reviewing and rallying the team around that vision, and purposefully executing toward the goal without wasting resources. Additionally, the planning stage allows pre-allocating time and team members in a way that is intentional and reduces waste. The same tenet is also reflected by what's absent: Ad Hoc work doesn't need an estimation or planning step.

Create the right feedback mechanisms is seen in periodic reviews, whether for running programs, production support, or team well-being. These checkpoints provide opportunities for recalibration, ensuring we're on the right path. It's also present at the execution step for all loops, which we'll discuss in the next sections.

As for Leadership, while it doesn't manifest explicitly in the loops, it's the driving force behind every decision and action.

Does each loop require different processes?

No, common steps across all loops will be nicely consolidated. For instance, execution will be driven by a single Kanban flow. Still, it's useful to think of these loops as distinct for now, to reason about and justify their existence.

What if some work is done by other people?

Great! If Product Managers are already crafting solid requirements - that's done. This is likely the case in most corporate settings.

Always embrace and appreciate collaboration. If someone is eager to shoulder a part of the process, let them. Your main focus should be to ensure that the pieces align smoothly, creating a cohesive workflow. Remember, it's not about who does what, but how seamlessly everything comes together in the end.

Is this the complete picture?

When it comes to the fundamental processes of software engineering, yes, the 4 loops encapsulate the core cycles that guide the engineering workflow.

However, as a manager, your responsibilities extend beyond these loops. You'll encounter tasks and challenges like fostering leadership, communicating with peers and stakeholders, strategically organizing teams, conducting interviews, performance management, conflict resolution, and more. We'll delve into these areas in subsequent sections.