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.

You Can't be Agile When you are Knee Deep in Mud

14,234 views

Published on

To be effective with agile software development, you need to have solid technical practices. But many organisations are still only implementing process changes to their software delivery cycles. Rachel Laycock will explain why you need technical practices like testing, refactoring, continuous delivery and evolutionary architecture. She will cover a brief history of these practices and explain how without them you will end up with "ball of mud architectures" that slow you down no matter what process changes you make.

Published in: Software, Technology
  • Nice !! Download 100 % Free Ebooks, PPts, Study Notes, Novels, etc @ https://www.ThesisScientist.com
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

You Can't be Agile When you are Knee Deep in Mud

  1. @ r a c h e l l a y c o c k YOU CAN’T BEAGILE When you are knee deep in mud
  2. 2
  3. I WANT CONTINUOUS DELIVERY 3 Architecture Quality Assurance Continuous Integration Configuration Management Data Management Environments & Deployment
  4. WHERE ARE WE? 4
  5. AGILE THE ADJECTIVE 5
  6. FLUENCY MODEL 6
  7. IT’S THE 90S 7
  8. SCRUM 8http://upload.wikimedia.org/wikipedia/commons/thumb/5/58/Scrum_process.svg/2000px-Scrum_process.svg.png
  9. XP 9 http://ronjeffries.com/xprog/what-is-extreme-programming/circles.jpg
  10. TDD? 10 http://luizricardo.org/wordpress/wp-content/upload-files/2014/05/tdd_flow.gif
  11. SELF TESTING CODE 11http://www.focus-itoutsourcing.com/wp-content/uploads/2013/10/Software-testing-trends-2013.jpg
  12. TESTING CUPCAKE 12
  13. REFACTORING 13 Refactoring is a controlled technique for improving the design of an existing code base. http://martinfowler.com/books/refactoring.html
  14. CONTINUOUS INTEGRATION 14 http://ronjeffries.com/xprog/what-is-extreme-programming/circles.jpg
  15. CONTINUOUS INTEGRATION 15 Everyone Commits To the Mainline Every Day Mainline Server Develop Build Build pull Local Workstation Build push ✔ Done!
  16. WATER - SCRUM - FALL 16
  17. CONTINUOUS DELIVERY 17 Software always production ready Releases tied to business needs, not operational constraints Customer Delivery team Constant flow of new features into production
  18. MORE THAN JUST DEVOPS 18 Organisational Alignment Release Management Architecture Quality Assurance Continuous Integration Configuration Management Data Management Environments & Deployment
  19. BALLS OF MUD 19
  20. Reckless Prudent Deliberate Inadvertent “We don’t have time for design” “What’s Layering?” “We must ship now and deal with consequences”
  21. Good Design No Design Design Payoff Line Cumulative Functionality time
  22. “We don’t have time for design” “What’s Layering?” “We must ship now and deal with consequences” “Now we know how we should have done it” Reckless Prudent Deliberate Inadvertent
  23. QUALITY ISSUES (TECHNICAL) 23 Code quality Design quality Automated testing Technical debt reduction …is what your business partners hear! BLAH BLAH BLAH
  24. HISTORICAL DILEMMA 24 Business Outcome FEATURES QUALITY Technical Outcome
  25. WHAT IF? 25 Business Outcome FEATURES ? Business Outcome
  26. WHAT IF? 26 Business Outcome FEATURES Business Outcome CYCLE TIME
  27. CAN’T JUST LIFT AND SHIFT 27
  28. REPLACING THE MONOLITH 28
  29. MICROSERVICES 29 A monolithic application puts all its functionality into a single process… … and scales by replicating the monolith on multiple servers A microservices architecture puts each element of functionality into a separate service… … and scales by distributing these services across servers, replicating as needed.
  30. REFACTORING 30
  31. COMPONENTS 31 Component Library Service Libraries and Services are two forms of component Components are units of software that can be independently replaced and upgraded Libraries run within a single process, communicating through language function call mechanisms Services run in separate processes, communicating with networking mechanisms such as HTTP or TCP/IP
  32. COUPLING AND COHESION 32 code artifact afferent efferent
  33. FROM PROJECTS 33 BUSINESS PROJECTS OPERATIONS Many ‘good’ ideas - WE NEED $$$! We’re working - GIVE US $$$! That doesn’t work - NEED MORE $$$! Humble, Molesky, O’Reilly, Lean Enterprise: How High Performance Organizations Innovate At Scale
  34. TO PRODUCTS 34 PRODUCTS / SERVICES OPERATIONS Customers Service DeskOps Management Cross-Functional
 Product Teams Teams Push
 Changes Continuously Product Teams for IaaS / PaaS Infrastructure / 
 Platform-As-A-Service Humble, Molesky, O’Reilly, Lean Enterprise: How High Performance Organizations Innovate At Scale
  35. YOU NEED TO BE THIS TALL TO BE AGILE 35
  36. @rachellaycock THANK YOU

×