Chapter 19Engineering practices for speed and high-quality code

Engineers turn dreams into reality.

—Hayao Miyazaki

It used to be that releasing new software was like releasing a major new car model: years of design, engineering, and rigorous testing, often followed by a big marketing event and a launch party. But better methods and tools have come to the fore – including the increasing advantages of open source software – allowing development teams to progress through the different phases of their software development and release new features quickly and iteratively. This has changed the game – every company now needs to become a software company.1 At the heart of this revolution is the automation of the software development lifecycle (SDLC), the focus of this chapter (see Exhibit 19.1).

Schematic illustration of Software development life cycle.

EXHIBIT 19.1

Automation of the SDLC allows agile teams to make small changes, validate quickly (through rapid feedback mechanisms), test frequently, and iterate continually – a stark contrast to the pervasive approach where teams make large changes in batches during release windows, then release to production. Due to the size of those changes, and the number of things that are changed, any number of issues could possibly arise and slow the agile pod's ability to iterate quickly.

Netflix created a cloud-based IT architecture that allows its developers to launch hundreds of software ...

Get Rewired now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.