惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
aimingoo的专栏
aimingoo的专栏
V
Visual Studio Blog
罗磊的独立博客
爱范儿
爱范儿
J
Java Code Geeks
博客园 - 司徒正美
N
Netflix TechBlog - Medium
Microsoft Security Blog
Microsoft Security Blog
美团技术团队
小众软件
小众软件
Google DeepMind News
Google DeepMind News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
V2EX
博客园 - 聂微东
云风的 BLOG
云风的 BLOG
WordPress大学
WordPress大学
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Jina AI
Jina AI
Y
Y Combinator Blog
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Martin Fowler
Martin Fowler
Vercel News
Vercel News

Yusuf Aytas

When Code Is Cheap, Does Quality Still Matter? Why Crouching Tiger, Hidden Dragon Is a Masterpiece Why We Ignore Advice The Mirror Is Part of the Machine When Too Many Maps Overlap on One Person The Work Runs on Different Maps Your Work Introduces You Trial By Fire The Dude Why Headcount Math Lies Capacity Is the Roadmap The Roadmap Is Not the System Torres del Paine W Trek Escaping Status Theater Incentives Drive Everything Scaling Culture Without Dilution What Good Looks Like Why Airport Security Feels Random Why Politics Appear How to Work with Me The Janus Protocol Multi-Horizon Delivery Framework What Good Execution Looks Like Managing Your Manager Why Kingdom of Heaven’s Director’s Cut Is Better AI Broke Interviews Most of What We Call Progress Managers Have Been Vibe Coding All Along Stop Wasting Brainpower Why Over-Engineering Happens
Essential Engineering Principles
Yusuf Aytas · 2022-02-21 · via Yusuf Aytas

Published · 6 min read

Engineering principles give teams a practical foundation for how to build and operate software. They guide decisions, shape behaviours, and help groups stay aligned even as systems grow in complexity. Instead of being abstract ideas, principles work best when they’re simple, clear, and used every day.

Good principles remove guesswork. They set a shared baseline for what “good engineering” looks like and make it easier for teams to move fast without creating chaos. While different organizations favor different principles, the goal is the same. Create clarity and consistency so teams can deliver effectively.

Here are the principles I find most useful.

Essential engineering principlesEngineering Principles

Ship Frequently

Delivering value depends on the agility of the team. We deliver tangible outcomes on a regular cadence. We want to enable a fast feedback loop with the customer. We have a bias for action to deliver business value. Thus, we ship frequently and responsibly. Though, we never compromise quality.

Shipping frequently reduces risk. Smaller changes are easier to test, easier to review, and easier to roll back. They keep momentum high and prevent work from piling up into large, fragile releases. Frequent shipping also exposes real feedback earlier, which helps teams make better decisions and avoid building the wrong thing for too long.

A healthy engineering culture treats shipping as a habit, not an event.

Conduct Incident Debrief

We learn from our mistakes. When an incident occurs, it deserves an incident debrief meeting. The intent is to uncover a class of defects that stop us from delivering robust and reliable services. We want to analyze incidents in detail and implement procedures to prevent future occurrences. We conduct meetings blame-free.

A good incident debrief isn’t about finding who caused the issue but understanding why the system allowed it to happen. Most failures come from gaps in process, clarity, assumptions, or tooling. It's rarely from individuals. A blame free environment makes it easier for people to be honest about what went wrong.

The goal is simple. Improve the system so the same issue never surprises us twice.

Design in Public

We use the collective intelligence of our engineering team. We have a great pool of talent with different expertise. Designing in public gives opportunity to polish our design through constructive feedback. Capitalizing on expertise ultimately helps us deliver better software. We learn from our peers and clear out potential problems.

Designing in public is about making decisions visible so the right people can spot risks, challenge assumptions, and contribute their knowledge. Hidden designs often miss simple improvements that someone else could have caught in minutes.

Clear, shared design work reduces rework, improves alignment, and helps teams avoid expensive surprises later in the process.

Hire, Grow and Retain The Best

We want to hire the best talent, set them up for success, and provide an environment to retain them. In Steve Jobs’s words, “Go after the cream of the cream. A small team of A+ players can run circles around a giant team of B and C players.” Hiring is the beginning. We help engineers grow and give them opportunities. We provide fast feedback and accommodate needs where possible.

Great teams don’t happen by accident. They come from deliberate hiring, consistent coaching, and an environment where people are trusted to do meaningful work. Strong engineers raise the bar for each other, and good culture accelerates everyone’s growth.

Retaining great people matters just as much as hiring them. Stability gives teams momentum, reduces knowledge loss, and creates an environment where engineering excellence becomes the norm rather than the exception.

Review all Code

We ensure consistency in our code, improve our implementation, learn from each other, and strive for quality by reviewing code. Scripts, patches, and project code should go through a code review process regardless of their size or purpose. A portion of production incidents come from small yet critical changes. We want to transfer knowledge as well as share expertise.

Code review is one of the simplest and most effective quality gates a team has. It catches mistakes early, strengthens shared ownership of the codebase, and spreads context across the team. Even tiny changes can introduce big issues, which is why every change deserves a second pair of eyes.

Good reviews are fast, respectful, and focused on clarity, correctness, and maintainability. It is not personal style. Over time, a strong review culture raises the engineering bar for the entire team.

Build CI/CD Pipelines

We enable ourselves to release frequently and confidently with continuous integration and deployment. We add necessary testing and coverage to find defects and bugs before they hit production. Automating the process helps us deliver value at scale.

A strong CI/CD pipeline reduces manual work, shortens feedback loops, and lowers the risk of introducing regressions. It ensures that every change goes through a consistent path, regardless of who wrote it or when it was shipped.

CI/CD creates a dependable system that lets teams move fast without breaking things. When pipelines are reliable, engineers trust the process and focus their energy on solving real problems rather than managing releases.

Run What You Build

We are accountable for the services and systems we build. We think about the observability of the components from day one. Accountability pushes engineers to release services responsibly. On the flip side, it gives teams autonomy and decentralization. Each team can build as many services or systems and then run them.

Running what you build creates a natural feedback loop. When engineers operate the systems they design, they feel the real impact of their decisions—good or bad. This leads to better architecture, clearer ownership, and far fewer shortcuts taken during development.

It also encourages teams to invest in proper monitoring, alerting, and documentation, because they will be the ones responding when things go wrong. This kind of accountability builds maturity, improves reliability, and creates a culture where engineers take pride in the quality of what they deliver.

Write Definition of Done

Definition of Done (DoD) can require different things depending on the work. Some work is longer such as initiatives. Some are small such as a task. In both cases, writing the definition of done gives us clear goals and a finish line regardless of the size of the work. DoD ensures expectations and prevents jobs from lingering without ever completing. For initiatives, scope creeping can occur in the absence of DoD.

A clear Definition of Done removes ambiguity. It aligns everyone on what “finished” actually means, and it protects teams from endless polishing or shifting expectations. Without it, tasks stretch indefinitely, quality varies, and priorities get confused.

Writing the DoD upfront forces better thinking. It clarifies requirements, surfaces hidden dependencies, and helps teams break work into meaningful increments. When done well, it becomes a simple but powerful tool for focus, quality, and predictable delivery.

Good Reads

Blog: Is ‘you build it, you run it’s living up to the hype?

Article: Attracting and retaining the right talent

Article: Understanding Code Review and its Benefits

What are the benefits of CI/CD?