Skip to content

Latest commit

 

History

History
130 lines (81 loc) · 6.72 KB

index.md

File metadata and controls

130 lines (81 loc) · 6.72 KB

Better Managed Development

A method for managing engineering culture

What We Define as “Engineering Culture”

"Culture", in the context of software engineering is a question of how, not what, one builds.

This way, we can define Engineering Culture as the implementation of a set of standards, processes and practices that define how we deliver software products; from concept to production deployment.

Some specifics of culture will vary in some aspects from organization to organization; but there are universal and quantifiable guardrails that we believe are broadly applicable to any healthy engineering organization.

The objective of this manifesto to provide a starting checklist that engineers, middle and senior engineering management should run through to answer the question:

"What guardrails and quality gates are in place to secure our engineering culture?"

This manifesto supports three broad categories of actors in the organization:

  1. Engineering Non-management

    • Use a shorthand framework to know what a company’s engineering culture is before joining up. Everybody has expectations of you (“10X dEveLopEr”, Agile, PMP, Extreme Programming etc). You should have one for the culture you participate in and contribute to.

    • Have a framework within which to understand your place in your engineering organization, understanding what you should expect from your management, peers and partners

    • Guardrails to hold yourself, your colleagues and your organization accountable to standards and expectations

  2. Engineering Management

    • Reliably and repeatably execute your strategy and deliver innovative products in a timely manner.

    • Guardrail and protect your engineering organization’s culture.

    • Be deliberate about the outcomes you want to see from middle management and beyond

    • Have objective measures to gauge the state of your engineering organization and its culture.

    • Codify and document the bases of your relationships with partners of the engineering organization

  3. Product/Business

    • Understand the ethos and motivations of the engineering organization you’re partnered with
    • Partner more effectively with the organization based on a transparent and well-documented set of principles and practices.

Principles

  1. Safeguard engineering culture as a distinct responsibility

It should be one or more people's responsibility to deliberately monitor,influence and track the culture of the organization

  1. Quality gates and guardrails protect engineering culture

Guardrails and quality gates must be installed to provide long-term safeguards for the culture of organization

  1. Measure engineering culture along predefined guardrails and quality gates

Guardrails and quality gates will offer the best opportunities to observe the culture

  1. Autopilot wherever possible and practical

Put as many guardrails as you can on autopilot - a system of checks and balances that can self-direct

  1. Understand the quality gates available to you

Designate specific points in time or a process as opportunities to improve both people and products

  1. Be loud or be wrong, never both

Either be objectively, verifiably correct; or don't speak in absolutes


  1. Building the product should be as straightforward as you can make it

You deserve the most frictionless engineering experience you can create for yourself

  1. Supporting the product should be as straightforward as you can make it

Make supporting the product as comfortable as you can for yourself

  1. Testing the product should be as straightforward as you can make it

The business deserves guarantees of the quality of the product. Make testing and warrantying the product as straightforward as you can for yourself

  1. Upgrading the product should be as straightforward as you can make it

Expect your product to change as the business landscape changes. Make upgrades and deprecation as straightforward as you can for yourself

  1. Build the product to tell you what went wrong and how

Spend as little time as possible wondering what went wrong or how. Make root cause analysis as straightforward as you can for yourself

  1. Shift the guardrails as leftward as you can make them

Do more to guardrail the quality of your product in earlier quality gates. You'll have less to do later when it's more costly

  1. Don't shrinkwrap your product

Requirements will change; timelines will change; avoid hard forks and prepare for your design to take a punch

  1. Seek the feedback of your customers and partners at key quality gates

Keep everyone informed; cover your rear


  1. Actively manage scope, capacity and timelines

Nothing will burn your engineers or leadership out faster than shifting scopes, capacity and timelines

  1. Actively engineer context sharing

Everyone should know why they're doing what they're doing; clarify the connection between the past, present and future

  1. Actively engineer communication loops

Everyone should know how things are going; you should know how things are going

  1. Actively manage goals

Goals build muscle; muscle builds the organization

  1. Actively engineer opportunities

Goals without opportunities to deliver them are worthless

  1. Actively engineer skill-sets

A team full of generalists will become costly; cultivate depth in the specific skill-sets your team needs, in line with their interests

  1. Actively manage delivery risk

For everything that could negatively affect delivery and quality: document, communicate and mitigate.

  1. Actively engineer goodwill

Happy developer, happy life. Hard times will come, and go over easier when the team's usually in a generally in a good mood

  1. The Peter Principle is the enemy

Responsibility without adequate preparation for the responsibility is going to be disastrous


  1. The business and engineering are in a partnership, not a "customership"

Partners are mutually obligated to each other and hold themselves accountable to predetermined expectations

  1. Know your customers

You can't empathize with a customer you never hear from. You won't satisfy customers you don't empathize with