Herding Robots - Continuous Automation, Drupal 8, Automated Testing, New Features and Happy Clients.

It's been quite some time since I spoke at a conference. It was part personal challenge and part desire to share what we've been working on. It's Drupal 8, Continuous Integration and automated testing that's got me more excited about technology than I've been for what seems like forever. At the end of January 2018, I spoke at Podcamp Halifax. This is a synopsis of my talk. In my talk, I made reference to the new Shoreline Consulting website and branding. In context: Why I felt it was important to drink the kool-aid of Continuous Integration, and build it in to our own practice.

For us, Continuous Integration is a philosophy based on the safe, reliable deployment of new features and bug fixes entered in the project backlog. It's a method to keep websites safe, fresh, up-to-date and evolving in tandem with ever changing needs.

Around the time we'd decided it was time to drastically re-vamp our branding and build a new website using Drupal 8, I was chasing my 2.5 year old around in his Incredible Hulk pull-up diaper, and then it dawned on me. It was time to Bruce Banner myself, and finally build a new website worthy of the kind of client engagement we've been working on with our own clients. There's a few versions of how Bruce Banner became The Incredible Hulk. In the original comic book episode 1, the team is about to test a new Gamma Bomb as Banner notices that someone in a car made their way on to the compound incidentally on a dare. Banner grabs him, and flees to a trench where he saves the man, but puts himself in the direct path of the ray, thus becoming the subject of his own research.

Something incredible emerged. In that case it was the Hulk. In this case, this fantastically beautiful Drupal 8 website built using Continuous Integration and Automated Testing processes. A site we've built as a starting point and will continue adding new
Through this process, something incredible emerged. Let's get started on your project.
Our philosophy of engaging long-term team members with areas of excellence in what the project required was followed. Development, Branding, Website Design and Front End development were all skills that needed to come together. As often happens with smaller shops doing their own projects, this one was built by many of us using both extra time and holiday time which I am forever grateful for. It's allowed Shoreline to begin 2018 with a fresh vibrant look and another reason to connect with community, and clients to share this beautiful project.
Now to dive a little deeper in to the podcamp talk
Quite simply, we've been working too hard for a long time. Often struggling between testing, delivery, quality, timing, budgets and most importantly balancing fitness and home life. In my spare time, I love making delicious food for my wife and toddler. I love riding dirt bikes in the woods, and I love riding mountain bikes. I love field training time with my dog. These things all take time and as a busy principal of two small businesses I needed to be sure I was paving the way to maintain balance in life.

I do not love repetitive things, and have committed much of my career to working with clients to optimize their businesses. It was time to get on board with next generation delivery methods.

Continuous Integration (CI) services have been created in order to solve the problem of developers having to wait for highly orchestrated - and often somewhat manual processes of weekly builds. CI eliminates the old wild-west method of developers using FTP to copy files on actual live websites. Some updates would even require the client to stop entering content for a week while developers integrate a new feature.
Looking at an ideal client workflow, a website is an ongoing project.
Because your website is an important, evolving, ever-changing entity - we're in regular communication about what's happening with your business. We're able to discuss business goals and directly relate them to either a new feature for the website, or new content perhaps. These tasks are easily prioritized in our tracking system. When tasks are complete and have gone through a battery of local automation testing, the new work is then moved in to the secure code repository and then re-tested in multiple ways automatically via Continuous Automation testing, and Behavioural Testing methods.

Once the site is automatically built, we run a battery of customized tests against all of the website's functionality. These tests can be as simple as creating pages with specific titles, or a complex task like having the Robot add an item to an e-commerce shopping cart, and testing the check out process.

Another series of tests run at this time includes Visual Regression testing. In this process, we take a snapshot of the live site and the new build, and compare pixel per pixel differences between the two. The team can quickly hone in on something which may have snuck by. Maybe a font is missing, or a page has changed that shouldn't. This is all flushed out in a visual report via Visual Regression Testing.

Now we've got reports automatically generated the let us know the new features are coded to standard, functionality works, and it's looking good. Once we've had a look through our own final manual tests, we're ready to share the newly tested work with the world. We deploy a very similar automated method that further tests, and integrates all of the new work on the fly with the live website.

What is all this stuff about, and why should your web team be following a similar philosophy? It's about the quality of delivery for new features, and fixes. The process is about confidently keeping client websites fresh in a safe manner. It's a workflow which represents your organization's ever-changing goals online.

When we think of platforms like Facebook and Instagram, they're constantly rolling out new features based on analytics and behavioural data collected. It's these same principles which drive our workflows. This quality of delivery doesn't need to be reserved for big teams or big budgets.

Find out how we can build your next project this way, or even retro-fit your current one. Free up your team. Sleep better, and deliver a better product. 

Always Move Forward.