Dan North discusses an example of rearchitecting an application without rewriting it from scratch, and explains general strategies for a holistic rearchitecture such as changing the team culture, removing obsolete technologies, allowing mistakes to be made (and learned from), transitional architectures, introducing bounded contexts, refactoring and emergent simplicity, and rotating through roles.
Self-organization is a tricky thing. Agile coaches are challenged with how to motivate/persuade/trick their teams into self-organizing and doing things, without telling them what to do. This tutorial presents an approach utilizing leading-edge research and techniques from social complexity science and team dynamics to change the dynamics of a team with the aim of optimizing their work together.
Eric Nelson explains what are ORM, EDM, and ESQL, what is the difference between LINQ to SQL and LINQ to Entities, which one is going to be further developed by Microsoft in the future, accompanied by hands on demos showing how to use them.
Eoin Woods explains how Barclays Global Investors (BGI) designed Apex, a new porfolio management system, to meet the challenges it faces and why BGI chose to combine mainstream, boutique and open source Java technologies, including Oracle, WebLogic, Spring, Swing, JIDE, Flux, CPLEX, MVEL and XStream, to create an architecture with some interesting variations on the standard J2EE form.
Brian Oliver explains a number of data grid design patters: Command, Functor, Store and Forward Messaging, and Push Replication. He also mentions some traditional patterns used so far and Coherence Incubator, a repository for design patterns reference implementations.
What is better, a generic solution or a specific one? Stefan Tilkov’s answer is “It depends.” He compares XML vs HTML, DSM-UML, Internal-External DSL, SOAP-REST, and others, outlining the advantages and disadvantages of each solution, showing that there is no certain answer to an architect’s quest to solve his problem, but there are some guidelines helping along the way.
Joe Armstrong presents 6 laws to obey in order to obtain high system reliability, Isolation, Concurrency, Failure Detection, Fault Identification, Live Code Upgrade, and Stable Storage, showing how they are respected in Erlang and followed by some examples from practice.
Based on real-life cases from the financial industry, Michael Poulin shows how to use 7 service oriented principles, Composability, Autonomy, Contracts, Abstraction, Loose Coupling, Reusability, and Discoverability, to handle service behavior in the execution context and UI changes, and how to prepare for unexpected changes.
Graeme Rocher introduces Groovy and its corresponding web framework, Grails, followed by a code writing demo intended to highlight the advantages of using Grails over Java EE in order to develop web applications.
Agile and distributed development seem to be at odds with each other. One is about close communication and short feedback loops, the other is about being effective with people in a different location. This talk discusses a number of patterns common for setting up Agile Distributed Development and will show the results that can be achieved once you get into a good Fully Distributed Scrum.
Sadek Drobi shows how he applied functional programming principles to a real-life project which needed to meet certain performance requirements. He shares the lessons learnt on using mutation, laziness, recursion, functions, monads, list comprehensions and parallelization in an attempt to achieve a functional domain model.