Tracks Monday - April 4
Keynote
On Beyond Agile: The New Face Of Software Engineering
Going beyond "just" agile, Dr. Alistair Cockburn, one of the founders of the Agile Software Development movement, lays out three foundations for effective software development in the next century:
Craft,
Cooperative games, and
Lean processes.
These three not only explain the success of effective teams, they provide good advice to busy project teams, and they create a sound basis for educating our next generations of developers. Room H2 - .NET
Continuous Deployment
We’ve come a long way in automating our development practices but there is still room for improvement. Agile teams put new requirements on our quality assurance and release management processes. With short iterations and incremental designs we need to be able to build and release much shorter cycles.
In this session we will look at the principles of Continuous Deployment. We will then switch to a practical session and look at how to set up Microsoft Team Foundation Server and its build system to handle automated builds, automated testing and automated deployments. The demonstrations will show how TFS, Visual Studio, Microsoft Test Manager and Microsoft Lab Manager works together to enable this very productive solution. With a system like this in place you will be able to deploy your software at every checkin!
Full speed ahead with Entity Framework!
With Microsofts release of Entity Framework, OR-Mappers have come to be a part of our everyday life.With new powerful tools comes new dangers. We show You how to avoid the most common pitfalls and what options You have when optimizing Your database queries.
Practical multi-core programming in .Net
We are witnessing right now a new paradigm shift in computer programming, the shift to parallel/many-core programming. And that is not all, the raise in popularity of cloud computing will increase the demand of efficient use of resources. In order to be able to deliver value to the business, we have to adopt new ways of programming. With .NET 4.0 Microsoft introduced new technologies, like TPL and PLINQ, that will help us transition to this new way of programming, and to harness the resources at hand.MVVM in Practice aka Code behind free WPF
One pattern that emerged with WPF is the Model-View-ViewModel . In this session we will explore the MVVM pattern the MVVM Light toolkit and I will show you how you can write a WPF application without ever needing to add a single line of code in the code behind, giving your designer full control over the User Interface.Test First Development v.Next with Pex and Moles.
Some little known tools are poised to change the way you think about test-first development practices in .NET. The tools and techniques demonstrated in this session stand the TDD discussion on its ear and help you create better software in the bargain.
Moles is a unique isolation framework that allows replacing any .NET method with a delegate. Pex is a parameterized unit test creation tool that works beautifully in Test-First Development scenarios. Come see how these new tools and techniques are changing the way we can think about developer testing.
Outcomes
- Understand how Moles works as an isolation framework
- Know how to use Pex in a Test-First model
- See how to shape software behavior with Code Contracts.MEF IT UP. With the Managed Extensibility Framework!
The Managed Extensibility Framework (MEF) is a new library that will be included in the .NET Framework 4, with builds currently available from CodePlex.com, that enables greater reuse of applications and components. If you are or would like to build extensible applications, extensible frameworks and application extensions, then MEF is for you. Using MEF, .NET applications can be dynamically composed instead of being statically compiled. This talk will provide a general overview of what MEF is and how you can use it in your applications and integrating with Visual Studio 2010.ASP.NET MVC View Engines
ASP.NET MVC has been out for almost two years now, with its third version already being under construction. One of the strongest features of this framework is its extensibility capabilities, allowing using different components with ease. In this session you will learn the differences between the view engines available to you like the default web forms view engine, Spark, NHaml and Razor.Finding bugs before your customer does - Code Contracts in .NET 4.0
Code Contracts, included in .NET 4.0, is an implementation of a concept called Design by Contract which aims to creating more stable applications.
This session shows how one can profit by these features. For this purpose, the session starts with a presentation of a simple C#-Application which seems to be stable at first glance. During the session, some not obvious but grave bugs which could have been avoided using Code Contracts will be found and discussed.Room H1 - Java
Java EE 6 - Leaner In The IDE, Than On Slides
WARNING: I will spend the whole time in the IDE and build a fully functional end-to-end Java EE 6 application with Bean Validation, CDI, EJB 3.1, JPA 2, JSF 2. All questions will be answered in real time - and with code.
Its 2010, but some applications are still built on the ancient J2EE “best practices”. Extensive, but superfluous layering, top down approaches for DAOs, too many external libraries and framework dependencies, extensive, never used configuration and extensions, lean servers but overbloated applications are just a few symptoms.
This session is targeted to all Java developers, managers and architects, it discusses the lean and pragmatic approach for building Java EE 6 applications with EJB 3.1, CDI, JPA 2.0, Bean Validation, JSF 2, but without any overhead and an incremental way to make your applications leaner.
Seam2 - Real integration testing with Arquillian
The main focus of JBoss' Open Source project Arquillian is to provide an all in one test harness that abstracts away all container lifecycle and deployment from the test logic so developers can easily produce a broad range of integration tests for their enterprise Java applications.
First, I'll present features of Arquillian, and its advantages over common Java EE testing approaches.
Then I'll show how to setup an Arquillian-based integration test within JBoss Seam/EJB environment.
Finally, I'll perform some live coding to develop simple integration test which will than be executed both from command line and IDE against multiple containers.
Attendees will be able to easily try out the code for their own as complete sample project will be hosted at github.
Java is dead, long live the Java Developer

Java isn't dead, it's just been sleeping! Look at its lovely new plumage! There's been much debate in the last couple of years on the future of the Java language, many doom-mongers have stated that Java is in decline and will no longer be relevant in the all too near future. This talk covers the exciting new world of a modern Java developer and how she can utilise a combination of Java 7, languages on the JVM and software craftsmanship techniques to deliver awesome solutions.Pair programming and TDD in practice - a live demo of a real world example
Anders Karlsen and Ivar Nilsen

