Repeatable, Rapid Delivery

How we ensure consistent, rapid delivery

Automation is the key to rapid and repeatable software delivery.  Do the work once, let the computer to the work the next thousand times.

Automated Build

Building software is always hands-free, automated and repeatable, ensuring we always have a testable version.

Automated Test

Every change we make is tested automatically.  Every change is rejected if it doesn’t meet the quality bar.  Build quality in from the start.

Automated Release

Make sure we can release changes continuously and repeatably through automated pipelines.  

It’s not just a passion for technology, it’s a passion to use technology to change the world for the better

The 10 Principles of DevOps

At 345 DevOps isn’t a buzzword or an initiative, it’s a core part of the way we do things.  So much so that we created a set of principles that we’ve included into the 345 Method.

#1: Everything is Automated

As you can see fro the top of the page, automation is key.  Automation brings repeatability, and repeatability is key to ensuring quality as it forms the basis for continuous improvement.

#2: Single Source of Truth

There is only ever one master source of truth.  For software this is your source repositories.  Keep the team focused on one place.

#3: Protect Sensitive Data

Make sure that sensitive information such as passwords, private keys and security details are handled appropriately.

#4: Infrastructure as Code

All infrastructure is defined as code and can be created / torn down / regenerated by running that code.

#5: Immutable Infrastructure

Infrastructure is never modified once created.  When a change is made it is always torn down and rebuilt.

#6: Immutable Application

Applications are never changed.  When an application is changed it is rebuilt, repackaged and redeployed from scratch.

#7: Each Environment Separate

Store the information for each infrastructure environment separately, ideally in its own repository.  Avoid the confusion of merging this together.

#8: Each App or Service Separate

Store the code for each application, API or service separately in its own repository.  

#9: Configure Each Environment

Each environment should be configured separately.  

#10: Maintain Backwards Compatibility

When you change an API or application, make sure it works with older clients to prevent having to change everything at once.