A Course About Project Automation

A course about the-code-about-the-code: the automations that make our project chores tractable, reliable, and reproducible. 

Nearly every digital project—whether it’s a computer program to be deployed, a static website to be published, or an ebook to be distributed—requires some kind of automation for its production. In software projects we often focus exclusively on the application code (and perhaps the tests around it), and relegate the automations (build scripts, packaging, deployment, test runners, etc.) to a kind of second-class citizen status. We avoid touching our automations, and when we are forced to update them, we often don’t apply the level of planning and rigor that we bring to app code development.

But without automation, deliverable artifacts would never be compiled, tests would never be run, databases would never be migrated. The devops movement tells us that as developers, we need to be as responsible and diligent about our automations as we are about our application code.

And that’s what this course is about. It is focused on the code-about-the-code: the automations that make our project chores tractable, reliable, and reproducible. While it tracks the development of a very specific and concrete set of automations for publishing an ebook-and-course (itself), it is written with an eye towards drawing out and naming universal principles applicable to all project automations. The intent of this course is to give you a mental framework within which to think clearly and intentionally about your project automations.

This book focuses on the use of the Rake project automation tool-and-language. For reasons I expand on in the course ahead, I think that Rake is uniquely well-positioned as a build tool and task runner. As a lightweight set of extensions to the Ruby programming language, it doesn’t introduce many concepts or syntactical elements on top of “regular old programming”.

But you don’t need to know Ruby in order to work through this course: everything you need to know will be explained along the way. And you don’t need to be using Rake in your own projects in order to benefit from the lessons here. While Rake is the primary language of demonstration, the patterns that emerge transcend programming language ecosystems.

The format of this course is unique, in that it is recursive. I wrote this book-and-course as documentation of itself: most of the topics chronicle steps in the evolution of the automation for this course. After a decade of writing automations to build, transform, and deliver e-books and courses, I’ve realized that these kinds of projects provide fertile soil for experimenting with and thinking about the problems of project automation. So as a bonus, when you’re finished with this course you’ll also have a working understanding of the tools and considerations that go into publishing a technical e-book and/or course such as this one!

Some of the technologies we’ll cover along the way include:

Enjoy!

Not Enrolled

Course Includes

  • 3 Modules
  • 27 Topics