Do you think that test-driven development won't work for real applications? Do you think that
some aspects of your web application cannot be tested automatically? Let us prove you wrong!
Starting from scratch, we pair program a Java web application which accesses the database,
using only the servlet-API for the web part. Every aspect of the application is written test first.
The whole development takes less than one hour.
Through the course of developing the application, we will introduce several useful libraries
which makes it easy to write good tests for different aspects of a web/database application.JDK7
This session will look at a number of the new features in development in JDK 7 and how they affect developers. We'll take a close look at the current status of JDK 7 development, and learn how you can keep up to date, get your hands dirty with the code & provide useful feedback on planned features, while diving a bit deeper into a few planned improvements in the VM, the programming language and the class library.Room J1 - Geek central
Encryption Boot Camp on the JVM
In today's data-sensitive and news-sensationalizing world, don't become the next headline by an inadvertent release of private customer or company data. Attend this session to gain a working knowledge of encryption and learn techniques for leveraging Open Source APIs that make securing your data as easy as possible. Encryption is quickly becoming a developer's new frontier of responsibility in many data-centric applications. Protect your persisted, transmitted and in-memory data and learn the terminology you'll need to navigate symmetric and public key cryptography on the Java platform.The Art of Garbage Collector Tuning.
The JVM developed by Sun Microsystems (now owned by Oracle) has been refined and revised with every
release of the JDK since the advent of Java in the mid 90ies. Today, Java developers face an abundance of GC
algorithms - from plain and simple serial stop-the-world collectors with a single reaper thread to highly
parallelized collectors that run several GC threads concurrently with application threads. Each of these
collectors can be configured and tuned in various ways in order to control pause times or increase throughput.
The number of choices a Java developer has for configuring the JVM’s garbage collection for his application is
overwhelming. Hence, garbage collector tuning for the SUN/Oracle JVM is a daunting task.
The tutorial aims to shed light onto the garbage collection strategies in the Sun/Oracle JVM by explaining all
algorithms (including Java 7’s “G1” collector) and discussing strategies for tuning and configuration of the
various collectors.Capture-Replay Mocks
When you do unit testing, you often want to isolate a piece of code
while you test it, and there are plenty of mocking frameworks out
there to help you to do that. You create mock and stub objects to play
the role of the class under test’s collaborators. In a similar way,
when you do integration testing, you often want to confirm your code
works in isolation of a 3rd party library or service, so it could be
useful to be able to mock that out too. The 3rd party module might
also be slow, hard to set up, or not be available at all on your
development machine.
The trouble with hand-coding mocks to imitate these kinds of
subsystems is that they can be a lot of work to maintain when the
subsystem changes its behaviour, and worse, you may not notice when
that happens. Your tests will stay green since they are using a mock,
and when connected to the real subsystem, your code will fail
miserably.
I kept running into this kind of problem, so I invented a
Capture-Replay mocking framework. It makes it easy to create a mock
from an existing 3rd pary system, just by recording the interactions
it makes with your system, and storing it in a text file. When you
want to run the same test without the 3rd party system present, the
mock just replays the interactions from the text file. At the flick of
a switch you can instead run against the real system, and verify your
capture-replay mock is still valid.
This makes your functional tests much easier to handle, since you can
verify your code works, even when much of the infrastructure it
depends on is not present. Your tests run more quickly on your
development machine, and you only need to run them with the real
subsystems present when the interactions change.
I use this method of mocking extensively in the self-tests for my
testing tool “TextTest”. I use them to mock out the Sun Grid Engine
job distribution system, a subsystem for sending email, connections
to bugtrackers, down to lower-level things like today's date and the
current process ID.
As of today (Oct 2010) this mechanism is hardwired into the TextTest tool,
but by April I hope to have made it available as a separate library. It can
currently capture the results of system calls, synchronous messaging
over a network and also Python modules and function calls.
Code Generation on the JVM
We're seeing more and more JVM frameworks designed to generate code at compile time: AST Transforms, Project Lombok, Spring Roo, Clojure Macros, and more. This session reviews these approaches, including examples of how and why we'd want to do this. We'll see the newest Groovy language tools, write our own AST Transform, and look at some amazing libraries based on these techniques.Yet more Performance Tuning.
The session will further demonstrate a performance tuning methodology that has been presented at previous Devoxx sessions. Following the methodology allows one to progress from diagnostic to diagnostic to a diagnosis in a matter of minutes. One that eliminates the need to error prone guessing, splunk aimlessly through source code or engage in other time wasting activities. The methodology will be demonstrated in the process of tuning an application that has been juiced up with some common performance problems that have often proven difficult to find. Problems will include memory leaks, inadvertent accessing of data sources etc.Regex - The future programmer's best friend
There are many popular myths concerning regular expressions (Regex). First, it's exceptionally hard to master Regex. Second, a normal programmer rarely needs Regex. Third, Regex are tricky to read and hence can't be maintained.
That is all wrong!
IDG media recently listed what knowledge will be most requested in our business ten years from now. In first place was Analyzing data. They explain: "Around 35 new petabyte data will be created every year after 2020. That's comparable to a DVD stack from earth to the moon and back again." Do you want to be one of the requested experts?
Regex is based on a very simple mathematical theory. With just three plain operators – AND, OR and star – we can describe all state machines (FA) and catch almost any text pattern. The rest is supplementary. Many programmers first studied and then practiced Java for years. But, how much time did we spend on learning and writing Regex?
Java is a strongly typed language with excellent support for object orientation. However, data from files, user input, and databases are often untyped. Regex instantly and elegantly translates the untyped data into typed data. We can easily find, interpret, replace, and filter. Regex is seamlessly integrated into Java as an external DSL. And, we can even test drive Regex development with JUnit.
No prior Regex knowledge is required for this very practical session. Expect live coding and mini exercises, when Staffan reveals the secrets. Maybe it wasn't that hard to understand Regex? Maybe Regex can be maintained when we automate testing? Maybe there is a need for Regex in every single program?
Staffan gives you the answers.Room G1 - Developer effectiveness
Little a agile in the big E Enterprise
For most developers, agile isn't a new idea - but to many Enterprises, it's still considered experimental; waterfall was good enough for the CIO and, well, change hurts. While many of us in the trenches yearn for more nimble pastures, we have to grapple with organizational inertia and the question remains: how do you introduce (or help spread) agile in a large company? This talk will provide you with the tools to be a more effective change agent. We'll talk about "the dip", the importance of value over dogma and how to approach various stakeholders.The three pronged approach to integrating systems
How often do you get to work on isolated systems? More often than not your system needs to integrate with other another system, whether it be a legacy system, an external API or even one that has not yet been developed. Every integration point adds risk to your project: technical risk, quality risk and delivery risk. But never fear - help is at hand!
Come to this talk and you will hear:
- How to design your system to decrease risk,
- How to ensure the quality of the overall system is high, and
- How to manage the delivery of the system in a way that guarantees success
You will hear real-life cases - some success and many failures. You too can learn from the mistakes I witnessed.
Setting Up And Running A Space For Programmers.
A Coding Dojo is a space in which coders have the opportunity to sharpen their technique and learn by example from others. It's a training place, in which participants may learn, session after session, how to master "coding gestures", how to discuss design choices, and how to manage the stress that emerges from the necessity to express swiftly and efficiently a personal response to a given exercise. Emmanuel started the Coding Dojo in Paris with others 6 years ago, and he has attended and shaped it ever since. This session is an experience report on how he and they have managed to create such a co-learning environment and make it thrive.But what about performance?
Performance testing should not be treated as a separate activity from development, but instead should be integrated with other software development activities. A single software development team should be responsible for all aspects of delivering working software, including business analysis, programming, functional testing, and additionally performance testing. We contrast the proposal with conventional approaches, and explain its advantages in terms of increased productivity, greater business agility, and ultimately higher software performance. We describe methods for planning and managing performance testing within a development team, and introduce a number of relevant engineering practices that are complementary to existing Extreme Programming practices.Fractal TDD: Using tests to drive system design
We present our experience applying Test-Driven Development (TDD) at
all levels of the development process. TDD at the class level is now
well understood (if not always well practiced). We find that the
benefits we get from writing tests first and using them to drive
design apply at the system level too. That's why we try to address
integration and system testing as early as possible. The sooner the
system is in a deployable state, the better equipped we are to react
to changing business needs by delivering new features. Our experience
is that putting testing at the front of our development process, and
paying attention to what we learn from them, flushes out architectural
issues such as concurrency and distribution. The result is systems
that are easier both to maintain and to support. We can also avoid
some of common testing pitfalls, such as unreliability, slow
execution, and brittleness.Five years of change, no outages
Our team built a static data system for a leading investment bank. It
went into production about 5 years ago, since when it has grown
significantly and been through two generations of developer. It has
never failed in production. We followed XP as an approach with a
strong emphasis on driving features with acceptance tests.
Room G2 - Mobile Solutions
Using Javascript to Build Native iOS Applications
It's no secret that the iOS platform has completely changed the mobile landscape. The App Store is approaching its 10 billionth download, and up until several open source projects showed up, the only possibility for building an application used on an iOS device was either learn Objective-C, or serve up a non-native web application.
Enter Appcelerator Titanium, a framework for building native applications using web technologies. If you know how to build a website using Javascript, you can build a native application using the Titanium API. This session will take you through the basics of Titanium. We'll set up a project together and pull in native iOS functions such as the camera, geolocation, and compass. and all from a few simple lines of Javascript.Your first Android app
Martin Gunnarsson and Pär Sikö

