liveBook · Manning

Automation

As explained in Shipping Go: Develop, deliver, discuss, design, and go again

An automated process is a software or operational procedure executed by systems with limited or no manual intervention.

If every developer installs tools by hand and every release needs someone to repeat the same steps, less time remains for features. Automation moves repeatable work into scripts, tools, and pipelines while developers retain responsibility for design, code, and results. section 1.2.2 section 2.2

Start with work the team already repeats:

  • Document repository setup, then provide a command that performs it consistently for new contributors. section 2.2
  • Use a formatter for code style, a generator for routine feature creation, and a pipeline for delivery work. section 1.2.2
  • Have a code check-in trigger quality and compilation checks. Report failures so a developer can fix them; after successful delivery, use customer feedback to guide the next change. section 1.2.1 section 1.1

A repeatable first step

A Go repository can offer `sudo make setup` in its README instead of asking each contributor to reconstruct installation instructions. Its Makefile groups Go installation and PATH initialization under one target. A TODO records that macOS support is still missing rather than pretending the setup works everywhere. section 2.2

Listing 2.2 Makefile
GO_VERSION :=1.18
 
.PHONY: install-go init-go                                         #1
 
setup: install-go init-go                                          #2
 
 
#TODO add MacOS support
install-go:                                                        #3
  wget "https://golang.org/dl/go$(GO_VERSION).linux-amd64.tar.gz"
  sudo tar -C /usr/local -xzf go$(GO_VERSION).linux-amd64.tar.gz
  rm go$(GO_VERSION).linux-amd64.tar.gz
 
init-go:                                                           #4
  echo 'export PATH=$$PATH:/usr/local/go/bin' >> $${HOME}/.bashrc
  echo 'export PATH=$$PATH:$${HOME}/go/bin' >> $${HOME}/.bashrc

The Makefile shows the `setup` target, its installation steps, and the explicit platform limitation. section 2.2

Treat automation as a process the team improves, not a black box. A useful first script can be incomplete; document its limits, then extend it as recurring friction becomes clear. The goal is a shorter path from a small change to verified delivery and the next round of feedback. section 1.2.2 section 1.1

How Shipping Go: Develop, deliver, discuss, design, and go again covers it

How deep it goes
Illustrates repeatable setup and check-in-triggered feedback, but stops short of prescribing detailed pipeline configuration.
Examples
Uses a Go Makefile and README setup commands alongside pipeline feedback for compilation or quality failures.
What it assumes
Assumes developers write and commit code while showing how to document and standardize initial project setup.
What you can do after
Practice/perform it by scripting repeatable setup and using code-triggered checks to identify problems before delivery.
How it connects
Connects continuous integration, standardization, documentation, quality checks, deployment, and customer feedback.

Also explained in

Compare how 19 books explain automation →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Shipping Go: Develop, deliver, discuss, design, and go again. The section links point to the parts of the book it draws on.