All readings
Modern Software Engineering

Modern Software Engineering

This book presents software development as an engineering practice at every level. To master software engineering, we must become experts at learning and managing complexity.

This book presents software development as an engineering practice at every level. To master software engineering, we must become experts at learning and managing complexity.

Optimize for learning

To optimize for learning, the book presents five behaviors to consider:

  • Working iteratively
  • Feedback
  • Incrementalism
  • Empiricism
  • Being Experimental

The main idea is to work on small steps, collect feedback, and adjust.

Optimize for managing complexity

The book presents other five ideas to manage complexity:

  • Modularity
  • Cohesion
  • Separation of Concerns
  • Information Hiding and Abstraction
  • Managing Coupling

We need to manage the complexity of our systems.

Tools to support engineering in software

Going deeper into some ideas that were already discussed in the book, like:

  • Testability
  • Deployability
  • Controlling the variables
  • Continuous Delivery

A great video explaining the core ideas behind this book by his author:

hjklmove /search yyank dtheme ilang ttoc mmark nnote ?help

Keyboard Shortcuts

Movement vim hjkl

hPrevious post← left
jScroll down↓ down
kScroll up↑ up
lNext post→ right
ggScroll to top
GScroll to bottom
nNext sectionnext heading
NPrevious sectionprevious heading

Go to g = go

ghHomego home
gbBloggo blog
grReadingsgo readings
gpTopicsgo topics
geServicesgo services
gaTalksgo talks

Actions

/Searchvim search
yYank URLvim yank
dToggle themedark mode
tToggle TOCtable of contents
iSwitch languagei18n
fFollow linkfollow link
mToggle highlightmark text

General

?Show this help
ShiftHold to show hints
EscClose
:Terminalvim command mode