Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Lean Architecture

DZone's Guide to

Lean Architecture

· Agile Zone
Free Resource

Speed up delivery cycles and improve software quality with TestComplete. Discover the most robust automated testing tool for end-to-end desktop, mobile, and web testing. Try TestComplete Free.

Lean thinking describes seven classical sources of waste:

  • Overproduction: Making stuff that nobody buys
  • Over-processing: Creating stuff that is more fancy than what the customer wants
  • Transport: Moving stuff from one place to another in order to create it or give it to a customer
  • Motion: Expending unneeded effort while creating stuff
  • Defects: Having to redo work because it wasn’t done right the first time
  • Inventory: Storing stuff waiting to be worked on more
  • Waiting: The time stuff is just sitting there, waiting to be worked on

Often an eight is added: Unused talent

It’s always fun (but sometimes risky) to draw analogies with other fields. In an enterprise information application (that is: what most people are working on these days), “stuff” is the data that your application shuffles between users, databases and other systems.

Here are the seven wastes of enterprise information application architecture:

  • Overproduction: Any code that is not executed by an end user. In the extreme case, many applications contain code that is not “reachable” and so can never be executed. In other cases, it may be functionality that is available, but never used
  • Over-processing: Do you really need to scale to a million concurrent users for a company internal application? Do you really need an application that is used get data for monthly reports to have 98% uptime?
  • Transport: How many classes in the code touches a single piece of data before it’s displayed to the user (or stored in the database (or sent to another system)). How many systems does a piece of data touch before it’s done processing?
  • Motion: How many times do you transform data into another representation?
  • Defects: Do you accept data that may be in error? How do you deal with old data that contains errors?
  • Inventory: I don’t know… maybe are you deleting obsolete data?
  • Waiting: Do you have batch processes that run daily? ‘Nuff said

(As an aside about transport. Did you know: In C#, it’s requires substantially less work to save and find data with EntityFramework than it does to call a web service? If system A “helps” system B by provide a data access service, system A is actually causing more work for system B. It’s not just an investment with low ROI, it’s got negative ROI!)

Remember: Not all production is overproduction and not all transport is wasted transport. But much is.

Release quality software faster with TestComplete. Discover how to decrease testing times and expand test coverage with the most robust automated UI testing tool. Try free for 30 days.

Topics:

Published at DZone with permission of Johannes Brodwall, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}