Monday, October 1, 2012

Rapid Releases - Chatting with Sam Newman


I'm at GOTO this week and I got the chance to sit down with Sam Newman who's doing a talk on rapid releases tomorrow, which I already expected will be really good. My chat confirmed this. When I read the abstract for the talk I got quite interested, because Sam touches of something that I've spent some time thinking about too: How does the software architecture/design of our systems effect our ability to push out software quickly?

I started off asking Sam to give the elevator pitch for why everybody should go to his talk tomorrow. Paraphrasing we should go because most people - when designing systems - start off thinking about "the traditional" set qualities (scalability, availability security, performance and so on), but ignore "ease of change". Ease of change should often be an important quality attribute though, since this is a necessity for speeding up release cycle. In the talk Sam will go into some techniques, or patterns if you will, that can help you move towards making small incremental changes to your systems easily. Which is what you need to do if you want to move to a continuous delivery (or even deployment) model.

I got the impression that Sams talk supplements most of the other talks about continuous delivery, that you might hear, because most of those talks focus a lot on the build pipeline and on automating IT infrastructure, whereas his talk goes into the architecture and design of the system. This angle is important (too). In fact in Sams experience working with clients wanting to move towards continuous delivery some of the first steps most teams need to make are around the software architecture  That is, often he sees situations where there are architectural or design problems in the system that either seriously slows down the development or which hinders doing changes in small increments, which in turn hinders doing small, focused, low risk releases, which ultimately hinders releasing rapidly.

Part of the cure for this is to go into the systems and cutting them up into small well factored services. Aka (in my words) doing SOA right. I asked Sam how this related to DDD - my thinking being that these services follow bounded contexts. The response to this was pretty interesting I think: Sam agrees that these well factored services will and should follow bounded context boundaries  but points out that the way to get there is not by focusing the services around entities or even aggregates, but rather around business capabilities. I think that is a really helpful way to put it.

As I said, talking to Sam only made me more keen on going to his talk, and if any of the above resonates I'd encourage you to go too. I'm sure it'll be both fun and educational.

Saturday, September 15, 2012

Agile Architecture Open Space Conf 2012 - Impressions

I ran AAOSConf Thursday and Friday this week. This is the second year. And this is the second year my employer, MjĂžlner Informatics, has been kind enough to sponsor it all. Based on last year, going into this one I had huge expectations. Happily my expectations were met. Once again, I got to spend two days with a bunch of sharp minds and dedicated software professionals. That alone is great. But combining it with the fact that they are there to share, discuss and push their and each others understanding of that surprisingly complex activity called software development, and you get a very unusual opportunity for learning.

This years conference really confirmed to me that there is very real and very broad push for simplification going on. This includes trends like

  • CQRS and ES
  • Using document stores
  • Cutting down on layering
  • Chopping systems into thinner simpler slices
  • Moving towards continuous delivery
Which were all hot topics that drove some very interesting open space sessions.

On the process side of things there were some very good discussions on the finer points of topics like adopting TDD, the value of co-location, DDD, the value of business alignment vs. the value of efficiency in software development and on managing technical debt.

On the one hand there are the broad trends, and on the other there are the detail pesky details of some of the really hard stuff: That's what makes the open space format great, it's so thoroughly tied to the actual practice going on in real projects, and people are so honest and sharing about their problems and successes that you get the inside track on both the direction things are moving and on which details are the problematic ones.

Enough on my experience with the conference. Here are a few of the tweets from other attendees:












Seems we all had fun learning a lot. Thanks for that! Hope to see you next year!

Sunday, September 9, 2012

GOTO 2012: The Minus Side

Continuing my look at this years GOTO 2012 program; what's missing? Well, on the one hand it's easy to out point topic after topic that isn't on the program. On the other hand the conference can't and shouldn't include everything under sun. Choices have to made. I get that, and I'm happy that the GOTO program committee does too. I like that GOTO sometimes is a bit opinionated (in fact that one of it's main strengths IMO). I also assume they get lots of "there's not enough XYZ" and are probably sick and tired of it ... but that's what I'll giving here anyway. But I will try to qualify.
Getting the to point there are two things the really strike me as missing from this years program:

  1. Unusual .NET. What I mean by this is content about the large and thriving, but to a lot of devs hidden, eco system of community supported .NET (related) technology. Like Nancy or OpenRasta, or ServiceStack or Dapper or Rebus or MassTransit or ChuckNorris etc. There's enough .NET content on the program for my taste. It's just that it's too mainstream. I think it should be more challenging. The danish .NET community is very strong and very knowledgeable. We need and expect a challenge from GOTO. 
  2. Ruby. GOTO is a cross platform, cross community conference. That's another one of it's main strengths. But when I went through the program I saw only one talk with any relation to Ruby: Karl Krukow Calabash talk - which really isn't Ruby oriented at all, but since Calabash supports Cucumber syntax, there's some sort of link to Ruby. I think this is both a pity and strange: The danish Ruby and Rails communities is alive and kicking as far as I can tell form the outside, but with the current program Rubyinst or Railsist would have I hard time justifiying coming to GOTO. Which is a shame, since that makes the conference narrower. I would have loved to see DHH give a keynote. I would have loved to get the "what's new in Rails 3.whatisthelatest" talk or a "state of DSLs in Ruby" talk or ... something even more fun that I don't even know is going on in Ruby land.
But hey, these are just peeves about an otherwise great program.