I spent two days recently enjoying being in Cornwall attending and presenting at the first Cornish agile conference .
The event was a great success with world class speakers (you can see the on the website), and an actual beach party on the thursday night with a band () and hogroast. The organisation was also superb, co-ordinated by . From the attendee perspective, It was great to meet and talk to such a good turn out of passionate developers and companies.
I have some involvement in the genesis of the event. My dad, is working for a company called who are helping companies in cornwall to develop and grow. At some point a while ago, I had connected him with and suggested that a good way to help everyone get into agile was to host a conference. A year or so later, and I found myself down in cornwall amongst some of the people I have massive respect for in the industry. The event has also had a great sponsorship and support from , which makes me really appreciate what an amazing company it is to work for.
Some highlights for me were hearing talking about Lean Startup and running a value stream mapping workshop, reminding us all that software should be FUN, and firing us up to keep our focus on quality codemanship and staying out of the “Anaerobic” zone when developing code. It was also great to see everyone getting down to the code in a dojo with , to have the fantastic helping people with common agile adoption problems, and have talking about TDD. Quite a line-up!
Unfortunately I couldn’t attend my colleague talk as we were speaking at the same time, but I have seen the slides and it sounded awesome, so I hope to catch it another day. Parallell to us was so I missed his talk too, but it sounded like he had a good time.
I managed to make a presentation myself, talking through some of the experiences I have had as a consultant working for ThoughtWorks, and in particular some developer practices. I over estimated the amount of material I was trying to get through but did manage to get to a few key points! For those who attended a couple of interesting jump points to follow up might be , (the tool at the end), and by .
All in all, the event was a great time and I hope that it signifies the beginnings of putting cornwall on the world stage for software development and high tech companies!
I recently (Friday 14th May 2010) gave the closing Keynote at , a one day conference held up in Preston.
The talk was loosely based around a metaphor of mountain climbing and playing with the analogy of being a consultant on an agile project being like a mountain guide. The idea is that someone who is a mountain guide has many years of experience climbing and coaching people on the mountain.
The talk I think was well recieved and generated quite a bit of interest from people, I think because we were talking about real experiences on our current project.
I co-presented with Mark Crossfield who is the Tech Lead on the team I am Coaching at our current client, AutoTrader, and I felt it was an interesting balance between my “Guide” view and his experience leading a team into an Agile project for the first time.
We covered five short stories about our experiences on the project.
Safety First – going beyond CI to pipelines
The Walking Skeleton as a metaphor for iterative feature delivery
Evolution of the codebase
Collective Design
Telling the story of the code
The Slide deck is up on and the talk can be viewed here.
At some point they promise to put up the video of the event at which point I will update this post.
I started writing this post a few weeks ago and since then been in several conversations around the same area, so thought I’d get on an finish it:)
What is the key focus of agile practices ?
To me, it is Delivery of working software.
What do we mean by “delivery” ?
Delivery is software working in production. Even stronger, software that is being used in production.
What does “working” mean ?
This may depend on the currency you have for measuring success. Usually it means improving the bottom line of the company. It might be indirect such as generating interest for a website or simply getting a product delivered at all.
My definition of “Lean” may not be entirely accurate (I’m not an expert) but from my understanding, taking a lean approach, writing the code is only part of the story.
Lean tells us that there is no point in having a backlog of artifacts in the factory if we can’t get them to the customer. We need a good distribution system so that artifacts are pulled down the pipeline as quickly as possible, right from where they are consumed.
For software this means the production environment. Really the production environment, not staging or the ci environment or a dev box.
Setting up the distribution pipeline is as important as any other part of the project. It needs to be automated, reliable and responsive (i.e. as soon as a new feature is required it can be sucked into production as soon as its completed)
Once your delivery pipeline is in place everything else becomes smooth. People stop worrying that they are not going to receive new features quickly and so they feel more able to focus on what the need right now, in smaller chunks which means the delivery system flows more smoothly and the features are produced in a more responsive way.
I just tried to install mono version 2 from darwin ports.
Before starting i uninstalled the mono i had already:
#!/bin/sh -x
#This script removes Mono from an OS X System. It must be run as root
rm -r /Library/Frameworks/Mono.framework
rm -r /Library/Receipts/MonoFramework-SVN.pkg
cd /usr/bin
for i in `ls -al | grep Mono | awk '{print $9}'`; do
rm ${i}
done
First i could search for the mono package by typing
$ port search mono
To begin with this did not show the right version so i did :
$ port selfupdate
This checks for a new version of port and updates its list of available software.
now i see:
coco:~ Jim$ port search mono
mono devel/mono 2.0 Implementation of the .NET Development Framework
mono-addins devel/mono-addins 0.3 Mono.Addins is a framework for creating extensible applications
monodoc devel/monodoc 2.0 Documentation for the Mono .NET Development Framework
monotone devel/monotone 0.41 A distributed version control system
mod_mono www/mod_mono 1.1.16.1 an Apache plug-in for hosting the Mono System.Web classes
coco:~ Jim$
so all good, i ran
port install mono
but get :
darwin_stop_world.c:307: error: 'ppc_thread_state_t' has no member named '__r31'
make[3]: *** [darwin_stop_world.lo] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
A quick search on google brought this:
The instructions here talk about editing this darwin_stop_world.c file and changing some constant values. They give the path to the file for an older version but a bit of ls ing turned up the new folder:
The instructions in the above link talk about some constants not set up correctly. On the line wher ei saw my exception, it was referring to the following bit of code:
Watch out for the top of stack one! its an extra one.
ok this works!
I had to restart the terminal because it didnt seem to find the new programs – it still thought mcs lived in /usr/bin not /opt/local/bin which is where port puts it.
Now i can compile c# version 3.0!!
oh yeah, be sure to use gmcs to compile, not mcs which is the old one.