agile engineering: what the heck is that? - 3back › ... › agile-engineering_v2a.pdf · agile...

36
Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick Regueira and Marcelo R. Lopez, Jr. May 28th, 2015 Do not reproduce without permission.

Upload: others

Post on 27-Jun-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

Agile Transformation Summit 2015

Agile Engineering: What the heck is that?

Presenters: Rick Regueira and Marcelo R. Lopez, Jr.

May 28th, 2015

Do not reproduce without permission.

Page 2: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

Who are these guys?

Rick Regueira- [email protected] Co-Founder/South Florida Agile Association

Marcelo Lopez - [email protected] Agile Coach/Trainer

Page 3: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

K.T.S.S.

•  Intro

•  Agile Engineering?

•  Q/A

Page 4: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

Quick Survey

●  How many of us are Developers?

●  Agile Development >1Yr?

●  Agile Engineering?

Page 5: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

Drop in your video here

Page 6: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

●  Definitions?

●  Practices?

●  Ideas?

Agile Engineering

Page 7: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

Waterfall

·  Known  Aliases  o   SDLC  o   BUFR/BUFD  o   V-­‐Model    

Page 8: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

So what does that mean? •  You choose what’s most valuable.

•  Focus on what you chose.

•  Active collaboration wins over “Follow the Plan”.

•  Communicate. Get that feedback.

Modern Agile is drawing

from many disciplines

•  War Theory

•  Science

•  Philosophy

•  Cognitive Science

•  Neuroscience

•  Behavioral Economics

•  Systems Thinking

•  Software Development

Agility: Adapting to reality, versus predicting the future.

Page 9: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

Software Craftsmanship Manifesto

http://manifesto.softwarecraftsmanship.org/

Page 10: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

If it’s so OBVIOUS, why don’t we do it? ...or half-heartedly?

DISCUSS FRANKLY

Page 11: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

•  Collaboration •  Team doesn’t mean coders

•  Delivery means it’s in the customers hands

•  Sustain your teams pace

•  Working Out Loud Circles

Agile Engineering Culture

Page 12: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

Visibility, Visibility, Visibility - If I can’t see it, it doesn’t exist.

Page 13: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

Collaboration, Collaboration, Collaboration If the brains didn’t talk it out, it never happened.

Page 14: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

•  XP - eXtreme Programming (Pairing, White/Black Box Testing)

•  TDD - Test Driven Development •  BDD - Behavior Driven Development •  Static Code Analysis ? •  Code Reviews / Team Inspections ? •  CI/CD - Continuous Integration/Deployment

Agile Engineering Practices

Page 15: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

•  XP - eXtreme Programming (Pairing, White/Black Box Testing)

•  TDD - Test Driven Development •  BDD - Behavior Driven Development •  Static Code Analysis ? •  Code Reviews / Team Inspections ? •  CI/CD - Continuous Integration/Deployment

Agile Engineering Practices

Page 16: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

eXtreme Programming

DISCUSS FRANKLY

Extreme Pain? Paired Suffering? Test until it hurts?

Designs, and Patterns and Principles?

Page 17: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

•  XP - eXtreme Programming (Pairing, White/Black Box Testing)

•  TDD - Test Driven Development •  BDD - Behavior Driven Development •  Static Code Analysis ? •  Code Reviews / Team Inspections ? •  CI/CD - Continuous Integration/Deployment

Agile Engineering Practices

Page 18: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

The 800Lb “Legacy” in the room

What is Legacy Code?

�  “Legacy code as code without tests, which reflects the perspective of legacy code being difficult to work with in part due to a lack of automated regression tests.” – Michael Feathers

Page 19: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

Test “Driven” Development

“Code  just  enough  to  make  it  pass”    

Code  Coverage  Tests.        

User-­‐Acceptance  TesHng.    

Automate,  Automate,  Automate.    

Page 20: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

eXtreme Programming

“Refactoring *is* design *is* maintainability.

Maintainability *provides* productivity.

Don't cut productivity in favor of "productivity"!

– Rob Myers, @agilecoach

Page 21: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

TDD - Why does it matter?

Where defect was introduced

Time to correct Time Factor

Requirements Negligible

Design 5 minutes 1x

Implementation 15 minutes 3x(Design)

Integration Testing 35 minutes 7x(Design) 2.3x (Implementation)

