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

Post on 27-Jun-2020

13 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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.

Who are these guys?

Rick Regueira- rregueira@ipcoop.com Co-Founder/South Florida Agile Association

Marcelo Lopez - marcelo.lopezjr@3back.com Agile Coach/Trainer

K.T.S.S.

•  Intro

•  Agile Engineering?

•  Q/A

Quick Survey

●  How many of us are Developers?

●  Agile Development >1Yr?

●  Agile Engineering?

Drop in your video here

●  Definitions?

●  Practices?

●  Ideas?

Agile Engineering

Waterfall

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

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.

Software Craftsmanship Manifesto

http://manifesto.softwarecraftsmanship.org/

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

DISCUSS FRANKLY

•  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

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

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

•  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

•  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

eXtreme Programming

DISCUSS FRANKLY

Extreme Pain? Paired Suffering? Test until it hurts?

Designs, and Patterns and Principles?

•  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

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

Test “Driven” Development

“Code  just  enough  to  make  it  pass”    

Code  Coverage  Tests.        

User-­‐Acceptance  TesHng.    

Automate,  Automate,  Automate.    

eXtreme Programming

“Refactoring *is* design *is* maintainability.

Maintainability *provides* productivity.

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

– Rob Myers, @agilecoach

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?

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  

•  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

Behavior Driven Development (Executable Specifications)

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

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

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

Behavior Driven Development (Executable Specifications)

So where do Executable Specifications come into play?

Stories

Acceptance Criteria

Specification by examples

Code

•  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

Engineering Quality Code

Know your tools

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

Visual Studio

Klocwork Insight

Coverity Advisor

Quality Code Engineering

●  Who’s looked at your code lately?

○  Code Reviews ○  Team Inspections

●  Is your code all that’s reviewed?

•  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

Continuous Integration

When do I integrate?

What do I integrate?

How do I integrate?

Meet your tools – Jenkins, MSBuild, Buildbot

Continuous Deployment

When do I deploy?

What do I deploy?

How do I deploy?

Meet your tools – Chef, Puppet, Werker

Jumpstarting Agile Engineering

Certified Scrum Developer® =

Scrum Framework Training &

Agile Engineering Skills Training

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

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

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

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?

top related