impact of cd, clean code, ... on team performance
TRANSCRIPT
Trends of 2014:
✔ Clean Code & Soft-ware Craftsmanship
✔ DevOps
✔ Continuous Delivery
✔ Docker & Vagrant
✔ Scaling Agile
✔ Microservices
For each trend:– What is it?– Possible impact?– How to do it?
Big picture
Technical Excellence
Trends of 2014:
✔ Clean Code & Soft-ware Craftsmanship
✔ DevOps
✔ Continuous Delivery
✔ Docker & Vagrant
✔ Scaling Agile
✔ Microservices
✔ Clean Code & Soft-ware Craftsmanship
✔ DevOps
✔ Continuous Delivery
✔ Docker & Vagrant
✔ Scaling Agile
✔ Microservices
The primary recipient of the source code your team(s) write?
What's the main challenge for that source code to be put to effective use?
The primary recipient of the source code your team(s) write?
What's the main challenge for that source code to be put to effective use?
Why?
✔ Lower barrier to entry
✔ Higher quality
✔ Fewer bugs
✔ Less firefighting
✔ Higher throughput
✔ Job satisfaction
Why?
✔ Lower barrier to entry
✔ Higher quality
✔ Fewer bugs
✔ Less firefighting
✔ Higher throughput
✔ Job satisfaction
A fool can write code
that a computer can understand.
Good programmers write code
that humans can understand.
- Martin Fowler
What?
Changing how IT operates, in order to win as a whole!
✔ Systems Thinking, Flow
✔ Feedback
✔ Experimentation &Learning
What?
Changing how IT operates, in order to win as a whole!
✔ Systems Thinking, Flow
✔ Feedback
✔ Experimentation &Learning
How?
✔ Collaboration
✔ Automation
✔ Progressive Deployment
✔ Continuous Testing
✔ Continuous Delivery
✔ Continuous Monitoring
✔ Clean Code & Soft-ware Craftsmanship
✔ DevOps
✔ Continuous Delivery
✔ Docker & Vagrant
✔ Scaling Agile
✔ Microservices
Continuous Delivery isan approach to delivering software that
reduces the cost, time and riskof delivering incremental changes to users.
C. Integration: ability to integrate easily
C. Delivery: release on demand
C. Deployment: release is default
✔ Clean Code & Soft-ware Craftsmanship
✔ DevOps
✔ Continuous Delivery
✔ Docker & Vagrant
✔ Scaling Agile
✔ Microservices
Enables fast,
low-risk deployments
of incremental changes
✔ Clean Code & Soft-ware Craftsmanship
✔ DevOps
✔ Continuous Delivery
✔ Docker & Vagrant
✔ Scaling Agile
✔ Microservices
Hardware Hardware
Host OS Host OS
Hypervisor Docker Engine
Guest OS Guest OS
Bins/Libs Bins/Libs
App A App B
Bins/Libs Bins/Libs
App A App B
Virtualization Containerization
Hardware Hardware
Host OS Host OS
Hypervisor Docker Engine
Guest OS Guest OS
Bins/Libs Bins/Libs
App A App B
Bins/Libs Bins/Libs
App A App B
Hardware Hardware
Host OS Host OS
Hypervisor Docker Engine
Guest OS Guest OS
Bins/Libs Bins/Libs
App A App B
Bins/Libs Bins/Libs
App A App B
Hardware Hardware
Host OS Host OS
Hypervisor
Guest OS Guest OS
Bins/Libs Bins/Libs
App A App B
Bins/Libs Bins/Libs
App A App B
Docker
✔ Isolated deployment unit
✔ Fully (version) controlled environment
✔ Same configuration mechanism
✔ Same tools used by Dev and Ops
Describes how to setup one or more machines.
Base box: UbuntuInstall : Eclipse, Git,
: Java8
ControlledDevelopmentEnvironment!
✔ Clean Code & Soft-ware Craftsmanship
✔ DevOps
✔ Continuous Delivery
✔ Docker & Vagrant
✔ Scaling Agile
✔ Microservices
✔ Clean Code & Soft-ware Craftsmanship
✔ DevOps
✔ Continuous Delivery
✔ Docker & Vagrant
✔ Scaling Agile
✔ Microservices
Microservices
✔ No one clear crisp definition
✔ NOT monolith
✔ Own lifecycle
✔ Manage it's own data
✔ Belongs to one team
Better understand where VALUE lies & what it is,
and when we do,how to realize it
✔ Shorter cycles
✔ Faster learning (dev, ops, biz)
✔ Lower risk, safer development