Software Architect 2010
19 - 22 October 2010, America Square Conference Centre, London
Home
The Sessions
The Speakers
Presented Slides/Notes
Sponsors & Exhibitors
Who Should Attend?
The Venue
Accommodation
Request Information

Sessions: Wednesday 30 September

NOTE
The information on this page refers to Software Architect 2009. This site will be updated with information on Software Architect 2010 closer to the event.

  TRACK 1 TRACK 2 TRACK 3 TRACK 4 TRACK 5
08.30
Registration & Coffee
09.30
Opening Keynote – Saving Software Architecture
Tim Ewald
Lots of developers want to be architects. But for many, “architect” has become synonymous with “over 40 and over confident” or just plain “useless”. Why do so many people feel this way? Where are architects going wrong, and what can they do to fix it? Houses, patterns, aspects, quality attributes, iron triangles, astronauts, committees, standards, Highlander, Nazgul, technologies, practices, skill sets, education, dynamic typing, testing, abstraction, and the nature of change all lead down a path to an answer that can, hopefully, help you design and build better software, and redefine what an architect should be.
11.00
Coffee Break
11.30
Architecting for the Cloud — design considerations for Windows Azure
Richard Blewett
Cloud computing promises access to high levels of scalability and availability for the masses. Running your applications in someone else’s data centre removes large amounts of upfront costs in rolling out software, allowing cost to be based on usage. However, as always, to gain benefit you have to ensure your applications are designed to allow the platform to manage your application effectively. This talk looks specifically at Windows Azure as a cloud computing platform, and discusses what impact deploying on to this platform has on how you design your applications.
Are singletons evil?
Andy Clymer & Dave Wheeler
You’ve probably heard the comment that “Singletons are Evil” and also the counter-argument that they are completely necessary. This talk will be take the form of a debate between the two presenters, one presenting the reason that Singletons are necessary and the other why they are evil. Along the way we will cover the Singleton pattern, unit testing, IoC, Dependency Injection and the idea that Singletons are global variables. Hopefully we will end up with a clearer picture of how, when and where to use the Singleton pattern (or not!).
Lean software architecture
Kevlin Henney
Agile software development covers a broad range of practices and ideals, but is often characterized (and even caricatured) in terms of just being a synonym for Extreme Programming or Scrum or of having little concern for architecture. The truth is invariably more subtle, and it is worth examining agility from a different perspective to see where architecture and process variation play a role. Such a perspective is provided by Lean Software Development, which takes the lessons of Lean Product Development and Lean Production and applies them to software development.
This session explores the implications of Lean thinking on software architecture and the design choices and styles that best support a more sustainable approach to development.
Broadening the T
Simon Brown
A breadth of experience is key for successful software architects, but how do you get this and what should you know? In this technical session we’ll look at the things every software architect should know, drilling down into the following topics:
• Architecture and design patterns
• Technologies, frameworks and tools
• Designing for and testing non-functional requirements
All of this will done in the context of the Microsoft .NET and Java technology stacks, so you’ll get some concrete guidance on what knowledge will help you in your role as a successful software architect.
This session is aimed at anyone with software development experience.
MorganDirect — the client-side architecture of an extensible trading platform
Kevin Seal
MorganDirect is a flexible user interface delivering foreign exchange, rates and options trading to employees and clients of J.P. Morgan. Built using Java and OSGi, MorganDirect offers a platform for deploying user-specific functionality while maintaining a responsive approach to development.
This session will look at some of the design choices made in developing MorganDirect. In particular it will look at the Whiteboard Pattern and OSGi, and how they help deliver the desired modularity of a modern client platform, from simplifying pluggable components to providing consistent threading behaviour and supporting concurrent development efforts.
This session should be suitable for developers and architects, particularly those with an interest in client-side development and OSGi.
13.00
Lunch
14.00
Design considerations for storing data in the cloud with Windows Azure
Eric Nelson
The Microsoft Azure Services Platform includes not one but two (arguably three) ways of storing your data. In this session we will look at the implications of Windows Azure Storage and SQL Data Services on how we will store data when we build applications deployed in the Cloud. We will cover “code near” vs “code far”, relational vs none relational, blobs, queues and more.
Patterns Dartboard
Andy Clymer & Dave Wheeler
Imagine a (virtual) dartboard. That dartboard has a selection of patterns pinned to it. Members of the audience can throw darts at the dartboard. Where the darts hit will determine how the talk goes. The talk will be about patterns, although which ones it’s impossible to know — it’s up to you to choose what goes into the talk! Will it be MVC? Factory? Command? Your darts! Your choice!
Slicing design over time
Kevlin Henney
It is implicit in many agile approaches that design is treated as a continuous activity, rather than one exclusive to a single phase of development. From prototyping to TDD, from architecture envisioning to review, from refactoring to retrospectives, design is treated as a continuous — although sometimes lumpy — process of feedforward and feedback. On its own, however, this recognition of an unfolding and reactive approach to design does not help developers reason, discuss or envision how a design can grow in response to increasing coverage of scope, new information or other forms of feedback. There sometimes appears to be an air of mysticism surrounding the idea of growing and nurturing design — an unqualified optimism that assumes a leap of faith rather than a more intentional and empirical approach.
There are many valuable aspects of pattern-based thinking that are overlooked in the common perception of design patterns. The original vision of patterns embodies a notion of incremental, feedback-based design — something that may come as a revelation to anyone who had mentally pigeonholed patterns together with heavier-weight design approaches. This session explores pattern concepts such as pattern stories and pattern languages with a view to helping agile developers reason about their designs.
Using an MVC Framework to build REST Services
Tim Ewald
Tim Ewald REST APIs have gained a lot of traction recently. They are far simpler than SOAP and WS-* and uniquely well suited for Web and Cloud scenarios. Their increasing popularity has driven many traditional middleware vendors to add support for building them, but these solutions are almost always “bolted-on” and are not particularly satisfactory. Since REST is the basis for the Web, traditional MVC frameworks offer a much better alternative, with support for the core tenets of the REST style baked in. This talk explains how to design and implement a REST service using an MVC framework, including mapping processes to resources, resource representations, and using linking and forms to increase loose-coupling.
Visualizations for code metrics
Neal Ford
Judicious use of metrics improves the quality of your code. But interpreting metrics presents a challenge. You have a list of numbers for a project — what does it mean? This session shows how to produce visualizations for software metrics, making them easier to understand and more valuable. It covers metrics at the individual method level all the way up to the overall architecture of the application. This isn’t a talk about how tools produce visualizations: this session shows how to generate your own visualizations, allowing you to customize it to the level in information density that shows real value.
15.30
Coffee Break
16.00
Writing REST-based Systems with WCF
Richard Blewett
Traditionally people have thought of services as the realm of SOAP. However, many large web-based organizations (Google, Yahoo and Amazon among them) have chosen another style of writing services: Representational State Transfer, or REST. Microsoft has also exposed much of its Azure infrastructure via REST. So what is it about this architectural style that has led these huge organisations to adopt it? This talk looks at how you can use WCF to build REST-based systems to give you architectural choices when using Microsoft’s main communication platform.
Coding a solid user interface
Dave Wheeler
Microsoft Visual Studio 2008, in keeping with its predecessors, is a wonderful development environment that favours rapid application development. However, in the hands of naïve developers, it can lead to rapid generation of exceedingly smelly code, particularly in the user interface.
This session will show you how to truly build maintainable and testable user interface code, covering everything from adopting the Command pattern, to the correct use of threads, to implementing one of the many varieties of Model-View-Controller. A key feature of this session is its practical mixture of code and design patterns.
Design for testing
Simon Horrell
Many developers now recognize the importance of unit testing, and either use Test First or Test Driven development. However, many developers and architects are still struggling to come up with designs that enable easier testing of their applications. This talk will examine some common unit testing problems and use various unit testing patterns to solve those problems.
Top 10 software architecture mistakes
Eoin Woods
Today, the role of the software architect is widely recognised, and over the last few years, we’ve also seen a welcome increase in the number of useful books, websites and blogs aimed at the aspiring software architect. However, the success of a project is still usually related to the amount of hard-won experience that the project team has — by which we really mean how many mistakes they’ve learned from so far! Experience is a hard but very effective teacher. In this talk I’ll share some of the pitfalls that I’ve encountered in my experience as a software architect and in doing so, hopefully make sure that you avoid making just the same mistakes on your own projects. This session is aimed at new or moderately experienced architects, developers and project managers, although those with more experience will probably find it valuable too.
Emergent design & evolutionary architecture
Neal Ford
Most of the software world has realized that BDUF (Big Design Up Front) doesn’t work well in software. But lots of developers struggle with this notion when it applies to architecture and design. Surely you can’t just start coding, right? You need some level of understanding before you can start work. This session describes the current thinking about emergent design & evolutionary architecture, including both proactive (test-driven development) and reactive (refactoring, composed method) approaches to discovering design. The goal of this talk is to provide nomenclature, strategies, and techniques for allowing design to emerge from projects as they proceed.
17.30
Drinks Reception


Return to Sessions introduction

Bearpark
VSJ
IT Architect