Mike Hanson - Thinking in layers

Mike started off his presentation by talking about the massive amounts of data in the world, and how we deal with it in an understandable way. 

We break things down into chunks we can grasp, and it's that way with layers in application design. We create abstractions. 

Mike now uses a Drobo for storage because he doesn't want to have the hassles of maintaining his own RAID infrastructure. The Drobo is just a reliable device. 

Layers are like that. You should be able to just use them. 

What goes in a layer? Stuff that's likely to change, such as business rules, platform dependencies, user interface, reports. Keeping this small, generic and independent really helps. 

Layers need to talk to each other, but coupling should be as "loose" as possible. 

Design perspectives can be top down (waterfall, or planned) or bottom up (heuristic, or emergent). 

Mike gave several examples, from setting up APIs/services to putting code in routines.

Thinking in layers is a mindset. 

Mike developed the theme of layers further in his Thursday session on interfaces.