lean software development, dalla teoria alla pratica
TRANSCRIPT
Lean Software Development…in pratica!
Matteo Vaccari
Two things that work:
1. Extreme Programming
2. Lean Thinking
Who is this?software developer
agile coach extreme programmer
TDDer
Thoughtworks Italia
What is lean?
CUSTOMERS
Continuous Design Continuous Delivery
MVP
MVP
MVP
Ideas
CUSTOMERS
1. Waiting.
Nella manifattura, si ottimizzano le operazioni cicliche
E nel software?
From Growing Object-Oriented Software by Nat Pryce and Steve Freeman
Tempi di startup di una web application (Java)
• Tomcat: ~30s
• Dropwizard: ~3s
• Embedded Jetty: <1s
2. Technology.
Principle #8 – “Use only reliable, thoroughly tested technology that serves your people and process.”
X is awesome! X is crap!
AngularJS is 10 times more expensive than
server-side generated html
Do you really think that you will deliver faster with
Scala?
0
10
20
30
40
Potential improvement by using new technologies
Potential improvement byimproving sw design skills
Anybody can learn Scala or AngularJS
Very few can deliver quality software on time
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(); } }
// ...}
3. Single-piece flow
Single-piece flow
Each operation only builds what the next operation needs
Single-piece flow
WIP = 1
James Shore
WIP=1. Come?
Conway’s Law
Software structure tends to reflect the structure of the organization
Software designs that enable single-piece flow
So…. what works?
Lean
• Start from the customer’s needs
• Optimize the flow from end to end
• Grow your people
• Improve always
Software design
• Protect your development loop time
• Improve your programming/design skills!
• Exploit software design to hack Conway’s Law