In this presentation we will show you how to get started developing Android applications. We’ll start with an empty workspace, introduce different key concepts like Intents, Views, Activities and Services and end up with a simple but useful application. We will show you how to create custom components, animations and how to make things more fun and interesting by using the accelerometer. When this presentation is over you will know how and where to start working with Android and how to publish your own applications to Android Market.Developing iPad applications in .NET
iPad development opens up a world of opportunities for developers that invest the time to learn this exciting platform. Monotouch allows developers to create .NET-based applications that run on the iPad and iPhone while taking advantage of existing .NET libraries and skills.
Experience a quick start to iPad application development using the language and libraries that you are already familiar with, and prepare to learn something new about how to use what the Monotouch API’s have to offer. Gain a solid understanding of the basics of iPad development in .NET, and get up and running quickly building the next killer mobile app.
Mobile Web Rising
The popularity of smartphone devices and platforms like the iPhone, Android and BlackBerry has triggered an explosion of proprietary and mutually incompatible software platforms. Web applications, thanks to HTML5 and the WebKit engine, are slowly gaining traction as a true cross-platform environment, suitable to reduce development, deployment and quality management costs. The aim of this talk is to provide an overview of the current state of mobile web development, including an exhaustive survey of the most important standard technologies available today to create compelling, immersive user experiences on mobile devices. The talk is suited to desktop, web and mobile developers looking to expand the reach of their applications.Integrating iPhone Applications with Backend REST Services
In a world of interconnected services, any iPhone application must be able to access online services to provide a rich user experience, raising concerns of compatibility, security, and performance. This talk will provice an overview of the techniques required to connect a native iPhone application, developed using Apple's iPhone SDK, to backend REST web services, highlighting different approaches and tradeoffs.Creating Silverlight Applications for Windows Phone 7
So you got a grasp on Silverlight development, now what do you need to get those sparkling applications onto your phone and into the hands of your soon-to-be fans?
This session focuses on the differences in Silverlight development when it comes to targeting the new Windows Phone 7 platform. What do I need to think about regarding the actual coding, the hardware and the available services?
The session will consist of a ridiculous onslaught of live demonstrations.Java SE in Embedded Devices
Java ME has been in Mobile devices now for almost 10 years but as embedded hardware increases in power and memory size it is becoming more and more feasible to run a full Java SE JVM. This seminar will explore the different markets and devices where Java is being adopted and also the different versions of Java available from Oracle to run on these devices and the optimisations we have made to enable this to happen. From small memory footprint versions and headless versions to power management capabilities.Room G4 - Emerging Technologies
Functional Thinking
Learning the syntax of a new language is easy, but learning to think under a different paradigm is hard. This session helps you transition from a Java writing imperative programmer to a functional programmer, using Java, Clojure and Scala for examples. This session takes common topics from imperative languages and looks at alternative ways of solving those problems in functional languages. As a Java developer, you know how to achieve code-reuse via mechanisms like inheritance and polymorphism. Code reuse is possible in functional langauges as well, using high-order functions, composition, and multi-methods. I take a variety of common practices in OOP languages and show the corresponding mechanisms in functional languages. Expect your mind to be bent, but you'll leave with a much better understanding of both the syntax and semantics of functional languages. Real World Rails 3
It has been five years since version 1.0 of Ruby on Rails was released. Since then the framework has matured to become a powerful and effective platform for web development. The Rails community has also by large taken over the innovation leadership previously belonged to Java.
This talk will describe Rails and its advantages by describing how we
developed a custom built site for a customer.Git Going with a Distributed Version Control System
Many development shops have made the leap from RCS, Perforce, ClearCase, PVCS, CVS, BitKeeper or SourceSafe to the modern Subversion (SVN) version control system. But why not take the next massive stride in productivity and get on board with Git, a distributed version control system. Jump ahead of the masses and increase your team's coding productivity, debugging, and agility at zero cost.
Many development shops have made the leap from RCS, Perforce, ClearCase, PVCS, CVS, BitKeeper or SourceSafe to the modern Subversion (SVN) version control system. But why not take the next massive stride in productivity and get on board with Git, a distributed version control system. Jump ahead of the masses staying on Subversion, and increase your team's productivity, debugging effectiveness, flexibility in cutting releases, and repository and connectivity redundancy (at $0 cost). Understand how distributed version control systems (DVCSes) are game-changers and pick up the lingo that will become standard in the next few years.
In this talk, we discuss the team changes that liberate you from the central server, but still conform the corporate expectation that there's a central master repository. You'll get a cheat sheet for Git, and a trail-map from someone who's actually experienced the Subversion to Git transition.
Lastly, we'll even expose how you can leverage 75% of Git's features against a Subversion repository without ever telling your bosses you are using it (they'll only start to wonder why you are so much more effective in your checkins than other members of your team).
NoSQL: What You Need to Know
You've read that the relational model is old and busted, and there are newer, faster, web-scale ways to store your application's data. You've heard that NoSQL databases are the future! Well, what is all this NoSQL stuff about? Is it time to ditch Oracle, MySQL, and SQL Server in favor of the new guard? To be able to make that call, there's a lot you'll have to learn.
In this session, we'll take a whirlwind tour of five representative non-relational data stores: Cassandra, MongoDB, Voldemort, Redis, and Neo4J. We'll learn the very different ways they represent data, and we'll see their unique strengths and weaknesses in various kinds of applications. Along the way, we'll learn why new technologies must be introduced to address today's scaling challenges, and what compromises we'll have to make if we want to abandon the databases of our youth. We'll review what ACID means, role-play a two-phase commit, and even talk a little bit about file system semantics. It's an exciting time to be storing and retrieving data, and the opportunity is now before us to learn things we could ignore just a few years ago. Come to this session for a solid introduction to a growing field.
APL#
In 2012, the APL community will celebrate the 50th anniversary of Kenneth Iverson’s book titled “A Programming Language”. APL achieved significant use on mainframes in the 1970’s and early 80’s, as the one of the first ways to deliver “end user computing” in an age where few off-the-shelf products existed and most software was hand-made from the ground up. APL has lived a relatively quiet life during the 90’s and 00’s, while IT departments were consumed with getting administrative systems under control (and data safely stored away in SQL databases). During this period, the analytical use of computers took a back seat (as a proportion of the total amount of software development being done), and “end user computing” was relegated to spreadsheets. APL slipped under the radar of the software development community.
Today, the agile approach to software development that has been the norm for APL users since the 1970’s, has been “rediscovered” by the mainstream. Features which were discovered by APL implementers and users decades ago - such as dynamic typing, column-store databases, keyed index object stores, and “in-memory OLAP” – which used to put deep frowns on the faces of IT managers, are now seen as “state-of-the-art”. The urgent need to involve domain experts more directly in the development process for sophisticated applications, and an economic climate which puts a high premium on agility and efficiency, sets the stage for the return of (modern derivatives of) APL.
APL# is a multi-paradigm programming language, with emphasis on array-based / parallel algorithms, functional and object-oriented programming - in that order. APL# supports extremely rapid development of code with computational or analytical content, and is particularly well suited to applications which need to deal with highly heterogeneous data sources (sometimes of dubious quality), which require significant transformation and normalization before data becomes information. The language is as closely related to mathematical notation as it is to mainstream “programming languages”, and is thus much closer to the notations that many subject matter specialists are comfortable with, even when compared to languages like Python or F#. APL can be used interactively to mine data, to explore the mathematical and logical properties of a problem domain, and allows the domain expert to evolve his or her own embedded domain specific notation where relevant.
APL[#] makes it easier for domain experts to participate directly in the software development process, either by pairing with “professional” software developers, or taking direct responsibility for the coding of complex business logic which can be embedded in applications written in other languages. The right mix of subject and software experts can dramatically reduce the size and complexity of development teams, and significantly reduce the overall project risk for certain types of projects.
The presentation will mostly consist of an interactive demonstration of a prototype of APL# being used to explore a problem area, derive a simple embedded DSL, and finally build a simple SilverLight application to present the results.
A (gentle) (yet performative) (and test-driven) incursion in Haskell
Haskell is a functional programming language. Because of its high level of abstraction, its elegance and its conciseness, Haskell gets the attention of the agile developer. Its underlying paradigms, however, differ radically from the now mainstream object-oriented approach; Haskell might even scare away developers used to more classic languages, such as Java. This session will show by example some aspects of Haskell, through the performance of an programming exercise (also known as a Coding Dojo Kata) in front of the audience. Emmanuel's intention is to inspire the audience to be more curious about Haskell and functional programming concepts.Room J2 - IBMi
Why PHP and IBM i
PHP is a new and exciting language for developing/deploying Web-based applications. In 2006, IBM introduced PHP for Web application development for IBM i. Is PHP the right tool for you to extend your current IBM i application suite, or to extend your company’s reach to new customers? This session will explore typical uses of the language and review implementations where PHP makes sense. IBM i Integrated Application Server and Integrated Web Services
Do you want to start running Web applications including Web Services, but you think that your system is too small? Is creating and administrating a web server to complicated and confusing? Would you like to learn how SOA and Web services really work with IBM i? The Integrated Web Application Server integrates a Web-servlet container into IBM i. This Web container includes the basics for getting servlet and JSP applications up and running quickly and effectively on the Web. And the integrated web services server greatly simplifies the process of externalizing ILE business logic as a service via the IBM i Web Administration GUI. This presentation will demonstrate the simplicity and power of the IBM i integrated Web services technologies. Moving RPG to an SOA Framework: A Step by Step Approach
SOA is an architecture. It has become an industry standard to allow business function to be located in the most appropriate place - distributing as business requirements dictate. SOA can be implemented using a variety of languages and a variety of techniques. Learn how to exploit the strengths of existing applications, while creating agile applications and positioning your business for the future. This session will demonstrate a step-by-step approach for taking existing applications and implement a Services Oriented Architecture. Change Management and Source Control Made Easy with Rational Team Concert for Power
Rational Team Concert for Power is the next generation of team collaboration products for developers on Power platform. Based on IBM Rational's Jazz technology, RTC Power can significantly improve the productivity of your development team. RTC Power provides project planning, automated data collection and reporting that reduces administrative overhead and provides real-time insight required to effectively govern software projects. Other capabilities such as source configuration management (SCM), work items (change management) and build into the team's process are also provided. RTC Power can be used to support teams on multiple platforms, multiple operating systems and multiple languages. IBM i Application Development Strategy and Update
The world of application Development is evolving very quickly. New tools, new technologies, and new languages are coming forward at an incredible rate. IBM i developers are uniquely positioned to take advantage of the new advancements while capitalizing on their existing investments. This session will review some of the hottest industry trends and the latest announcements from IBM and look at how they all tie together. IBM’s Investment in RPG IV – Past, Present and Future
RPG IV is alive and well. Each release adds new function and enhances existing ones, keeping the language modern by anyone's programming standards! This session will provide a quick review of the enhancements made to the RPG IV language in previous versions and then focus specifically on the 6.1 and 7.1 announcements, including IBM Rational Open Access: RPG Edition. This is your chance to hear about what’s been happening lately in the world of RPG IV Room G3 - Web
Railsify your web development
In recent years, Ruby on Rails has proved itself a leader in the web development landscape, creating ahighly productive environment in which state-of-the-art development practices like TDD, BDD and automated deployment has bloomed.
In this talk I will show how to steal the practices that make Rails a cutting edge platform into your legacy platform written in Java and/or .NET. I will show examples on practices from the Rails world and how to transfer the idea and implementation into your platform.
The intended audience is developers and architects, willing to improve on their development practices.HTML5: The JavaScript Parts
HTML5 wants to make some major changes to the way we deliver media over the web and the way we mark up our pages, but it also gives us a bunch of new stuff in the browser's programming model. To ignore these new JavaScript APIs is to give up on a richer browser UI and a lot of fun.
In this session, we'll cover the geolocation API, local storage, the client-side SQL database, support for offline applications, in-browser threading, web sockets, drag and drop, and more. We'll look at the real, working code for as many features as we can manage, and discuss cross-browser compatibility issues as well. HTML5 is not an optional skill for web developers in 2011. Don't miss it!
Kick ass code editing and end to end JavaScript debugging

In this talk Rik will demonstrate the open source and web based Cloud9 IDE.
Cloud9 IDE is aiming to be the IDE for Javascript developers. We have all experienced the Eclipse variants and other Java or C++ IDE's for which webdevelopment and javascript was an afterthought. Extending these applications or customizing them to our needs was done in either Java or C++ and generally very difficult. We are developing applications in javascript to run online for a purpose, why shouldn't you do your application development online too?
Rik will look at examples such as Etherpad and Bespin. Then he will take a look at the Cloud9 IDE preview with real-time online editing and debugging of javascript applications in NodeJS.
Of course one of the key features of an IDE is a code editor that developers really enjoy to use. The ajax.org code editor (ACE) uses the DOM for rendering and doesn't depend on any external JavaScript library. It is capable of working with huge documents even in older browsers like IE6. Rik will demonstrate the features developers are interested in: code completion, syntax highlighting, toggling comments, auto indent/outdent or moving/copying lines. Further he will demonstrate how it is implemented so that every attendee can start hacking on it right away.
Another important feature of the IDE is the integrated debugger. With this debugger developers are able to debug Node.js and Chrome and therefore have an end to end JavaScript debugging solution. Rik will show how this is accomplished and demonstrate how to debug a node.js server with a JavaScript client running in Chrome.The Future of JavaScript. I mean ECMAScript
Unexpectedly, JavaScript has become the world's most popular programming
language. After ten years of stasis and acrimonious controversy, a new
edition of the language has arrived, and there is work on further
standards. There are many forces now pulling on this little language.
What will the future hold for this duckling?
Patterns for Server Side JavaScript
There is growing interest in JavaScript in the server. Event driven,
asynchronous, turn-based processing promises high reliability and high
performance, but it is an unfamiliar model. A naive programming approach
results in deeply nested callback functions, which is ugly and brittle.
This talk explores the use of JavaScript's first class functions to give
a handle on elegantly managing programming in the server.jQuery and Sinatra, a Classy Combination
jQuery is a simple, lightweight, Javascript library that has taken the web application world by storm. The slogan for jQuery is 'Write less, do more'.
Sinatra is a simple, lightweight, web framework that allows you to develop REST applications with a minimum of overhead. The slogan for Sinatra is 'Classy web-development dressed in a DSL'.
In this presentation we will develop a one-page web application using jQuery and Sinatra. Modern web application development does not have to be complicated, if you choose the right tools for the job.
Room K2 - Software Development Teams
An Agile Guide to Anatomy Based Planning
This session will give you insights in how anatomy-based planning helps agile development both in a single team and in large-scale multi-team, multi-site agile development.
An anatomy is way for everyone involved to, in a very short time, create a shared view of what needs to be done. It is not a plan; it is a fundamental map of necessary capabilities and their relationships intended to base planning on.
We demonstrate the anatomy’s role in efficient agile planning “The Planning Game”, as well as some tactical use of anatomies in agile.
Warning! Agile without professional software craftsmanship like TDD, Refactoring and Continuous Integration might be harmful.
Agile Development of Usable Software
Erik Lundh used low-fi prototyping techniques to bootstrap his very first agile project in 2000. Since then he has developed everything from consumer products and industrial control to ATM cash machines and telecom systems with agile and low-fi design approaches.
Agile development that really works has a lot in common with usability design, especially in the field of lo-fi design techniques like paper prototyping.
Learn where usability fits in with successful agile development: Who is the right champion for usability work in an agile setup? Where does the usability work fit in? When is the usability design and user feedback used in agile?
Winning big with specification by example: lessons learned from 50 successful projects
After an extensive research of how teams in different contexts implement specification by example, behaviour driven development and agile acceptance testing implementations for his new book,
Gojko Adzic presents great war stories that will inspire you to improve your software development process. Learn why and how teams all over the world succeed in bridging the communication gap between business
stakeholders and implementation teams and how they got users, developers and testers to collaborate in defining great requirements and tests to produce software fit for purpose.
Gojko will also present a summary of the most important success patterns for different contexts and talk about how to solve most common implementation issues.Product Management using Effect Maps
Effect Mapping is a technique for high level project visualization. It
provides an excellent level of visibility to stakeholders and helps
drive software projects towards delivering the right product with a
high level of quality. Effect Mapping also facilitates the application
of several techniques of agile planning, product design,
prioritisation and scoping. In practice, I've found the combination of
these techniques by far the most powerful way of iterative product
management. Gojko Adzic presents Effect Mapping with several
examples and discuss how it can help teams avoid some typical problems
with user stories for long term planning.Pillars Of A Coaching Practice
How do agile coaches know what to do?
In this session, Mike GeePaw Hill presents and describes his Pillars
Of Coaching, the basic sources of all successful coaching efforts:
Situating, Modeling, Releasing, Sorting, and Inviting. These are the
wellsprings from which an experienced coach draws ideas, insights, and
inspiration. The GeePawHill style, funny and pointed and spot-on
accurate, should make this session informative and pleasurable.The Art of Productive Laziness
'Progress isn't made by early risers. It's made by lazy men trying to find easier ways to do something.' Robert Heinlein
Learn about the art of productive laziness with The Lazy Project Manager; understanding what is meant by the ‘productive lazy’ approach to Projects (and life) and learn how to apply these lessons ‘to be twice as productive and still leave the office early’.
The session will cover the definition of productive laziness, the science behind the theory (yes there really is some), and will share some personal learning experiences that led to the creation of ‘The Lazy Project Manager’. In addition the audience will be led through the three key project stages, one of which the ‘lazy’ project manager works very hard in and the second they should be in the comfortable position of enjoying the ‘comfy chair’ safe in the knowledge that the project is well under control.
A specific focus will be made on the third area, project closure, which can be done so much better with very little effort but with a significant value add for all ‘would be’ lazy project managers.
Room K1 - Software Development Leaders
Agile.next
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?
This presentation focuses on what I and others see as the next interesting things to push Agile to the next level. This session discusses Behavior Driven Development & Cucumber, Continuous Delivery, and Agile Version Control Strategies, all in great depth. This session will jump-start the thinking for mature agile organizations and provide new ideas for those just starting.
Agile in a Nutshell
Are you confused about what this Agile stuff is? What are Scrum and XP and
Lean and TDD and all the other …DD’s? Get ready for a Pecha Kucha style
presentation (but longer). Buckle your seat belt, settle in, and get ready for a whirlwind tour through Agile by a top presenter. We’ll laugh, we’ll cry (well,
maybe not much), and we’ll be able to say at the end “I met Agile”.Managing high ROI software development
What are the biggest challenges in managing high ROI software development and how are they best met. Participants in this seminar will get the opportunity to discuss management challenges and how to overcome them.The Big-Ass View on Competence
Agile team members create their own rules, based on constraints imposed by the environment. But something else is needed for good results: some call it discipline, craftsmanship, or competence. Traffic management teaches us that there are 7 approaches to achieving competence in a self-organizing system.Is Scrum incompatible with the human brain?
When you start using Scrum, interesting things start happening in your brain. Scrum exposes a lot of problems, and you brain tries to make you feel better by automatically sweeping them under the carpet.
Unfortunately this also means that improvements achieved will be limited and actually it will make you feel worse rather than better. This talk will show you how to handle this and other basic human issues that occur when you start working on changing and improving. After the talk you will have new skills
that you can apply to make progress on any problem you care about.Leveraging Open Source - Everything You Wanted to Know About Open Source that Nobody Told You (including getting paid to do it)
Did you ever read or hear about people who get paid to write open source software and wish you had that dream job? Did you ever look at an open source product and wonder how it was built in such a short time and with such high quality? Did you ever wonder how you and your company could get into open source development?If you’ve ever asked yourself these questions, then this session is for you. Jeff Genender is an open source software enthusiast who took his passion for open source and became a contributor on several well-known open source projects, which finally landed him several positions that actually paid him to work on this passion.
In this session you learn about:
• Contributing and learning "The OpenSource Way" (tm);
• The development process and tools sets commonly used in open source, as well as how to leverage a remote development model effectively;
• How to get involved with the open source methodology and change the way your company develops software;
• How to be a good citizen in the open source community - and maybe even get paid to contribute to open source! Conversation Corner
Improv!

What has theatre got to do with the work we do every day in our teams and organisations? Plenty, it turns out. We find in our work with and within teams, as coaches or as participants, the lessons of improv heighten our awareness of group and personal dynamics, enlarge our repertoires of behaviours and our capacity to influence, improve our collaborative skills and provoke us towards innovation. Not only has improv taught us many lessons about working together, fluency, behaviour, status, it’s also immense fun.
The session will be dynamic and participatory. We’ll alternate improv exercises and games with brief mini-retrospectives to unpack their meaning and relevance for our everyday work in teams.
Oh – and though we’ll run the session in English, language is immaterial: in the games we’ll let people use any mutually intelligible and agreed-upon tongue!
So please join us for 50 minutes of lively games and reflection.Facilitation Patterns and Antipatterns
Facilitation skills are essential for anyone. In fact, everyone facilitates whether they know it or not! Do you work on a team, manage an organization, or otherwise work with others? The opportunity to facilitate will come up.
Steven “Doc” List will lead you to explore the common patterns & antipatterns that come up in facilitation, for the facilitator and the participants. Weʼll have some fun by taking on roles, and exploring the behaviors that work and that donʼt work. The session will include some time on specific activities and techniques that can be used for effective facilitation.“Certification is the best way for professionals to distinguish themselves as competent”
Gojko Adzic and Tiberiu Covaci and Erik Lundh and Arne Åhlander



A panel debate moderated by Emily Bache. Audience members are invited to submit questions to our panel of debaters. Each panel member has written a short position statement outlining their opinions (see below). We anticipate lively discussion.
Gojko Adzic
Most IT certification programmes are just pyramid scams. They are
designed to sell training and not to provide either the certified
people or the companies hiring them any assurance of competence. Mass
certification that is easy to get loses any value very quickly and
ends up producing exactly the opposite effect for the certified people
after a while - instead of distinguishing themselves they become just
one drop in the sea of incompetence.
Arne Åhlander
To me Scrum is one way of several to manage product development. What possibly attracts me most in Scrum is the possibility to visualise and address problems and limitations. Because of this I have offered Scrum trainings for several years. The last two years Scrum certification trainings have been included in my offering. In doing this I have noted that the certification trainings attract substantially more participants than the non-certification trainings. For good and for worse.
I believe the good parts out weigh the bad parts and my experience is that participants of my training classes bring with them a wish and desire to improve the possibilities to develop better products when they get back home.
Tiberu Covaci
After coming second out of over 400 applicants at two different job interviews, just because I wasn’t certified, I decided to take that step, in spite the “paper certification” general feeling. By doing that I discovered that a certification is not about the paper, but about the journey, and a lot of doors opened to me after that.
Can a few agile enthusiasts change an organization?
Henrik Berglund and Pierluigi Pugliese and Michael Hill


More and more organizations are adopting agile methods, for individual projects and even whole departments. This change is being facilitated by enthusiastic coaches and project managers and developers, and many people are going on training courses and gaining agile certifications. All this activity is certainly leading to improvements, but will it last? In this fishbowl discussion we’ll be talking about how to sustain desirable organizational change. Once the early adopters and initiators have gone on parental leave or got a new job, will their legacy be more than a pile of (mostly broken) unit tests and a habit of holding meetings standing up?
The discussion is open to everyone, but to get things going, some of the conference speakers have kindly agreed to sit in the fishbowl at the start and share their views on the matter.
Software Craftsmanship is too expensive for the Enterprise
Emily Bache and David Harvey and Emmanuel Gaillot and Patrick Kua and Steve Freeman




The Software Craftsmanship movement has a manifesto (http://
manifesto.softwarecraftsmanship.org/) which builds on the Agile manifesto. In practice it seems to be about encouraging developers to use Test Driven Development, Pair Programming, and other agile engineering practices. Enterprises often talk about the need for software quality, but donʼt seem to be prepared to embrace these kinds of practices because they are percieved as too expensive. In this fishbowl discussion weʼll be discussing our experiences working in enterprises and following the principles of software
craftsmanship.
The discussion is open to everyone, but to get things going, some of the conference speakers have kindly agreed to sit in the fishbowl at the start and share their views on the matter.
Mini Coding Dojo
Emily Bache and Emmanuel Gaillot

How do you learn TDD? Well, a good start would be to come along to this session and try it out on a simple problem. If you wanted to learn Karate, you’d go along to a dojo every week and practice. The coding dojo is the equivalent for people who want to get better at coding. Learning in a group, in a safe practice arena, starting with simple exercises. We’ll be using the Randori form, which is a way for a group to code together, practise TDD, and collaboratively solve problems. Everyone should come prepared to write some code, some tests, and learn something.Tracks Tuesday - April 5
Keynote
Everyone likes change, but nobody likes to be changed
The hard thing with Agile & Lean is not the principles and practices - the hard thing is making change happen in practice. A very common question is "OK, I understand what this is about, but how do I convince my boss/customer/team/etc?".
To change organizations you need to change people. To change people you need to start with the only person you have any control over - yourself.
In this talk we will use real-life examples to help you understand what you can do to trigger organizational change and help your company become more Agile & Lean.
Room H2 - .NET
BDD in .NET using SpecFlow and WatiN
Behavior-Driven Development (BDD), employs the approach of specification by example. Instead of talking in abstract terms about what the system will do, the team collaborates to automate specific examples that specify what the system should do from the user's perspective. SpecFlow is a Cucumber-inspired tool for mapping stories and acceptance criteria to automated functional tests in .NET, using the tools you already know. This session will show you how to use SpecFlow with WatiN to drive out functionality for ASP.NET Webforms and MVC applications.Model Binding in ASP.NET MVC
Model binding is the magic in ASP.NET MVC that can bring together information in an HTTP request with the model objects you manipulate in code. Once you know how to take advantage of model binding and custom model binding you’ll write less code (and cleaner code) in the rest of your application. In this session we’ll look at model binding as it applies to validation, model state, and building model objects.
We’ll explore the recursive nature of model binding, build custom model binders, and look at some of the subtleties and magic you should avoid (or utilize) in your application. AJAX and ASP.NET MVC
In this session we’ll explore the AJAX features of ASP.NET MVC, including the built-in AJAX helpers.
We’ll also see how to integrate jQuery with an MVC applications and use many popular jQuery plug-ins.
During the session we’ll see how to implement client-side validation, fancy client side UI widgets, and
coordinate asynchronous web requests with controller actions. Cryptography 101 Using the .NET Framework and ASP.NET
Learn the "black art" of cryptography, including public/private and symmetric encryption, hashing, and a dash of salt. Review ASP.NET features that utilize cryptogrpahy such as viewstate. Discover .NET framework classes that can be leveraged to secure web sites by creating tamperproof querystrings.By by relational database and ACID-transactions: An introduction into BASE and NoSQL by the example Windows Azure Storage Services
In view of scalability and availability, huge companies like Amazon, Google or eBay don’t use relational databases for their web-applications anymore. Instead of that and instead of ACID-transactions, they use approaches like NoSQL (Not only SQL) and BASE, which stands for basically available, soft state, eventually consistent. This session shows why those concepts improve scalability and availability and how to use them in practice by an sample implemented with Windows Azure Storage Services.Room H1 - Java
BDD with Cucumber and RSpec
Original Test Driven Development was very much based on traditional object
oriented modelling, with a focus on unit testing. That approach has shown to
be less than perfect when developing client driven applications with a rich
UI.
A couple of years ago, Dan North coined the term Behaviour Driven Development to describe an outside-in approach to developing an application. By defining acceptance criteria as executable code first, you make sure that all code you write supports that criteria.
The ruby community has produced two tools that greatly supports BDD: Cucumber and RSpec. The talk will show how to drive your Ruby and Java code BDD style using Cucumber and RSpec. An Agile approach to testing Eclipse RCP GUis
GUI tests are often fragile because they are too tightly coupled to the details of particular screens and widgets, and break as soon as anything changes. Over the past few years I've pioneered an approach that lets you record tests in a high-level domain language that describe user intentions rather than GUI mechanics. This makes them easy to create, and inexpensive to maintain when the GUI inevitably gets updated. In this talk I'll show you the latest incarnation of the PyUseCase/TextTest toolset, that helps you test SWT/Eclipse RCP user interfaces. It achieves this by inserting an abstraction layer between the GUI widgets and the test cases - a "GUI interpreter", that maps user GUI actions to carefully chosen domain-language statements. I find this approach leads to very readable and flexible tests, and allows a productive, agile style of working.Java Maintenance mini field manual
"Yeah, the guy that wrote that code left the company five years ago so no one has really dared change that..." Heard this before?
With a decade (give or take) of significant Java development in the rear view mirror more and more of us Java developers find ourselves spending more and more time maintaining and enhancing existing application rather than enjoying the sweet-smelling luxury of the green field. The challenges involved include code thats prohibitively difficult to understand, test, refactor or enhance, lack of unit-tests, usage of outdated APIs, frameworks, designs
and more.
This session targeted at the Java developer in the above situation will look at some pragmatic techniques and strategies for: Improving structure and readability, Writing and automating tests, Managing dependencies and more. All with the purpose of safely and effectively handling our Java legacy.
Note: This is a new and updated version of the session with the same name given at JavaZone 2010 in Oslo.What's new in Spring Integration framework 2.0
As one of the core developers of the spring Integration framework, Oleg will provide a quick introduction of Spring Integration framework as well as guided tour of the new features of Spring Integration 2.0 which would include the unveiling of Spring Integration ROO add-on. Along the way, you will learn about Spring Integration's support for Spring Framework 3.0 features such as the Spring Expression Language, ConversionService, and RestTemplate. You will also learn about several new adapters including Twitter, AMQP, XMPP, TCP/UDP, JDBC, JMX, and more.
This session consists of 50% slide-ware and 50% live coding.
Building cloud-ready systems using Spring Technologies.
Traditional Enterprise Integration products (i.e., Enterprise Services Bus) promote a proprietary development and deployment model that requires a steep, costly organizational learning curve to successfully adopt. In addition, the more successful you are at adopting these development and deployment models - the more locked in to those proprietary products you become. What if Services Oriented Architecture could be be incrementally adopted in a lower risk, more agile way - led by your current Java developers and systems analysts? What if the end-result of this incremental adoption could simply be a re-factored version of your existing Java business application that is still fully portable across all java run-time environments?
Spring Framework, Spring Integration, and Spring Batch are lightweight, embeddable frameworks that serve to support the incremental adoption of SOA within your business applications, not complex, standalone middleware products that aim to control them (and ultimately you). This presentation will demonstrate how a legacy, vertically-integrated Java application can be re-factored toward a more flexible, modular service oriented architecture by the Spring developers you already have using the tools and platforms (e.g., tcServer) they already know (and love).
This talk has been successfully presented in several international conferences (e.g., http://www.springone2gx.com/conference/new_orleans/2009/10/session?id=15779, http://2010.java2days.com/agenda/building-light-weight-soa-ready-systems-using-spring-technologies) as well as local JUGs and other gatherings.
The future of the Java language and platform.
Oracle has initiated a renewal of Java and one of the more
important goals is to make it easier to write concurrent
software that makes use of all cores in modern hardware.
This will require changes both to the language Java as well
as its virtual machine. I will describe the latest design that
we are working on and demonstrate what can be achieved
today using the JRockit JVM.What Riding the Camel can do to make integration easier for you
Apache Camel is getting more and more attraction in the open source space as an integration framework.
For that reason this talk is about how integration can be made much easier,
flexible and accessible for developer by implementing Apache Camel.
Hear why popular open source projects such as Akka, Activiti, Drools, Grails, Play, ServiceMix, Smooks and various ESB servers have chosen to integration Camel out of the box in their distributions.
We start from the beginning, 'Why' and 'How' Apache Camel got started.
Then we see the influence of the Enterprise Integration Patterns (EIP) has upon Apache Camel.
Showing how this applies in practice with easy to understand examples, highlighting the simplicity and power of Apache Camel. Integrating becomes literally as simple as building routes in 'lego style' by wiring together EIP patterns, processes and transports. This is done using the Camel DSL,
which comes in multiple flavors such as Java, XML, Groovy and Scala.
We then give you an overview of the other features Apache Camel provides out of the box and as well which option you have for running your Apache Camel applications.
We check out what Camel tooling exists, such as the Fuse Developer for Camel.
Then we move on to learn some of the recent additions to the latest Camel version.
As well as peeking into what we have on the roadmap for the 3rd Camel generation.
After this we shift focus to cover the Camel community showing the rising popularity of Apache Camel. As well as touching other open source projects which leverage Apache Camel in any way.
Room J1 - Geek central
Agile Database Development with Liquibase
Most teams manage database change using an ad-hoc system of SQL
migration scripts manually applied to various development, staging,
and production servers. Some even contrive automated processes, but
rarely does this surplus build engineering deliver value directly to
the customer. We should be writing applications, not build tools.
In this session, we'll take a look at a ready-to-use, open-source
database refactoring tool called Liquibase. Liquibase enables
developers to make database changes with confidence, share those
changes in a predictable way with other team members, and apply them
to automated QA builds, staging servers, and production
environments. It provides a credible path to agile database
development, and it integrates well into popular build tools. It's a
key enabler of the culture of database responsibility that your team
might be missing.
Fluent APIs and Internal DSLs with C#
Today’s C# language gives us a number of options for building readable,
maintainable code. In this session we’ll look at building APIs using extension methods, lambda expressions, expressions trees, and more. We’ll start with simple validation scenarios and turn procedural code into code using a declarative functional style. By the end we’ll look at building a LINQ powered rules engine with a DSL configuration API. How to detect and avoid memory and resources leaks in .NET applications
During this session we will analyze the most common leak sources in .NET applications and we will see how to detect them in practice. We will demonstrate with live examples several tools that can help you to troubleshoot your applications.
The goal of this session is to help you fix and avoid leaks in your .NET applications, whether they are built with Windows Forms, WPF, Silverlight, ASP.NET, or as console or Windows services. You will also get advices on how to improve your applications so they become less greedy.Extending VisualVM
As developers and operations gain greater awareness of VisualVM, they often want more. The great news is as VisualVM is built on the NetBeans Rich Client Platform it can be extended in a number of different ways. In this session that is exactly what will be demonstrated. The session will show how one can extend VisualVM to support standard and customized views of JMX Beans and Serviceability Agents.Improving Web Site Performance and Scalability While Saving Money
Can you really improve the customer experience and save money? There are many simple techniques and free tools available that can do both! This session will start with a traditional ASP.NET web site and show step by step how to improve it for both client experience and cost savings. Review the basics of caching and learn how to avoid costly server round trips by using expirations to maximize use of the client's browser and also reduce server side execution time with data caching on the server. Use HTTP compression, minification of JavaScript and CSS, server side viewstate, and image optimization to reduce client downloads by 50-75%. Take advantage of free CDN networks to host jQuery and Ajax files. See how tools such as Ajax Minifier, Fiddler, Network Monitor, and Google Page speed can be used to help diagnose and verify improvements. Be the hero in tight economic times, doing the impossible by using these simple techniques to cut costs and make your customers happy!Room G1 - Developer effectiveness
External DSLs
When building a Domain Specific Language, the first choice you must make is whether it should be internal or external. Most of the recent focus on DSLs has been on the internal variety, but there are compelling use cases for external DSLs as well, expecially considering how good the tools have gotten for building them. This session covers a wide range of topics about external DSLs, including comparing delimeter directed and syntax directed translation, a bit about BNF and language grammars, recursive descent parsing, parser combinators, embedded translation and interpretation, and other topics. Attendees to this session will leave understanding the major issues and opportunities with external DSLs and how to build their own languages. Before your first test, and after
You have probably seen TDD described or presented by grabbing the keyboard and typing in the first test. Sure tests, or descriptions of wanted behaviour comes first, but what you don’t see is what might, or even should, happen in your head before grabbing the keyboard. This session will present some simple tricks that has been shown to help you to get into TDD on the right foot, showing also that there actually is more to TDD than typing. We will also see a few tricks to keep going and some simple thoughts on how to keep your code clean from the start.Fearless Improvement: How to take one step at a time
When you want to cross difficult terrain, you want to make sure that one foot is stable before you move the other. So also with software development.
When practicing an incremental approach to design and architecture, I often find the need to change a simple design into a more advanced one. In the first part of the talk, I will demonstrate how practice helps me find safe ways to execute this change.
We are faced with similar challenges at the product level. In the second part of the talk, I will demonstrate how the same principles allow a software project to release frequently, even in the face of lots of historical baggage.
Visualize your architecture and information
Visualization is an effective method of communication and there is more than UML. Peter will in this presentation show a few of the most common methods and tools to visualize your system's design (or lack of it) and the theories used. You will also be able to visualize how the information in the system looks like from different perspectives in order to detect any "information dept" or how the system behaves in operation.
The purpose of the presentation is to inspire you to use visualization as a technique to improve the quality of your software.
Room G2 - Mobile Solutions
Physics in Android games
Martin Gunnarsson and Pär Sikö

Realistic physics can add a new dimension to many traditional games, and enable a lot of new and creative game concepts. In this presentation we'll show how to integrate a physics engine into Android games and applications. We'll show features like gravity, collisions and joints, and explain how to use them. We'll finish off by showing a simple game incorporating all the topics we've covered, and sharing some valuable tips and tricks.An Enterprise Architect's Guide to iPhone Programming
Last year with a bit of spare time on my hands I decided to lend my hand to iPhone programming, the start was slow, incredibly slow with weeks at a time lost in frustration. Months later however, many months I produced my first iPhone App. Over the following 6 months the money helped hire a programmer and I was back to thinking up new ideas and selling them. Today just under 18 months later we have had two number 1 selling apps, one in iPhone and one in iPad. I'm an enterprise architect, let me talk you through the ups and downs and how an you can apply your enterprise experience and programming skills to Apple's seemingly endless range of cool gadgets. Your experience will give you the edge over all the VB-style point and click "programmers".Developing for Windows Phone 7 with Silverlight Tips &Tricks
In this session you will learn Tips & Tricks that you will find very useful in developing applications for the Windows Phone 7 device. From Caching of XML data and images in IsolatedStorage to Databinding, Templating and more. You will be given the tools that will tremendously speed up your time to market.Cross-platform game development with Unity for Android & iOS
Unity (http://unity3d.com/) has quickly become the game development platform of choice for mobile devices running Android and iOS. Johan Sanneblad from HiQ introduces the platform using hands-on demonstrations and presents some tips and tricks learnt from using the platform in mobile game development projects.Adding proprietary frameworks to Android
Android has grown from a 3% to a 25% market share in one year according to Gartner. Vendors are now looking to introduce support for new hardware in the Android phones. Peter gives an introduction to the Android release
procedure and demonstrates how to add a proprietary solution to the
Android Framework while keeping maintenance and licensing issues at a
minimum.
Room G4 - Cloud computing and Service Oriented Architecture
Enterprise ESBs
A few thousand messages a second, over a hundred million per day, state management, integration with tens of thousands of endpoints, some of the worlds most complex standards, several trillion dollars transacted a year, what are my choices? John will go into some depth into some of todays technology choices for solving this very real problem.Get Your Head in the Clouds with SQL Azure
SQL Azure enables you to utilize "Your data, any place, any time". It offers highly scalable and Internet-facing distributed database services in the cloud for storing and processing relational queries. SQL Azure can help you develop and provision new applications quickly with REST and SOAP based web protocols. The services are built on robust SQL Server database and Windows Server technologies, providing high availability and securityWhat is Hadoop? What is MapReduce? What's it all good for?
In this talk we touch on some of the basics of getting started with Hadoop quickly and easily and what the Hadoop ecosystem currently looks like. We will explore some everyday problems that Hadoop can help you with that you can get started with right now, even without a big cluster or tons of data showing that Hadoop scales both up and down. To cap it off, I'll show some examples of how we have been using Hadoop at Nokia for analytics, business reporting and more.The Rules of SOA
You have been handed the keys and a blank slate to build a new services-based architecture. Are you up for the task? Do you have the knowledge, judgment, and combination of hard and soft skills needed to plan, design, and execute a significant SOA project? Implementing a strong and flexible SOA can be a difficult challenge for an experienced architect, let alone someone with less experience. Many complex architecture projects end in failure, or are scaled back so that something can be achieved in a reasonable amount of time. In this session Jeff explores the key characteristics of successful SOA projects. He covers some of the patterns, and anti-patterns, tool sets, and strategies that he himself learned the hard way - through his own trial and error experiences as an architect. Last, he provides a strategy and blueprint for achieving a high likelihood of success in your SOA project.
Key session topics include:
* How to apply SOA patterns to different classes of problems;
* The common failures of a SOA project and how to prevent them;
* Architectural strategies that offer the best chance of achieving project success;
* And more.
Why this session delivers specific time-saving/cost-cutting expertise: Architects and development teams embarking on an SOA strategy will find this session especially beneficial, as this kind of expert advice is required in order to avoid making the same mistakes that have been made many times in the past. This type of advice can save you months of lost design and development time, and hundreds of thousands of dollars in poorly conceived and executed projects.
At the Extremities of Extreme: How to achieve continuous integration, continuous testing and real-time collaboration within the cloud
Cloud computing is this year’s hot topic. But what are the implications for agile application development? By moving the whole development environment to the cloud, we are no longer limited by the number of people who can comfortably fit around a single workstation; suddenly an entire team of programmers can work together on the same live code base. But it is not enough to have access to the code or even the running application; to get a dispersed team to collaborate effectively you need more than a shared repository. Getting real collaboration, similar to putting everyone in the same room, is a significant challenge and today’s tools are surprisingly limited.
Cincom has run a number of highly distributed development teams for the last ten years. Recently we have been working on a process called Wolf Pack Programming™, exploring how development teams can collaborate more closely and how this collaboration might be brought into a distributed model. We have run a series of workshops using this process and have a range of interesting findings about pair programming, team collaboration in a single code space, continuous integration and continuous testing. In this experience report, we will discuss our observations as well as our current thinking on what might be needed to make cloud-based collaboration as effective as co-location.
Room J2 - For testers
Scrum + SBTM = love
Scrum, many of us testers are or will be working with this project model. I see many presentations and war stories about how bad this is for testing and how confused testers are when in a scrum team. What is this fuzz about? There is no need to worry, this is good for us! I will present why Scrum and Session Based Test Management (SBTM) is a perfect couple. I will show you what tweaks and changes you can do to SBTM to make it a great fit with Scrum. With this our testing becomes visible, credible and honest. Our testing will stand up for scrutiny instead of hiding in the dark. Accelerate your testing skills
Are you Average Joe? Do you get recognized for your skills? Do you ever get better at what you do? So what does it take to be a good tester?
We rely too much on our employers will serve us right training. Instead what we need is to continuously work on our development. You can be in charge and in control of your development and i will help you on how you can get to be in the top 5% of testers. My presentation looks at the various sources where you can learn from and also contribute to. I have divided them into three categories, “personal”, “around me for free” and “costs a bit”. This to enable you to accelerate your personal development no matter what financial constrains you may have. It is all up to you!
Status: Tested
Testers are probably the best friends a programmer or project manager can have. We help programmers by discovering bugs before they escape into the wild and we help project managers report quality related information to the product owners so they can make informed decisions about their product.
But what happens when bugs become just a number on a dashboard somewhere? Or when the all the information we have acquired about a product ends up as a single percentage metric on some PowerPoint slide titled “Requirements Coverage” sent to a faceless steering group?
In this presentation I’ll give you my take on why an emphasis on numbers and percentages can spoil any amount of good testing and why I think project managers, programmers and testers alike need to be able to recognize and steer clear of test reports like: “Yes, I’ve tested all the requirements and I’ve found 5 bugs.”The Eye of a Skilled Software Tester
Any ambitious software development team needs skilled software testers that can find defects and information that machines can't give us.
Besides technical know-how, business knowledge, and communication skills, it is important to have an eye that wants to see errors, sees many types, looks at many places, looks often, and focus on what's important.
The presentation will fill a corner of Marick's Testing Quadrant, introduce the software potato, and talk about which quality characteristics that need manual testing. You will not learn how to actually do this testing, but you'll hopefully be inspired to learn, or motivate others.
Testable requirements" - how to break down requirements into testable chunks, and design test cases around them.
One thing that all testers wish for is that requirements should be complete, precise and stable. But how do we do if reality is not so? How can we test effectively even if the requirements are only on a global level or if the requirements don’t’ exist? And how do we ensure that regardless of how the requirements look, we always make the best out of the situation? These questions and many more will be answered in this talk.Room G3 - Web
jQuery: Ajax Made Easy
Sure, Ajax might not be the hardest thing you'll have to do on your current project, but that doesn't mean we can't use a little help here and there. While there are a plethora of excellent choices in the Ajax library space, jQuery is fast becoming one of the most popular. In this talk, we'll see why. In addition to it's outstanding support for CSS selectors, dirt simple DOM manipulation, event handling and animations, jQuery also supports a rich ecosystem of plugins that provide an abundance of top notch widgets. Using various examples, this talk will help you understand what jQuery can do so you can see if it's right for your next project.jWebSocket - Boosting Web Communication with WebSockets
Alexander Schulze and Claudia Gillrath M.A.

This session imparts all aspects for the successful introduction and use of WebSockets in cross-browser and cross-platform compatible, stationary and mobile, real-time web applications. Security and reliability, available features and APIs appear on the agenda just as server extensions and the implementation of own business logic - from a stand-alone system up to scaling in the cloud.
A short live coding demonstrates how to set up a jWebSocket server, create a service and deploy it to the audience in just a few minutes. Various interactive live demos like photo-exchange, chats, online-gaming and online-collaboration illustrate the interoperability and future of WebSockets.
All You Need To Get Going with Silverlight
An accelerated introduction to Silverlight programming. After attending this session you will understand the basic building blocks of a Silverlight application and gain insight into the overall architecture of the browser plug-in. You’ll also get a solid understanding of how RIA development differ from traditional web development in terms of deployment and data access.
The session will consist of a ridiculous onslaught of live demonstrations.
Cascading Styles Sheets (CSS) for ASP.NET Developers
Do you still use tables to layout your user interface? Do you still use the tag or have presentation information scattered throughout your markup? Learn how to leverage CSS to separate your content and presentation, and the many benfits it provides. Review selectors, inheritance, and grouping. Learn common techniques for providing for a flexible layout and design that can be modified easily later. Discover the media attribute to target different styles for screen and print. Review the new CSS 3 improvements, and what browsers support them. See how to maximize performance when using CSS via proper use of HTTP compression, minification, and expirations. HTML 5
HTML is probably the most widespread data format in existence. But, it hasn’t keep up with the demands from developers. The last update to the HTML standard was thirteen years ago. Now, that’s changing, HTML5 is arriving fast. In this talk, we will look into what’s coming and why you should care. During the talk, we will also write code to show the major new features.Room K2 - Software Development Teams
Knowledge Sharing Key to effective agile software development
Ask anyone after a project what one thing that could have made the biggest difference on the outcome. "If we knew then what we know today" is a common answer. But how much time do you really spend on learning while executing a project?
In this talk I will show how successful agile teams - using feedback as a core value - explicitly focus on improving learning as a part of their process. I will then show how to go further and make knowledge sharing a key success factor for your organization.
Code Debt
What it is, where it comes from, what it costs, and how to deal with it.
We’re all used to dealing with code that – all too obviously – as a history.
Tangled code, of the sort that many of us have to deal with every day, didn’t
get that way by itself: it’s a result of a sequence of design decisions made on the basis of mixed, conflicting and sometimes unclear information, assumptions and abilities. How do we convey to our teams why design matters? It’s not about the code working or being efficient or reliable, it is
about the load that bad design puts on a project.
This session introduces techniques for surfacing the issues caused by bad code and for improving the team’s ability to minimize and mange code debt. The aim is to help participants move themselves and their teams to a higher level of design ability.
Outline
• Introduction. A participative exercise will underline the message of this session: that code debt slows us down.
• What is code debt? A brief investigation into code quality, and how debt gets in the way. The 5 levels of team capability in dealing with debt. Some examples of debt in a “well-‐known open-‐source project”.
• Forensic accounting. How does code get this way? We’ll look at the sequence of decisions, none of them unreasonable, that lead to a debt-‐
ridden codebase.
• Dealing with Debt. Some ideas on working with teams to tackle debt, and to move up the ladder of capability.
History
This session grew out of work undertaken with clients, and was developed and delivered by Peter Marks and David Harvey at SPA2008, and with updates at QCON 2009 and AgileCambridge 2010. It has received strongly positive feedback in all venues. Pairing is Fun!
From its start in Extreme Programming, pair programming has become one of the core practices for Agile development teams. In this session, we’ll have fun while doing pairing and learning that pairing is NOT just for programmers!
Highly interactive, lots of fun.The budget, the plan and the tracking
All projects strive to deliver the wanted result on time and on budget. To do that a plan is devised, often based on the budget. And the tracking becomes a matter of staying on the plan. But since they are very similar few realise that they are trying to achieve three very different goals using the same data. The budget becomes the plan, which also should be kept. This session will try to help you see the reasons why this might not be an optimal project management principle and also suggest a different view which takes its basis in the three different goals that we are trying to fulfil with our budgeting, planning and tracking.10 pitfalls when implementing Kanban
”How hard can it be” - visualize flow (cool) - and we’re done (right)? Four weeks later you got a visual board which people slowly starts to ignore and your kanban experiment slides into entrophy death. Good news - it doesn’t need to be that way. Bad news – it’s you who makes the difference.
Let me share my top 10 pitfalls implementing kanban, based on experience from software, operations and support.
Room K1 - Software Development Leaders
Agile Pragmatics And Agile Fanatics
Going back to the Agile Manifesto, we see basic principles which are sound and reflect a pragmatic view of programming.
Today we see many different ideas within the same realm, Agile and Lean. Selling similar, but not identical, ideas can sometimes lead to a religious war, where not doing everything by the book is blasphemous.
The agile and lean communities have found a number of good practices that we should try, but blindly doing scrum as a method might be far worse than doing scrum-but.
This will be a discussion on how to utilize the pragmatic, without turning fanatic.Complexity vs. Lean: The Big Showdown
Agile software development is (in part) based on the idea that software teams are complex adaptive systems. And Lean software development is (in part) based on systems thinking. Many Agile and Lean experts have borrowed terms from complexity theory (like "self organization" and "emergence").
But what is the difference between complexity theory and systems thinking? And how does complexity thinking compare to Lean software development? Are they different, or aligned? Can we use one to better understand the other?
Making "management" work with agile
Agile methods often talk about self-empowered, self-starting teams controlling their own environment. This often implies a contradiction in responsibility and authority for the typical manager role. During this talk, we'll look at some of the implications of agile methods and what impact it has on the typical manager role within an organisation. We'll also explore why management is still needed and what it looks like in an agile environment.Agile as a systemic change
Most of the body of knowledge of agility is based on the concept of the team and how a team can improve its performance. While this is a very important first step, the next step is the creation of an agile organisation: high performance teams can give their best when immersed in an ecosystem that supports agility, i.e. it's not just about the team but also about the system in which the team lives.
This presentation shows some organisational systemic concepts and tools that can be very useful for the coach's work: from understanding how agile "transformations" are systemic actions to some intervention methods that will be experienced live.Leadership In Deep Legacy
The only thing trickier than programming in a deep legacy environment is leading in one.
In this session, Mike GeePaw Hill presents how to lead your team as they dig out from the weight of years and years of just plain awful. You'll learn how to help your team:
· choose the right legacy targets;
· manage the time-boxing so the day-job gets done;
· swarm a large class;
· generate interest, support, and yes, even excitement.
Along the way, you'll see GeePaw's Pillars of Coaching in action, as we take real-life legacy situations and turn them into long-term winners. The GeePawHill style, funny and pointed and spot-on accurate, should make this session a winner.Conversation Corner
Do Agile teams need dedicated testers?
Johan Jonasson and Geoff Bache and Marcus Ahnve


Adequate testing is essential to the success of most software projects, and many people make a career as testers. With the rise of agile methods, and developer practices like Test Driven Development, the role of professional tester is changing. In this fishbowl, we’ll be talking about the new challenges and opportunities that emerge when much of the repetitive basic checks that used to be made manually are automated away. What value can a trained tester bring to such an environment?
The discussion is open to everyone, but to get things going, some of the conference speakers have kindly agreed to sit in the fishbowl at the start and share their views on the matter.
Value at any cost
In this seminar, the participants will get the opportunity to try out and compare different prioritization techniques. Afterwards you will ba able to choose the technique most suitable for your environment.Feedback ... but not the annoying microphone-speaker squealy kind
Sarah Taraporewalla and Patrick Kua

When was the last time you gave someone feedback? When did you last get some feedback? What was the most useful piece of feedback that you've ever received? In this hands-on session Sarah will help us explore feedback as a tool for improvement. We'll be looking at the frequency, context and techniques that make feedback easy, effective and valuable. As a group we'll share experiences with both giving and receiving feedback; from blundered mutterings at the pub to formal annual reviews and everything in between. Come along and pick up some tips for turning your team into feedback professionals.Will the future of Java be decided by the community or by the corporation(s)?
Henrik Ståhl and Adam Bien and Martijn Verburg and Ben Evans



A panel debate moderated by Emily Bache. Audience members are invited to submit questions to our panel of debaters. Each panel member has written a short position statement outlining their opinions (see below). We anticipate lively discussion.
Adam Bien
"By both" :-). Future of Java will be decided by Corporations guided by the experience and community feedback.
Henrik Ståhl
Developers want rapid progress, corporations are generally more conservative. Who should decide what new features are adoption into the Java Platform and on what grounds? What is an appropriate tradeoff between compatibility and innovation? Oracle believes that Java could not be successful without the support of both the corporations and the community. The challenge is to find an appropriate balance.
Martjin Verburg & Ben Evans
Oracle should be expanding the pie (more Java developers/users), but Oracle is perceived to have been involved in driving several vocal and influential Java based communities away. Unlike Oracle product groups, Java communities are fiercely independent and produce the sorts of products and frameworks that continue to prop Java up as one of the defacto languages to choose for any serious development. While we feel that Oracle have an immense amount to offer, the promise that they showed before the acquisition is not something that we think has been fully realised. As passionate Java developers we feel that the platform has the full potential to be the unquestioned software platform for the the decades to come. We feel that Oracle has to realise that the eco-system consists of more than just them. We look for opportunities for both sides to learn from each other and are hopeful that the outcome will be beneficial to all.
How long does it take to write a name?
How long does it take to execute a trivially simple project such as
writing a name on piece of paper? What are the key forces influencing
project length, and what can you do about it?
This short & fun simulation illustrates a very common problem & how to
deal with it. We'll do the simulation and then discuss the lessons
learned and implications on your own projects.
