Knowledgebase

Software Engineering: Everything That Matters, Briefly Print

  • softwareengineering, software, hacked, performance, troubleshooting, guide, howto, solution
  • 0

The whole category in one page.

WHAT SEPARATES ENGINEERING FROM PROGRAMMING IS TIME AND OTHER PEOPLE

Most project failures are not technical. Building the wrong thing is the commonest and most expensive.

What reduces nearly all of them: deliver something small, early, to real users, and repeat.

ASK OF ANY DECISION HOW EXPENSIVE IT IS TO CHANGE LATER

That determines how much thought it deserves now, and what should be deferred.

PEOPLE DESCRIBE SOLUTIONS, NOT PROBLEMS

Ask what they are trying to achieve and how they would know it succeeded. Watch what they actually do — it differs from what they describe.

Adjectives are not requirements. Ask of everything: how would we verify this?

START SIMPLE, AND DRAW BOUNDARIES WHERE THINGS CHANGE TOGETHER

Most systems should begin as a well-structured monolith. Boundaries that are not enforced are eroded.

Record decisions and their reasoning — they are questioned for years and forgotten within months.

WRITE FOR THE READER

Code is read far more often than written. Clever code costs time every time anyone reads it, including its author six months later.

Refactor continuously in small steps, never as a project.

ONLY DELIBERATE, RECORDED COMPROMISE IS DEBT

Allocate a consistent proportion of capacity to it, and justify it in delivery speed rather than technical terms.

ONE LOGICAL CHANGE PER COMMIT, MERGED WITHIN DAYS

And never commit a secret — once in history, it is there permanently.


Was this answer helpful?
Back

Are you happy with your experience? Leave us a review on Trustpilot.


Trustpilot