Flexible, Fast, Friendly: Balancing Your Architecture

Should this code be fast, or easy to understand later? Should this site be customized to each user, or be able to serve 1000 users at once? If I make this system super-duper-flexible, can I build anything useful with it or will it be too unstable? Every program, every module, every site involves decisions to balance one priority over another. Balancing competing priorities is the responsibility of every architect, whether we're talking about a program, a site, a building, or a social system. There is no easy answer to what balance to strike, but fortunately there is are ways to understand and think about those trade-offs to make them easier. In this session we will examine some of the main aspects of software architecture -- Performance, Scalability, Learnability, Modularity, Testability, etc. -- and how they relate to, support, and contradict each other. The goal will not be to find a magic bullet to have our cake and eat it too, but to develop a better understanding and vocabulary of how to create the right balance for our sites and for our favorite CMS.


Time slot: 
Wednesday 10:45am-11:45am
Coding and development
Experience level: 
Questions answered by this session: 
What are major factors to consider when deciding on an appropriate architecture for my application?
How can I mitigate the downsides of my decisions?
How do I decide what my target audience is for my decisions?
What are Drupal's priorities? Are they the right priorities?


... It will be one session I'll be sure to attend. :-)
I'm glad to see you aren't just presenting the same material repeatedly (as some others I notice are doing). This looks like a fascinating topic, albeit perhaps one that would be hard to explore in any depth with a 45-minute session.

= 'Lowell Montgomery';
$from = 'US/British dual citizen living in Germany';
$blog = 'drupal.cocomore.com/blog';
$drupal_interests = array('evangelism',
'building cool sites', 'coding', 'design', 'UX');

Colorado mountains