Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Fredrik Wendt
fredrik@growing-agility.com
@wendtse
Team Performance
The Impact of Clean Code & CD
What do you see is trending?
What does your dev team(s) talk about?
#TechnicalExcellence
Trends of 2014:
✔ Clean Code & Soft-
ware Craftsmanship
✔ DevOps
✔ Continuous Delivery
✔ Docker & Vagrant
✔ Scaling Agile
...
For each trend:
– What is it?
– Possible impact?
– How to do it?
Big picture
Technical Excellence
Trends of 2014:
✔ Clean ...
✔ 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 e...
The primary recipient of the
source code your team(s) write?
What's the main challenge
for that source code to
be put to e...
Why?
✔ Lower barrier to entry
✔ Higher quality
✔ Fewer bugs
✔ Less firefighting
✔ Higher throughput
✔ Job satisfaction
90%!
Write to read
Computers scale easily
Humans don't scale
Computers scale easily
Humans don't scale
Humans are expensive
Computers aren't
Why?
✔ Lower barrier to entry
✔ Higher quality
✔ Fewer bugs
✔ Less firefighting
✔ Higher throughput
✔ Job satisfaction
How?
✔ Pair programming
✔ Code reviews
✔ Book circles
✔ Online courses
✔ Coding dojos
Tools
A fool can write code
that a computer can understand.
Good programmers write code
that humans can understand.
- Martin Fow...
DevOps
more features
faster, sooner
stable systems
24/7 availability
What?
Changing how IT operates,
in order to
win as a whole!
✔ Systems Thinking, Flow
✔ Feedback
✔ Experimentation &
Learni...
What?
Changing how IT operates,
in order to
win as a whole!
✔ Systems Thinking, Flow
✔ Feedback
✔ Experimentation &
Learni...
How?
✔ Collaboration
✔ Automation
✔ Progressive Deployment
✔ Continuous Testing
✔ Continuous Delivery
✔ Continuous Monitor...
✔ Clean Code & Soft-
ware Craftsmanship
✔ DevOps
✔ Continuous Delivery
✔ Docker & Vagrant
✔ Scaling Agile
✔ Microservices
Continuous Delivery is
an approach to delivering software that
reduces the cost, time and risk
of delivering incremental c...
C. Integration
C. Delivery
C. Deployment
C. Integration: ability to integrate easily
C. Delivery: release on demand
C. Deployment: release is default
C. Integration: build?
C. Delivery: deploy, upgrade?
C. Deployment: incremental change?
C. Integration: build?
C. Delivery: deploy, upgrade?
C. Deployment: feature! A/B
How?
✔ Version Control Everything
✔ Automate just about Everything
✔ Pipeline – Value Stream Map
✔ 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
Hardware Hardware
Host OS Host OS
Hypervisor Docker Engine
Guest OS Guest OS
Bins/Libs Bins/Libs
App A App B
Bins/Libs Bin...
Hardware Hardware
Host OS Host OS
Hypervisor Docker Engine
Guest OS Guest OS
Bins/Libs Bins/Libs
App A App B
Bins/Libs Bin...
Hardware Hardware
Host OS Host OS
Hypervisor Docker Engine
Guest OS Guest OS
Bins/Libs Bins/Libs
App A App B
Bins/Libs Bin...
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 A...
Bins/Libs
App A
Bins/Libs
App A
Bins/Libs
App A
Bins/Libs
App A
ProdStageCIDevel »»»
Docker
✔ Isolated deployment unit
✔ Fully (version) controlled
environment
✔ Same configuration
mechanism
✔ Same tools use...
Docker
✔ Microservices
✔ Orchestration circus
✔ May add complexity to
development work
Describes how to setup
one or more machines.
Base box: Ubuntu
Install : Eclipse, Git,
: Java8
Controlled
Development
Envir...
✔ Clean Code & Soft-
ware Craftsmanship
✔ DevOps
✔ Continuous Delivery
✔ Docker & Vagrant
✔ Scaling Agile
✔ Microservices
Lots of people
working on
one product
Non-trivial:
✔ Integration
✔ Dependencies
✔ Synchronization
✔ Orchestration
Slicing and dicing?
✔ 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
✔ Team performance – ability to deliver value in a
period of time, with sustainable pace
Better understand
where VALUE lies & what it is,
and when we do,
how to realize it
✔ Shorter cycles
✔ Faster learning (dev...
Better understand
what VALUE is & where it lies,
and when we do,
how to quickly realize it
✔ Shorter cycles
✔ Faster learn...
Impact of CD, Clean Code, ... on Team Performance
Impact of CD, Clean Code, ... on Team Performance
Impact of CD, Clean Code, ... on Team Performance
Impact of CD, Clean Code, ... on Team Performance
Impact of CD, Clean Code, ... on Team Performance
Impact of CD, Clean Code, ... on Team Performance
Impact of CD, Clean Code, ... on Team Performance
Impact of CD, Clean Code, ... on Team Performance
Impact of CD, Clean Code, ... on Team Performance
Impact of CD, Clean Code, ... on Team Performance
Impact of CD, Clean Code, ... on Team Performance
Impact of CD, Clean Code, ... on Team Performance
Impact of CD, Clean Code, ... on Team Performance
Impact of CD, Clean Code, ... on Team Performance
Impact of CD, Clean Code, ... on Team Performance
Impact of CD, Clean Code, ... on Team Performance
Impact of CD, Clean Code, ... on Team Performance
Impact of CD, Clean Code, ... on Team Performance
Impact of CD, Clean Code, ... on Team Performance
Upcoming SlideShare
Loading in …5
×

Impact of CD, Clean Code, ... on Team Performance

875 views

Published on

Why is DevOps, Continuous Delivery, Docker, Clean Code, Vagrant, Software Craftsmanship and agile trending? How do these topics and techniques reflect on team performance?

Published in: Software
  • Be the first to comment

Impact of CD, Clean Code, ... on Team Performance

  1. 1. Fredrik Wendt fredrik@growing-agility.com @wendtse Team Performance The Impact of Clean Code & CD
  2. 2. What do you see is trending? What does your dev team(s) talk about? #TechnicalExcellence
  3. 3. Trends of 2014: ✔ Clean Code & Soft- ware Craftsmanship ✔ DevOps ✔ Continuous Delivery ✔ Docker & Vagrant ✔ Scaling Agile ✔ Microservices
  4. 4. 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
  5. 5. ✔ Clean Code & Soft- ware Craftsmanship ✔ DevOps ✔ Continuous Delivery ✔ Docker & Vagrant ✔ Scaling Agile ✔ Microservices
  6. 6. 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?
  7. 7. 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?
  8. 8. Why? ✔ Lower barrier to entry ✔ Higher quality ✔ Fewer bugs ✔ Less firefighting ✔ Higher throughput ✔ Job satisfaction
  9. 9. 90%! Write to read
  10. 10. Computers scale easily Humans don't scale
  11. 11. Computers scale easily Humans don't scale Humans are expensive Computers aren't
  12. 12. Why? ✔ Lower barrier to entry ✔ Higher quality ✔ Fewer bugs ✔ Less firefighting ✔ Higher throughput ✔ Job satisfaction
  13. 13. How? ✔ Pair programming ✔ Code reviews ✔ Book circles ✔ Online courses ✔ Coding dojos Tools
  14. 14. A fool can write code that a computer can understand. Good programmers write code that humans can understand. - Martin Fowler
  15. 15. DevOps
  16. 16. more features faster, sooner stable systems 24/7 availability
  17. 17. What? Changing how IT operates, in order to win as a whole! ✔ Systems Thinking, Flow ✔ Feedback ✔ Experimentation & Learning
  18. 18. What? Changing how IT operates, in order to win as a whole! ✔ Systems Thinking, Flow ✔ Feedback ✔ Experimentation & Learning
  19. 19. How? ✔ Collaboration ✔ Automation ✔ Progressive Deployment ✔ Continuous Testing ✔ Continuous Delivery ✔ Continuous Monitoring
  20. 20. ✔ Clean Code & Soft- ware Craftsmanship ✔ DevOps ✔ Continuous Delivery ✔ Docker & Vagrant ✔ Scaling Agile ✔ Microservices
  21. 21. Continuous Delivery is an approach to delivering software that reduces the cost, time and risk of delivering incremental changes to users.
  22. 22. C. Integration C. Delivery C. Deployment
  23. 23. C. Integration: ability to integrate easily C. Delivery: release on demand C. Deployment: release is default
  24. 24. C. Integration: build? C. Delivery: deploy, upgrade? C. Deployment: incremental change?
  25. 25. C. Integration: build? C. Delivery: deploy, upgrade? C. Deployment: feature! A/B
  26. 26. How? ✔ Version Control Everything ✔ Automate just about Everything ✔ Pipeline – Value Stream Map
  27. 27. ✔ Clean Code & Soft- ware Craftsmanship ✔ DevOps ✔ Continuous Delivery ✔ Docker & Vagrant ✔ Scaling Agile ✔ Microservices Enables fast, low-risk deployments of incremental changes
  28. 28. ✔ Clean Code & Soft- ware Craftsmanship ✔ DevOps ✔ Continuous Delivery ✔ Docker & Vagrant ✔ Scaling Agile ✔ Microservices
  29. 29. 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
  30. 30. 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
  31. 31. 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
  32. 32. 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
  33. 33. Bins/Libs App A Bins/Libs App A Bins/Libs App A Bins/Libs App A ProdStageCIDevel »»»
  34. 34. Docker ✔ Isolated deployment unit ✔ Fully (version) controlled environment ✔ Same configuration mechanism ✔ Same tools used by Dev and Ops
  35. 35. Docker ✔ Microservices ✔ Orchestration circus ✔ May add complexity to development work
  36. 36. Describes how to setup one or more machines. Base box: Ubuntu Install : Eclipse, Git, : Java8 Controlled Development Environment!
  37. 37. ✔ Clean Code & Soft- ware Craftsmanship ✔ DevOps ✔ Continuous Delivery ✔ Docker & Vagrant ✔ Scaling Agile ✔ Microservices
  38. 38. Lots of people working on one product
  39. 39. Non-trivial: ✔ Integration ✔ Dependencies ✔ Synchronization ✔ Orchestration Slicing and dicing?
  40. 40. ✔ Clean Code & Soft- ware Craftsmanship ✔ DevOps ✔ Continuous Delivery ✔ Docker & Vagrant ✔ Scaling Agile ✔ Microservices
  41. 41. Microservices ✔ No one clear crisp definition ✔ NOT monolith ✔ Own lifecycle ✔ Manage it's own data ✔ Belongs to one team
  42. 42. ✔ Team performance – ability to deliver value in a period of time, with sustainable pace
  43. 43. 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
  44. 44. Better understand what VALUE is & where it lies, and when we do, how to quickly realize it ✔ Shorter cycles ✔ Faster learning (dev, ops, biz) ✔ Lower risk, safer development

×