John Borys Agile Transformation Coach Accenture Digital

Size: px
Start display at page:

Download "John Borys Agile Transformation Coach Accenture Digital"

Transcription

1 What Gives Agile Its Agility? John Borys Agile Transformation Coach Accenture Digital

2 John s Bio Nineteen Years of Software Development Sixteen Years of Enterprise Java Development Eight years of Agile Development (Dev, Scrum Master) Five years as a Technical Lead Three years as an Agile Coach Certified Scrum Master

3 What is Agile Software Development? SAFe? LeSS? Scrum? Lean? XP? Processes or Ceremonies? How is it different than Traditional Waterfall Development?

4 Waterfall Model

5 Agile Model

6 The Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. 6

7 An Analogy:

8 Illinois Construction Plan

9 The Chicago Way

10 Meanwhile in Phoenix, AZ Eastbound Loop 202 (Red Mountain Freeway) closed between Country Club Drive and Val Vista Drive in Mesa from 10 p.m. Friday to 5 p.m. Saturday (April 25) for widening project. DETOUR: Please consider alternate routes, including eastbound US 60. Eastbound Loop 202 traffic exiting at Country Club Drive can detour along McKellips Road. Country Club Drive closed at Loop 202 (Red Mountain Freeway) from 6 p.m. Saturday to noon Sunday (April 26) for bridge work. Both Loop 202 off-ramps at Country Club Drive closed. On-ramps will remain open. DETOUR: Consider alternate routes, including Alma School Road and Gilbert Road.

11 5.7 miles

12 Is it that Simple?? Easy for small companies/start ups. Why? Rock Star dev team

13

14 Is it that Simple?? Easy for small companies/start ups. Why? Rock Star dev team Direct line to decision makers Well versed in Scrum already Technical best practices are enforced as part of the culture Testing is continuous, automated, and comprehensive Test experts live on the dev team so QA is baked in

15 Agile in the Enterprise Work is being requested in components Teams are built along organizational and technical silos Talent is treated as a commodity Value streams cannot be realized without multiple handoffs Dependencies are created as a result of the organization of the workforce Co-location has been discarded in favor of the low cost of offshore labor Little or no Agile Experience at the Development level The People making decisions about agile implementation have no knowledge of agile implementation

16 Is it really about Scaling??

17

18 The State of Agile in the Enterprise

19 The State of Agile in the Enterprise Scrummerfall We re Special It s a big ship, you can t turn it quickly Let s make Agile mainstream. (next Breath) Let s send all our development offshore. Little Test Automation or the wrong kind of automation Let s do Continuous Delivery!

20

21

22 One thing all the frameworks agree on: SCRUM AND XP SHOULD BE USED JOINTLY and form the team-level CORE of scaling sustainably Why is XP in there? Why is it important? Because without sound Technical Practices we get

23 Technical Debt

24 Technical Debt There's a mess I've heard about with quite a few projects recently. It works out like this: They want to use an agile process, and pick Scrum They adopt the Scrum practices, and maybe even the principles After a while progress is slow because the code base is a mess - Martin Fowler, Flaccid Scrum,

25 How DID we get here? If agile is going to survive it has to remember its roots. It was a set of technical practices conjoined with a set of management practices. You could not separate them and yet it was done. - The Land that Scrum Forgot Bob Martin

26 So what are the Technical Practices? Kent Beck Extreme Programming Explained: Embrace Change Test Driven Development: By Example Martin Fowler Refactoring: Improving the Design of Existing Code Planning Extreme Programming Martin, Robert C. Agile Software Development: Principles, Patterns, and Practices Clean Code: A Handbook of Agile Software Craftsmanship

27 Simple Design There are the four simple rules for software design that you always should follow. They are, in order of importance: 1. Tests pass 2. Reveal intent 3. No duplication (DRY) 4. Small (Single Responsibility Principle) Source: Four rules of simple design -

28 Refactor Relentlessly Code refactoring is the process of restructuring existing computer code changing the factoring without changing its external behavior - Wikipedia

29 Test Driven Development

30 Test Driven Development This is a design technique with benefits! Gives you just enough code and helps with YAGNI. Allows team to refactor without fear Provides an automated Regression Test Suite

31 Small iterations Gives you a short feedback loop Minimizes risk Allows for more experimentation Delivers business value more quickly Makes it easier to Inspect and Adapt

32 SOLID Principles S is for Single Responsibility Principle The single responsibility principle (SRP) asserts that a class or module should do one thing only.

33 SOLID Principles O: Open/Closed Principle The Open/Closed Principle states that code entities should be open for extension, but closed for modification.

34 SOLID Principles L: Liskov Substitution Principle any child type of a parent type should be able to stand in for that parent without things blowing up.

35 SOLID Principles I: Interface Segregation Principle The Interface Segregation Principle (ISP) says that you should favor many, smaller, client-specific interfaces over one larger, more monolithic interface.

36 SOLID Principles D: Dependency Inversion Principle Write code that depends upon abstractions rather than upon concrete details. Instead of this: private ArrayList<String> classattendees = new ArrayList<String>(); you would write this: private List<String> classattendees = new ArrayList<String>(); or Better private List classattendees;

37 Agile Metrics If Working software is the primary measure of progress what do all those project management types get to measure in Agile??

38 So what SHOULD we measure? Code Coverage Time it takes to run test suites Size of your Tests Number of time the build fails per Sprint Cyclomatic Complexity Mutants Duplicate Code Class and method size

39 Key Agile Principles Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Continuous attention to technical excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

40 Contact Information Blog:

41 Questions?