by Neal Ford
Agile has matured to the point of mainstream success. Even large companies have discovered that it helps them build better quality software faster. But the agile practices that are mainstream today have been around for a long time. What is the next wave of innovation in the Agile world going to bring?
Agile software development works because of feedback loops, and to make it better (or repair what’s broken), you identify missing feedback loops, or replace broken ones. This talk uncovers two feedback loops missing from most projects. The first uses Behavior Driven Development & Cucumber to incorporate business analysts, testers, subject matter experts, and developers on one platform for requirements definition and verification. The other anaemic feedback loop in many organisations involves the last mile to production: you have error prone, horrific manual releases that everyone hates. Continuous Delivery delivers proven techniques and tools to make “Done” better.
The Windows Communication Foundation (WCF) has had basic support for building HTTP-enabled services since .NET 3.5. But now new & powerful features are available that let you design and implement an even more HTTP- and web-centric view on your service-oriented applications. Christian will show you how to build WCF services that can leverage the full power of HTTP. Come and learn how to create & expose HTTP-based services and also consume REST APIs in .NET and on mobile platforms.
by Simon Brown
One of the major points of disagreement about software relates to how much up front design to do, with people being very polarised as to when they should do design and how much they should do. “Just enough” sits somewhere in the chasm between big design up front’s analysis paralysis and emergent design’s refactor distractor, but how much is “just enough”? Join us to find out.
by Allen Holub
This session attempts to dispel some of the fog surrounding cloud computing. We’ll define what “cloud” actually means, and then go on to look at the two primary architectures available for cloud-based deployment: the virtual-machine model (as characterised by Amazon’s EC2 service) and the application-server model (as characterised by Google’s App Engine), and look at the general cloud infrastructure provided by both Amazon and Google. We’ll finish up with a quick discussion of how cloud applications differ from other applications, and the sorts of programming problems that are unique to cloud apps.
by Ingo Rammer
This session will give a point-by-point analysis of the fifteen key lessons the speaker has learned from his involvement in dozens of software architecture reviews, i.e. the things which will make or break a project, or at least cause severe budget overruns, technical and organisational issues.
NET 4 introduced the new ‘task’ abstraction, and C#5 will take advantage of integrating this task abstraction into the language via the async and await keywords. Furthermore, the new task abstraction promotes a new way of architecting asynchronous behaviour; in this talk we will explore how to take advantage of these new keywords and other new types and features being exposed in the next version of .NET to deliver far simpler asynchronous Windows UIs.
by Dave Ingram
Understanding the production environment and the core functions of the live service Operations and Service Delivery teams helps us to design and build solutions that can be better operated and supported during live service and beyond. This session provides practical insights and proven principles for architects and developers to help them design, build and implement solutions that are resilient and operable. The session is framed around a medium-scale production environment and introduces & highlights the importance of the Operations Manual as well as the Operations and Service Delivery activities such as backup & recovery, batch, reporting, monitoring, incident investigation and fix-on-fail. This session is targeted at developers and architects of all levels.
As a solution architect you should be aware of the benefits (and the risks) of Cloud computing. In this session Christian Weyer will walk you through the holistic set of Cloud features that the Windows Azure Platform (WAP) offers. Whether you want to run applications and services in Windows Azure, store data in Windows Azure or SQL Azure or securely communicate with and through the Cloud with the help of the Windows Azure AppFabric: come and see a pragmatic view on WAP and learn which slice of the Cloud may fit for you.
by Neal Ford
Most of the time when people talk about agile software development, they talk about project and planning practices but never mention actual development, as if development were an afterthought when writing software. This talk drills into the real details of how to do agile development. I discuss best practices like continuous integration, pair programming, how developers should interact with story cards, how to handle enterprise concerns like integration with other software packages, and a slew of other topics related to agile software development.
by Gary Short
Or, how to architect a codebase-wide refactoring project. In this advanced refactoring session, we’ll look at such things as functional decomposition, code criticality, the correctness continuum, sub-tree refactoring index and prioritisation. All these terms will be defined, explained and demonstrated, so that by the end of this presentation you’ll have the knowledge and confidence to architect such a refactoring project… or eat an elephant, whichever you prefer.
by Jesus Rodriguez
During the past few years, Windows Communication Foundation (WCF) has established itself as the fundamental technology to enable service orientation in the Microsoft platform. However, adopting WCF in the big enterprise requires complementing the sophisticated capabilities of WCF with efficient practices in areas such as configuration management, unit/load testing, dependency management, and versioning among many others. Enabling these capabilities facilitates the adoption of WCF in the enterprise in an agile and simple manner. This session presents a series of solutions and best practices for addressing important aspects such as configuration management, endpoint discovery, automated unit/load testing, service dependencies, etc. We illustrate these solutions using a series of practical demonstrations that will help developers to implement large WCF solutions in a more efficient and agile manner. Additionally, the session presents three case studies that highlight how customers are implementing some of these solutions to adopt WCF at a big scale in the enterprise.
by Allen Holub
This class presents three user-interface architectures suitable for (or at least used by) distributed, typically web or cloud-based, applications, discussing the pros and cons of each approach. We’ll start with Model-View-Controller and explain why it’s suboptimal. We’ll then move on to more appropriate architectures: Presentation-Abstraction-Control, Visual Proxy, and bifurcated objects.
by Eoin Woods
Event Driven Architecture (EDA) is an approach for system design and integration that provides some useful characteristics not found in the classic approaches based around services, procedure calls and centralised entity data stores. Event driven systems model the problem domain in terms of the event sequences that different parts of the domain emit and consume and are implemented by recognising, transforming and processing events. They are particularly beneficial for systems that need to be some combination of reactive, loosely coupled, scalable and flexible. This talk will introduce the EDA architectural style and the different types of event driven system in common use, explain a number of different approaches for building such systems in practice and discuss common problems with building and running event based systems. It will also consider how to combine the event driven style with other popular approaches in order to meet the requirements of real systems.
18th–21st October 2011