Great minds think alike, and fools seldom differ."
implies that consensus is often the result of a coincidence or luck. If
you look at the success rate of presentations, you might actually think
couple of months ago I was fortunate enough to be invited to the
Thoughtworks live 2011 event in London. The main topics of this event
were agile (as you’d expect from Thoughtworks) and Continuous Delivery.
The event was run over 2 days, the first...
I’ve found this question while going over my old StackOverflow answers:I'm
using reflection to loop through a Type's properties and set certain
types to their default. Now, I could do a switch on the type and set the
default(Type) explicitly, but I'd...
CQRS stands for Command Query Responsibility Segregation. It's a
pattern that I first heard described by Greg Young. At its heart is
a simple notion that you can use a different model to update
information than the model you use to read information....
Here in Caplin Towers (it’s not really called that) we’ve got a
couple of projectors displaying the Continuous Integration builds up on
the walls. It’s pretty useful until you get to the point where you’ve
got more projects than space on the...
Conquering the Last Mile
I went to the London C.I. Meetup recently where Gus Power (how he
chose a career in I.T. and not as a pro-wrestler with a name like that I
do NOT know) delivered a talk entitled “C.I. The Last Mile”. Gus seems
to have a...
Five quick points about unit tests that will reduce your defect rates.
Always stop to add that simple unit test. You will be amazed how often this discovers a bug or unexplored corner case.Never develop from a main method, find a way to turn it into a test....
There’s a lot of hype around “the
Cloud” and what it can do.One of the things that I am
interested in is Cloud solutions that can help small software companies,
and especially to kickstart software startups. Good tools that
development teams can...
It sounds good to say that you shall not and will not release code with
bugs – that your team has “zero bug tolerance”. It makes for a nice
sound bite. It sounds responsible. And it sounds right. But let’s look
carefully at what this really...
A lot of Sysadmins and developers all over the world write,
meet and talk about
DevOps: How to collaborate better so we can deliver business value
faster. The aim of DevOps
is to get rid of the traditional way of thinking in silos inherent
A recent question on Twitter prompted me to write a quick
blog post about managing cron jobs. As more and more people want to
automate provisioning and deployment of web applications some, maybe
previously manually managed, items come into the fold.
I was setting up a Continuous Delivery system using Maven as the
build tool, Perforce as the SCM and Go (ThoughtWorks’ CI system). All
was going perfectly well until I got to the point when I no longer
wanted to make snapshot builds…
I’ve written about Vagrant previously and the more I use it the more it impresses me and the more it changes how I work. For those that haven’t yet used vagrant
the brief summary is, it’s a way of managing, creating and destroying...
Agile project management and engineering
practices have made great inroads in increasing the productivity and
flexibility of development teams. The ability to rapidly create high
quality software is not sufficient; software needs to be deployed to...
For some reason, people involved in software development have a thing for Manifestos (always with a Capital M). It all started with the Agile Manifesto. Then came the Software Craftsmanship Manifesto, signed by serious programmers big and small, except...
Last year at QCon, I attended a full-day tutorial titled "Secrets of Agile Architecture" hosted by Dan North. I didn't really know what to expect, but I was hoping for some refreshingly new insights on the way I do my job currently.
Well, his talk...
Martin Fowler has recently made a post on the topic of the importance of reproducible builds.
This is a vital principle for any process of continuous integration.
The ability to recreate any given version of your system is essential,
but there are...
I was reading Devops is a poorly executed scam
and just couldn’t resist a reply. Not because of the entertaining
title, but because I both agree and disagree quite strongly with parts
of the post. Read it first if you haven’t already. And yes I know...
The arguments in support of Continuous DeploymentIn a webinar on CD, Kent
Beck explored a fundamental mismatch between rapid cycling in design
and construction, and then getting stuck when we are ready to deploy. He
argues that that queuing theory and...
You do not need to be an expert in Value Stream Mapping to
appreciate the power of speeding up deployment to match the pace
of Agile development. By aligning development with deployment, you
streamline “production” with “consumption.” The...
I have to admit, I was not-so-good with TDD
(Test-driven development). I just didn’t see how it can help me to
deliver a better software. Products and solutions I developed were
pretty much rock solid and it felt good to see them running for years....
I’ve been teaching and practicing agile for several years and there
is definitely a problem with TDD: People find it very difficult to use.
I believe there are certain points, either in the TDD itself or in
people’s interpretation of it, that...
I’ve spent a lot of time in my career working on problems that cross the
lines between development and operations. That’s why I am interested in
the emerging DevOps
community: a bunch of smart people who are trying to bring