Friday, October 15, 2010

Spring Extension Factory now on Github

Two years ago I wrote a tiny little piece of software that lets you combine Spring Dynamic Modules and the Equinox Extension Registry in an easy way. Now I found the time to put this SpringExtensionFactory on Github. So if you ever wanted to use Spring Dynamic Modules to inject dependencies into your RCP view and editors - take a look, its quite simple to use... :-)

Wednesday, September 29, 2010

Two things...

The end of September is approaching fast, so its time for me to announce two things...

First the sad part of the story: I will leave it-agile at the end of this month. The reason behind this is basically that I am sick of traveling. Don't misunderstand me, I always tried to make my traveling as comfortable as possible (and it was quite comfortable). But I wish to spent more time being in my home town, being with the family, with my two wonderful kids.

I founded it-agile about six years ago, together with great colleagues and friends to start something new, something great about agile software development, something with true employee participation, where transparency becomes reality, something open for cooperations and with honesty to all our customers. We wanted to build a company that makes a real difference, that doesn't promise everything just to get the contract, that isn't focussed and dogmatic on some religion, a consulting company that doesn't know it better just because we are consultants.
And today, looking back over the past six years, I am so proud that we got it all to work. All wishes became true - and we built a really great company. I learned a lot over the past years and I have to thank all of my colleagues within it-agile and within the projects I was involved in for this absolutely awesome and unforgettable time.

What comes next? I got the chance to join the people at the SpringSource devision of VMware to become part of the STS (SpringSource Tool Suite) team. These are the guys behind the STS, AJDT and the Eclipse Groovy tooling and I am looking forward to work with this great team on amazing developer tooling - and I think (and hope) that I will have some more time to work on some open-source projects, including Equinox Weaving. And last but not least, I will mostly work in Hamburg, my lovely home town... :-)

See you at WJAX in Munich this year!

Monday, September 27, 2010

SE-Radio Episode with Kent Beck is Online

The latest episode on Software Engineering Radio went online yesterday and covers an interview I did with Kent Beck on the history of JUnit and the future of testing and software engineering. I am pretty excited that we got Kent on the show and have him talk about these topics. He is definitely one of the most influential guys in software engineering these days - father of extreme programming, inventor of unit testing, co-creator of JUnit, co-creator of the agile movement, created test-driven development - to name just a few things he created/invented that changed the daily life of many software developers across the planet. I don't know why it took more than 160 episodes to have him on the show, but I think this was not the last episode on SE-Radio talking with Kent Beck... :-)

Saturday, August 28, 2010

Some More Thoughts on Software Architectures

Some month ago I wrote a blog post about some of my thoughts on software architecture and why I think the metaphor of a cathedral is no longer very useful for todays software development. I don't mean that you don't need an architecture when you do agile software development. A good software architecture is absolutely necessary to survive. It is an essential part of each system.

Nevertheless agile software development is based on the idea of embracing change. "Inspect and Adapt" is the secret of success in agile development. The structure of your software emerges over time when you constantly refactor your code. But is this also true for the architecture of the system? Does this architecture emerge over time as well? Or is it adaptable when life changes?

I discussed this a lot over the past years with various people. We typically found two basic contrasting (for this posting simplified) opinions:
  • Opinion 1: The architecture includes the most important technical decisions. It is hard to change those things later on. Therefore the architecture should be defined at the beginning of a project and should experience only minor changes. Major changes in the architecture are considered a bad thing and should be avoided.
  • Opinion 2: The architecture of a system is an artifact that emerges over time. It reacts to change by embracing it. Changing the architecture of a system is considered a good thing and part may be part of your daily live.
While I was always an opinion-2-guy, I always had to admit that some parts of the architecture of a system are hard to change. So changing a large rich-client app to a web-based app might be expensive. The same might be true for changing the implementation language or refactoring a classical three-tier app into a Quasar-like structure.

Then I recorded SE-Radio podcast episode 166 with John Wiegand and listened to him talking about what he calls "Living Architectures":
During the episode he explains the basic architectural decisions behind the Eclipse platform and the Jazz project at IBM. Both architectures are surprisingly simple. They define the general idea of how parts of the system are built and interact. And both don't contain a single word about those things I mentioned above. Even the language is an implementation detail.

The Jazz system is, for example, built around the idea of the web. RESTful services define the heart of the structure. It doesn't matter how those services are implemented, which frameworks they use or how they are internally structured. The whole system might consists out of various languages, various runtime platforms, various infrastructure settings. Even object-orientation becomes an implementation detail of individual services. All things I often thought of being part of the general architecture. But now I know that I was terribly wrong about this.

Of course there are things that are expensive to change. Reimplementing a huge system with a different language might cost you a lot. But the question is: Why do you need to reimplement everything if you switch to another implementation language? The RESTful style, for example, doesn't require such a tight language binding. Its just an example, but it made me think. And it convinced me that "the definition of architecture as the set of things that are hard or expensive to change" leads into the wrong direction.

