Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Automate, Automate, AUTOMATE!

Automate, Automate, AUTOMATE!

Since the advent of cloud computing, the economics of software development have fundamentally shifted. Today, for many projects of all sizes, the single biggest cost is the time it takes to create and ship new products and new features. The quicker we can ship, the more productive we can be - and automation can help you with that.

In this talk, Stuart will walk through a complete software development workflow. At each step of the way, he'll look at what can be automated, what the options are, and what the trade-offs are. There'll be a few war stories sprinkled in from nearly a quarter of a century of software development. Finally, we'll discuss your own experiences with automation, and see just how much further you want to take automation in your own organisations.

Presented at @sheffieldphp, 19th July 2018.

Stuart Herbert

July 19, 2018
Tweet

More Decks by Stuart Herbert

Other Decks in Programming

Transcript

  1. Industry veteran: architect, engineer, leader, manager, mentor F/OSS contributor since

    1994 Talking and writing about PHP since 2004 Chief Software Archaeologist Building Quality @GanbaroDigital About Stuart
  2. @GanbaroDigital ?? ?? If we have a CI server, what

    kinds of checks can we automate?
  3. @GanbaroDigital Thanks to Docker, we can run them all in

    an isolated environment locally whenever we want.
  4. @GanbaroDigital Make sure each developer can run all the integration

    checks on their dev machine ... ... and that they do so.
  5. @GanbaroDigital “ Testing is the act of proving that your

    code actually does what you think it does.
  6. @GanbaroDigital Automated Testing 1. Unit tests 2. Integration tests 3.

    Functional tests 4. Non-functional tests 5. Acceptance tests
  7. @GanbaroDigital Automated Testing 1. Unit tests 2. Integration tests 3.

    Functional tests 4. Non-functional tests 5. Acceptance tests
  8. @GanbaroDigital The Testing Fell Short 1. Over-reliance on unit tests

    w/ mocks 2. Manual functional testing 3. No representative environment to test within
  9. @GanbaroDigital GitOps is normally* backed by a CI/CD box and

    orchestration tools. Can you use those to deploy locally too?