System Test 70 minutes 14x (Design) 7.25x (Implementation) 2x (Integration)

Customer Found it! 1405 hours >16000x (Design)

Source: Software Engineering Institute/Xerox - 1999

Why do I care about catching defects early?

Page 22: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

Test “Driven” Development - Thoughts...

“Tests  should  be  designed  with  great  care.  Business  people,    rather  than  programmers,  should  design  most  funcHonal    tests.  Unit  tests  should  be  limited  to    those  that  can  be  held  up  against  some  “third-­‐party”  success  criteria.”  -­‐  James  Coplien  

Page 23: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

•  XP - eXtreme Programming (Pairing, White/Black Box Testing)

•  TDD - Test Driven Development •  BDD - Behavior Driven Development •  Static Code Analysis ? •  Code Reviews / Team Inspections ? •  CI/CD - Continuous Integration/Deployment

Agile Engineering Practices

Page 24: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

Behavior Driven Development (Executable Specifications)

As A... I want... So that I can...

Given... When…[And] Then…[And]

Page 25: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

Behavior Driven Development (Executable Specifications)

User Story format: As a Shopper I want to put items in my cart So I can manage my purchase

Scenario: User adds items to cart Given I'm a logged-in User When I go to the Item page And I click "Add item to cart" Then the quantity of items in my cart should increase And my subtotal should increase And the warehouse inventory should decrease

Page 26: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

Behavior Driven Development (Executable Specifications)

So where do Executable Specifications come into play?

Stories

Acceptance Criteria

Specification by examples

Code

Page 27: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

•  XP - eXtreme Programming (Pairing, White/Black Box Testing)

•  TDD - Test Driven Development •  BDD - Behavior Driven Development •  Static Code Analysis ? •  Code Reviews / Team Inspections ? •  CI/CD - Continuous Integration/Deployment

Agile Engineering Practices

Page 28: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

Engineering Quality Code

Know your tools

●  Static Analysis ○  Cyclomatic Complexity ○  Memory Integrity ○  Cohesion & Coupling

Visual Studio

Klocwork Insight

Coverity Advisor

Page 29: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

Quality Code Engineering

●  Who’s looked at your code lately?

○  Code Reviews ○  Team Inspections

●  Is your code all that’s reviewed?

Page 30: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

•  XP - eXtreme Programming (Pairing, White/Black Box Testing)

•  TDD - Test Driven Development •  BDD - Behavior Driven Development •  Static Code Analysis ? •  Code Reviews / Team Inspections ? •  CI/CD - Continuous Integration/Deployment

Agile Engineering Practices

Page 31: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

Continuous Integration

When do I integrate?

What do I integrate?

How do I integrate?

Meet your tools – Jenkins, MSBuild, Buildbot

Page 32: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

Continuous Deployment

When do I deploy?

What do I deploy?

How do I deploy?

Meet your tools – Chef, Puppet, Werker

Page 33: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

Jumpstarting Agile Engineering

Certified Scrum Developer® =

Scrum Framework Training &

Agile Engineering Skills Training

●  TDD ●  Pairing ●  Continuous Integration/Delivery ●  Software Craftsmanship

Page 34: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

Tie it up in a ribbon

�  Agile Engineering is about…Well Formed Teams® �  Professional accountability to each other.

�  Standard of Care – i.e. QUALITY �  Swarming around your work to get to done.

�  And of course, Technical Aptitude.

�  Read more at:

http://goo.gl/RhnsBh

Page 35: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

Respect the rights

Copyrights © & Registered Trademarks ®

�  3Back LLC, (http:/www.3back.com) �  IPC Subway, (http://www.ipcoop.com) �  Michael Feathers, @michaelfeathers �  Rob Myers, @agilecoach �  James Coplien, @jcoplien �  Software Craftsmanship Manifesto

(softwarecraftsmanship.org) �  Dr. Winston W. Royce �  Scrum Alliance, scrumalliance.com

Page 36: Agile Engineering: What the heck is that? - 3Back › ... › Agile-Engineering_V2a.pdf · Agile Transformation Summit 2015 Agile Engineering: What the heck is that? Presenters: Rick

Session Retrospective

Don’t forget join the South Florida Agile Association on Meetup.com! (Look for the sign-up sheet)

What did we do well? What could we have done better?