Architectures are living things. Don't treat them as dead artifacts. And don't be afraid of change. Its a good thing. It reflects your learning. It helps you build better systems.

Wednesday, July 14, 2010

Slides from Java-Forum-Stuttgart 2010

I gave a talk about some lessons learned when using OSGi in various settings at this years Java-Forum-Stuttgart. It's pretty much the talk I gave together with Chris Anisczcyk, Jeff McAffer and Paul VanderLei at this years EclipseCon. Here are the slides we used:

Sunday, May 16, 2010

Eclipse Demo Camp in Hamburg on July 9th - Don't miss it!!!

The upcoming Eclipse Helios Demp Camp in Hamburg on July 9th will be really amazing. Peter and myself are working on a great program for this event and we already have good ideas and suggestions. Apart from that we have organized a new location. The demo camp will take place in the Magazin-Kino in Hamburg, a cinema just for us for this evening. As you can imagine, popcorn, ice-cream, and soft-drinks will be ready for you as well as some more surprises! So don't miss it!!! Join us on July 9th, register here: Helios Demo Camp Hamburg Wiki Page.

See you at the cinema!!!

P.S.: There is no soccer game (FIFA World Cup) that evening. So there is no reason not to come... :-)

Saturday, May 08, 2010

Slides from JAX-2010

I gave a bunch of talks together with colleagues at the JAX 2010 conference last week in Mainz, Germany. Aside of the fact that I enjoyed the conference a lot this year (again), it was fun presenting there. For those of you interested in the slideware:

Thursday, April 22, 2010

Sessionfire Continues to Innovate

A few days ago the team at Sessionfire published its second beta build. Interestingly this new build does not add these basic features you might expect from a presentation tool like direct graphical editing or so. In contrast to that it innovates. Its adds real new stuff to the world of presentations. Things that helps you to improve your presentations, to visualize things for your audience. The big new feature in this build is "Non-Linear Presentations". You no longer need to put your slides in a linear sequence - they aren't anyway. Many of my talks contain different sections and details, sometimes I decide to skip a section, sometimes I just want to show the topics while speaking. This is now directly supported in Sessionfire, giving you the option to create sections and visualize those sections for your audience. You can go into the details on demand or just jump from section to section at your fingertip. Watch the teaser case at YouTube, it shows non-linear presentations among the other new features in a quick overview:

The current Sessionfire beta builds are free. You can download your copy for Windows XP/Vista/7, Mac OS X or Linux from Just make sure you have the latest Java6 installed... :-)

Thursday, March 25, 2010

OSGi Best and Worst Practices at EclipseCon 2010

Together with Jeff McAffer, Chris Anisczcyk and Paul VanderLei I gave a talk on OSGi Best and Worst Practices here at Eclipse 2010. Here are the slides:

Friday, March 12, 2010

Slides on OSGi Best and Worst Practices from Java-User-Group-Meeting in Karlsruhe

I gave a talk at the Java User Group Karlsruhe last week on best and worst practices using OSGi for building business applications (thanks to David for inviting me). You can get the slides from the user group or directly here:
Thanks again for joining! The room was full of people and I especially enjoyed all the great questions and discussions during and after the talk. Thanks again, it was a pleasure to be a guest at the event!

Friday, February 12, 2010

Slides on OSGi Lessons Learned from OOP-2010 Conference

A few weeks ago I gave a talk at the OOP-2010 conference in Munich about the lessons I learned from building business apps on top of OSGi during the past five years. Finally I put the slides online:
Sorry for the delay!

Saturday, January 30, 2010

A Big Thank You for the Feedback

Feedback is an essential force and of priceless value for many things you do in your daily life. It is one of the central elements of agile software development and it is absolutely priceless to get honest and constructive feedback for the work you do. Sometimes its hard to get this feedback, sometimes not. Some of you might know that I am part of the podcast team at Software Engineering Radio, a podcast for professional software developers that publishes a new episode every 14 days under a creative commons license. I don't do as much episodes as I wish, but regularly people write emails to the team saying "thank you for the great work" and telling us that they really like what we do. Now its time for me to say a big THANK YOU back to those guys. Especially this blog entry that I read today is really nice (many many thanks) and gives a lot of motivation!

Thank you!!!

Tuesday, January 12, 2010

Sessionfire is available as public beta

Some of you might know, Matthias and myself are working on a new kind of presentation tool, called Sessionfire. After a period of private alpha testing we are pretty happy that it has left this period just a few days ago and started its public beta stage. So everybody is invited to grab a copy of it and give it a try. Its not open source (maybe it will be some day in the future), but its free to download and free to use (as well as the next beta builds).

The current beta version has a quite limited set of features, so you don't get a replacement for your favorite presentation tool right away. We start with something small, far far away from being feature complete, move forward in small steps while always trying to do something useful in a gorgeous way. So you won't be able to create your presentation completely with Sessionfire at the moment, for example. But you can run your show with Sessionfire, using images, animations, timers, three-dimentional optics, reflections, visual fast-forward and -backward, different 3D-layoutings and some more stuff.

Try it! - Enjoy it!