Did You Push Software Updates into Production Yesterday?

Zhimin Zhan
Jan 28 · 3 min read

Extreme Programming Explained (by Kent Beck, the father of Agile) is my first and favourite Agile book. I still remembered reading its first edition at the UQ library 21 years ago. Then I naively suggested this new way of software development to the project. The project manager disliked the idea, in particular, the Extreme Programming (XP) name. He might be right about the name part though, Agile is easier to accept.

I bought the 2nd edition one the first day it was out (reserved a copy at McGills Tech Book Store, which no longer exists,). I read it many times, it is so good, still get more insights after so many years. It is a pity that while virtually all projects claim to be “Agile”, most of them do fakely.

“Daily Deployment (to production)” is an XP practice. I know some fake agile coaches will argue that XP Agile. I think if they understood the history of Agile and the work that Kent Beck did, they probably wouldn’t say that. Anyway, putting the arguments aside, “Daily Deployment” surely a good thing. This would make Agile more real than “dragging user stories in JIRA” or “writing some notes on retrospective sessions then forget all about them”.

First of all, “Daily Deployment (to production)” is feasible, and it is more natural than most think. I wouldn’t repeat what Kent wrote in his book. I will just share my experiences.

For all of my web apps: ClinicWise, SiteWise and WhenWise. If there are any changes to the code base, I will deploy to production that day on a condition: passing automated regression testing in the Continuous Testing server.

A recent regression testing (492 Selenium tests) report for WhenWise on BuildWise CT server

People are puzzled about “Daily deployment to production” is because test automation (end-2-end in particular) and Continuous Testing are not a part of their daily working life. The top engineers, such as Kent, take quality for granted.

Still not a believer? check out this article by Wired: The Software Revolution Behind LinkedIn’s Gushing Profits.

“It was Scott and his team of programmers who completely overhauled how LinkedIn develops and ships new updates to its website and apps, taking a system that required a full month to release new features and turning it into one that pushes out updates multiple times per day”.

“Newly-added code is subjected to an elaborate series of automated tests designed to weed out any bugs. Once the code passes the tests it is merged into trunk and cataloged in a system that shows managers what features are ready to go live on the site or in new versions of LinkedIn’s apps.”

It was quite clear: LinkedIn totally changed its development process: continuously testing the apps with automated tests to enable release to production multiple times a day. The detail was not covered in this article, you will find this presentation “Continuous Integration at Facebook” helpful. Also, you might have heard of “Facebook updates its code twice every day”.

Here I want to point out: to have the confidence to release daily to production, you must have a comprehensive automated end-to-end regression suite, as stated in the “How Google Tests Software” book.

“For all of our end-to-end tests at Facebook we use WebDriver”
— in “Continuous Integration at Facebook” presentation by Katie Coons

Want to do real Agile? Start learning end-to-end test automation today. I recommend Selenium WebDriver, which Google and Facebook use. Selenium WebDriver the most flexible and easiest to learn web test automation framework, and a W3C standard, period. Then set up a Continuous Testing process to run all the Selenium tests daily, gradually move up in AgileWay Continuous Testing Grading.

Nerd For Tech

From Confusion to Clarification

Zhimin Zhan

Written by

Award-winning software developer, test automation & CT coach, author, and speaker. Help teams succeed with Agile/DevOps by implementing real Continuous Testing.

Nerd For Tech

An Educational Media House

Zhimin Zhan

Written by

Award-winning software developer, test automation & CT coach, author, and speaker. Help teams succeed with Agile/DevOps by implementing real Continuous Testing.

Nerd For Tech

An Educational Media House

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store