Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Lean Software Development, dalla teoria alla pratica

593 vues

Publié le

Eliminare gli sprechi ed arrivare al Single Piece Flow. Come si fa in pratica? Lo vedremo attraverso tre esempi concreti che potrai applicare al tuo team. Ma attento: non è una ricetta facile! Parleremo di come ottimizzare il tempo degli sviluppatori, come applicare il Simple Design per evitare sprechi indotti dai framework, e come applicare il design per ridurre il work-in-progress e incrementare il parallelismo.

Publié dans : Technologie

Lean Software Development, dalla teoria alla pratica

  1. 1. Lean Software Development …in pratica! Matteo Vaccari
  2. 2. Two things that work: 1. Extreme Programming 2. Lean Thinking
  3. 3. Who is this? software developer agile coach extreme programmer TDDer Thoughtworks Italia
  4. 4. What is lean?
  5. 5. CUSTOMERS
  6. 6. Continuous Design Continuous Delivery MVP MVP MVP Ideas CUSTOMERS
  7. 7. 1. Waiting.
  8. 8. Nella manifattura, si ottimizzano le operazioni cicliche E nel software?
  9. 9. From Growing Object-Oriented Software by Nat Pryce and Steve Freeman
  10. 10. Tempi di startup di una web application (Java) • Tomcat: ~30s • Dropwizard: ~3s • Embedded Jetty: <1s
  11. 11. 2. Technology.
  12. 12. Principle #8 – “Use only reliable, thoroughly tested technology that serves your people and process.”
  13. 13. X is awesome! X is crap!
  14. 14. AngularJS is 10 times more expensive than server-side generated html
  15. 15. Do you really think that you will deliver faster with Scala?
  16. 16. 0 10 20 30 40 Potential improvement by using new technologies Potential improvement by
 improving sw design skills
  17. 17. Anybody can learn Scala or AngularJS Very few can deliver quality software on time
  18. 18. public class XServlet extends HttpServlet { // ... @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { WebRequest webRequest = new RealWebRequest(request); RealWebResponse webResponse = new RealWebResponse(response); SqlInterpreter sqlInterpreter = null; try { sqlInterpreter = new SqlInterpreterFactory(environment, webRequest).build(); Request ourRequest = new Request(sqlInterpreter, webRequest, environment); Controller controller = router.getControllerFor(ourRequest); controller.execute(webResponse); sqlInterpreter.commit(); } catch (Exception exception) { rollback(sqlInterpreter); logger.error(this, request, exception); throw new RuntimeException(exception); } finally { close(sqlInterpreter); LocalizedString.preventTomcatComplaining(); } } // ... }
  19. 19. 3. Single-piece flow
  20. 20. Single-piece flow Each operation only builds what the next operation needs
  21. 21. Single-piece flow WIP = 1
  22. 22. James Shore
  23. 23. WIP=1. Come?
  24. 24. Conway’s Law Software structure tends to reflect the structure of the organization
  25. 25. Software designs that enable single-piece flow
  26. 26. So…. what works?
  27. 27. Lean • Start from the customer’s needs • Optimize the flow from end to end • Grow your people • Improve always
  28. 28. Software design • Protect your development loop time • Improve your programming/design skills! • Exploit software design to hack Conway’s Law
  29. 29. matteo.vaccari.name/blog twitter.com/xpmatteo thoughtworks.com THANK YOU

×