May 5, 2013
Music By Programmers - Week #1 Update
The album to raise money for maths and programming workshops at Bletchley Park and The National Museum Of Computing has been out for a week now.
And what a week it's been! Things kicked off on the previous Friday with an article that ended up being the BBC Tech News number two story, getting a link on the news home page, which generated a lot of interest.

Then on Monday we were assisted by a generous tweet from Stephen Fry.

Together with bags of other social media activity, and coverage by PC Pro, The Register and other noteworthy websites, the buzz was enough to propel Music By Programmers into the download bestseller charts on Amazon, iTunes and Google Play.

The limited edition CD went on sale around lunchtime on Monday, and sold out on Tuesday.
The week ended with interviews for other web news sites, as well as BBC local radio, about these computer programmers who were "storming the charts".
Naturally, the web having the short attention span that it does, we've tailed off quite spectacularly since Friday - though as of writing we're still in Amazon's Top 40 Dance & Electronica albums. As the saying goes, we've had our 15 megabytes of fame. Now the real work starts!
Of course, being pop stars for a week isn't really the point of it all - gratifying though it is to see something you've helped create up there among the Daft Punk's and the will.i.am's for a short while. Something to tell the grandchildren. (If I never have granchildren, I'll borrow someone else's and tell them.)
A huge "thank you" if you bought the album and spread the word. With no marketing budget and no label behind us, we're relying completely on word-of-mouth. Without your support, none of this would be possible.
How this all translate into sales, and therefore money raised, we shall have to wait and see. It can take months to get sales figures - and money - from the online retailers. My feeling is that we're well on our way to achieving our target, though.
But I doubt we're there yet, so we still need your support to make our goals happen. If you've not bought your copy yet, please consider downloading it today. Roughly £4-5 from every sale goes directly to these educational projects, so every download counts.
April 29, 2013
Music By Programmers - Help Start A Programming Club

If you've not heard yet, myself and five other programmer-type dudes have been working on an album of electronic music to raise the money to start a computer programming club at The National Museum Of Computing and parent-child maths workshops at Bletchley Park.
The album, Music By Programmers, goes on sale today. You can download it from iTunes, Amazon and Google Play.
Every penny of the profits goes directly to these projects, and every download is essentially a donation of £4-5, depending on where you buy it. Be assured: every download makes a difference.
You'll also be able to buy a very limited edition CD version, featuring bonus tracks in a spiffy full-colour digipak from the Bletchley Park online shop later today. Only 50 of these exist.
Your support is vital to making these projects possible. If electronica's not your cup of tea, you can donate instead. There's a link on the website.
You can find out more by visiting the Music By Programmers website.
March 20, 2013
Music By Programmers Release Date, April 29th
Just a quick post for those of you who want to support maths and programming education, or who just like electronica.The official release date for the Music By Programmers album is Monday April 29th.

It'll be available for download from all the usual outlets (iTunes, Amazon etc), and every penny of the proceeds will go directly towards parent-child maths workshops at Bletchley Park and programming workshops at The National Museum Of Computing.
These are very worthwhile programmes, and your support is vital to helping more children get to grips with maths and computing.
The new web site's up, so you can find out more and hear track previews at http://www.musicbyprogrammers.com
March 9, 2013
Music By Programmers - Raising Money To Educate New Programmers
As some of the more eagle-eyed among my Twitter brethren may have noticed, for the last few months I've been up to something in rare spare moments.Finally, I can reveal what it is.
Over the last 4 years, I've spearheaded various shenanigans to raise money for the Bletchley Park Trust, and I've also been plenty busy rattling cages on the subject of getting kids programming.
I'm also a bit of an amateur musician (very amateur, some might say).
My latest wheeze has been to combine all these passions of mine, and the end product is called Music By Programmers.
Six software developers - real ones, coding day-to-day - who make music in our spare time have recorded a compilation album of electronic music which evokes that classic era when the likes of Kraftwerk, Jean Michel Jarre and Tangerine Dream were at their peak. When I began learning to program, this kind of music was always on in the background; the soundtrack to a golden age of kids learning to code.
We've got nine tracks from Chris Whitworth, Yuriy O'Donnell, Peter Camfield, Lance Walton, Brian Hogan and me. And, even if I say so myself, they're jolly spiffy.
Here's a sneak preview:
Made using only software (including the mastering, with Nagasaki Sound in Las Vegas generously donating their time and considerable expertise to make it sound - y'know - proper professional, like), we're going to try and sell as many downloads of the Music For Programmers LP as we can, and every penny of the profits will go directly to educational programmes at The National Museum Of Computing and Bletchley Park.
This is very new territory for all of us, and we have no idea how much we might make, but we've set a target to sell 2000 downloads and raise £10,000 in total. This may prove to be naive, foolish optimism. Or it may be we're underestimating the potential audience lurking out there. But, having raised similar sums several times before, we feel this might be a realistic goal.
£5,000 could sponsor programming events for kids at TNMOC, or codebreaking camps at Bletchley Park. It could buy a crate-load of Raspberry Pi's, or build web-based cryptography games for schools to use. Heck, we could do some genuine good with £50! It all helps.
The album will be released as a download in late April, with a bit of a fanfare to let the world and her husband know it's available, but in the meantime, we could really use some help spreading the word and building a buzz - well, you know how it is with this "Pop Music" that they have nowadays.
So, please check out the preview video, follow @ProgrammerMusic on Twitter and/or like us on Facebook.
Please spread the word - re-tweet, share, tell your friends, get it tattooed on your private parts and wave it at visiting royalty*, paint it on the side of passing asteroids**, and whatever else you can do to help us get the word out.
If we can reach the right people and meet our target of raising £10,000, that would do a lot of good for a lot of children. And you get an iron-clad excuse to do some cheesy 80's dancing, too. You can even roll up the sleeves of your jacket (the one with the giant shoulder pads), if you like. That's a Win-Win, in my book.
* Don't, obviously
** No seriously, though - don't
August 28, 2012
Global Day Of Code Retreat, Dec 8th
Just a quicky.I'm organising a code retreat here in the UK to be part of the Global Day of Code Retreat on Saturday Dec 8th.
I've still to clear it with them, but my first choice of venue would be Bletchley Park, if they can accomodate us. Otherwise, I have a venue in central London in mind.
Either way, Dec 8th will be the date to put in your diary. As we're the home of the Software Craftsmanship conference, and as it's the Turing Centenary year, I think we might do something a little different. This won't be your run-of-the-mill vanilla code retreat.
So, definitely Dec 8th. Possibly Bletchley Park. Otherwise central London. Click here to RVSP.
I'll be seeking sponsors to pay for the catering and so on. So if your company is looking to attract passionate developers, drop me a line.
UPDATE: Bletchley Park are unable to host us due to an as-yet unpublished event happening over that weekend, so the venue will be in central London. Details TBA soon.
August 17, 2012
Software Apprenticeships Summit, Sept 20th
On Sept 20th I'll be chairing a summit for people interested in long-term mentoring of aspiring software developers.I'll explain a bit of the background. For the last year, I've been looking into this whole question of apprenticeships for software developers, talking to employers, universities and professional bodies who might be interested in getting involved. And guess what? They aren't.
With very few exceptions, it seems, the traditional alliances between employers, higher education and professional institutions hasn't got legs when we're talking about real and genuinely meaningful apprenticeships for developers.
This leaves two main groups still in the game. There are young people out there who are interested in learning how to be software developers and who've contacted me asking about apprenticeships. And there are practitioners who've expressed willingness to take on apprentices in some form.
The good news is that, in theory, that's all we need to get started.
I plan to take on two apprentices in the next year. Alas, I'm not in a position to offer them employment. Doubtless, many of us won't be. But what I am able to offer is ongoing guidance and mentoring, as well as opportunities that they might not otherwise have found.
As a mentor, I'll enter into a contract with my apprentices that stipulates a roadmap for what I want them to learn and to do, and will work with them on a regular basis - e.g., a couple of hours a week - to offer guidance and to pair program with them.
Once a year - probably during summer recess - I'll ask my apprentices to undertake a significant challenge. They'll be tasked with creating working software of the order of a dozen or so use cases for some good cause. I'll be acting as the "customer" and monitoring their progress, keeping an eye on the quality of the software they create.
Year on year, the challenges will get more sophisticated and the quality bar will be set higher. My aim is that after a few years, the projects will be not just like real-world software development, but a whole heap better than that. Being fiendish, I plan to make them build on the code they wrote in the previous year, and improve it year on year. Yes, that much better!
Outside of development skills, I'll also be helping them out by paying for them to attend a couple of conferences each year, so they can meet real developers and see what the zeitgeist is like.
I'll be asking them to blog throughout, and eventually to teach and mentor other developers, as I feel that can be a hugely valuable experience.
And, if they do well, I'll be promoting them as professionals as they become fully rounded developers. My hope is that when they apply for their first development job, they'll not just have solid development skills, people skills and experience of writing software under similar constraints to industry, but they'll be known quantities in our community, with a body of work people can look at, blogs, talks at conferences and other public-facing stuff people can judge them on. And judge me on, as their mentor.
Perhaps in 5-6 years time, Codemanship might be in a position to take them on full-time. But that is not the be-all and end-all. I'm fully prepared that this will cost me time and money and that I personally won't gain (in those terms) from doing it.
For those among you who feel that anyone who does all this and gets nothing in return is a fool, I'd like to introduce you to this thing called society. Software development as a whole could benefit, and that's plenty benefit for me. I'll also get a kick out of doing it. I'm funny like that.
What I'd really like is to see a bunch if us take on apprentices, and then we can share this experience and amplify the benefits. If we can agree on a basic foundation that would mean that any apprentice mentored by us would have to achieve a shared vision of what we think it means to be a software developer, and co-ordinate and collaborate, I believe a lot more could be achieved at a national and maybe even an international level.
So I'm organising this little get-together at Bletchley Park on Sept 20th to set out my stall, so to speak, and explain what I'm going to be doing, and then no doubt have a lively discussion with others like me, kicking ideas around in an informal setting, to see if we can begin to point ourselves in roughly the same direction.
My proposal is that we form a loose alliance beneath a recognisable banner - e.g., a guild, or an institute, or something else that wouldn't look out of place on an apprentice's CV - establish a foundation for skills and knowledge (without smearing marketing hype all over it, I hope) and also decide where/how we set the bar for mentors. Because not every developer's necessarily going to be a great role model, let's face it.
This alliance might do little more than promote a shared vision, act as a gatekeeper to fliter out ne'er-do-wells, and maybe organise a conference where applicants can meet mentors once a year (in the spring?), and possibly even graduation challenges where apprentices prove their metal on a bigger project.
Strength in numbers, basically.
If you're think of mentoring a software developer, and would like to talk with others like you, I really hope you can join us on Sept 20th.
June 16, 2012
Software Craftsmanship 2012 - Thank You
This is just a post to say thank you to everyone involved with Thursday's Software Craftsmanship 2012 conference.SC2012 was the fourth one I've organised (and the last - more about that later), and it looks like it was possibly also the best. More passionate programmers, bigger and more challenging workshops, a hog roast and a chance to become proud owners of some rare computing and code-breaking history.
170 people gathered for 5 family-sized workshops with a computer science theme to celebrate 100 years since the birth of Alan Turing. They were expertly led by Chris Parsons & Steve Tooke, Hibri Marzook and Paul Shannon, Daan van Berkel, Jamie Dobson & Steve Freeman, and my own session overseen by Clive Evans and Antony Denyer. If you sometimes think hands-on workshops at conferences cater too much for beginners, there was no fear of that at SC2012, as participants flexed their muscles and got to grips with graph theory, cryptography, combinatorial mathematics and three-handed pairing, while simultaneously exercising their TDD, refactoring, CI and DevOps chops.
Our generous sponsors, 7digital, got stuck in and 7digital developers were with us in force. i'm very grateful for their support, and the support of our sponsors at previous conferences. As every penny of the ticket sales go to Bletchley Park, we rely on sponsorship to cover our costs. Without them, we would not have raised over £40,000 for projects at Bletchley Park.
Huge thanks also to the Raspberry Pi Foundation (and especially to Eben Upton, who made a mercy dash all the way from Cambridge to make sure we had a computer to auction - a genuinely very nice man) and to the kind folks at ModMyPi, who donated a unique 3D-printed prototype case (and very spiffy it is, too) for auction. Thanks, too, to The National Museum of Computing for digging up some amazing items like a Colossus valve and an Algol compiler on paper tape. Our auction raised over £1200 for TNMOC, which they plan to invest in Raspberry Pi's and Arduinos for their educational outreach program. TNMOC kindly opened early and late to give participants more time to look around at their extraordinary collection.
Thanks are also due for the brilliant folks at the Bletchley Park Trust for being the perfect hosts, and especially to Claire Urwin (her maiden name - congratulations, Claire!) and her team, who took care of a million and one tiny-but-important details for us. If Codemanship had to bear this burden... well, frankly, I'd rather not think about it!
And a round of applause for our tour guides and the other passionate and selfless volunteers who gave us better service than I've seen from paid staff in many other conference venues. These people care deeply about Bletchley Park and put their heart and soul into keeping it running. This marriage of a community that cares passionately about their discipline and a venue that cares passionately about our computing and mathematical heritage works extremely well. Even though I won't be organising the conference in future, I'll ensure that this marriage continues.
And finally, thanks to everyone who came and supported the conference, not just this year but over all four years I've chaired. I'd be deluded to think that the continued growth of the conference is down to anything else. You make Software Craftsmanship what it is, with your energy and enthusiasm and willingness to get stuck in and be out of your comfort zones, and do it all with humility and good humour. It's been an enormous pleasure to organise these events - one of the highlights of my life so far - and a privilege to meet so many genuinely passionate, talented and just-darned-nice software professionals.
If you were to press me for a definition of a "software craftsman", I don't think I could put it into words. But if anyone asks, I'll tell them to go to the Software Craftsmanship conference, and when they get back, I'll say "you see? - like that!"
Lastly, if you were at the conference, you'll know that Software Craftsmanship now has a new organiser. Codemanship will continue to play a part, and I'll be a very vocal champion for it for as long as it lasts. But SC2013 is in a very good, but hopefully different, pair of hands. I'm keen to see it go from strength to strength, and to see it evolve and surprise us all. but it will also retain some key elements that make it "the Software Craftsmanship conference". Just as Dr Who wouldn't be Dr Who without the police box and the quirky costume and the theme tune, SC2013 will be no doubt quite different, but still fundamentally the same. I'll be making a full announcement as soon as we've squared all the corners.
Assuming civilisation doesn't collapse, I will be at SC2013, and I'm really looking forward to seeing you there.
June 10, 2012
Software Craftsmen Raise £15,000 For Bletchley Park
This press release is supposed to go out tomorrow, but I've cleared it with the folks at Bletchley Park to post it here now. Over the three years we've been holding the conference at Bletchley Park, you lovely people have generously given not just your time and enthusiasm, but also over £40,000 of your hard-earned cash to help with projects there. We want you to know just how much it's appreciated, and we're looking forward to seeing many of you again for SC2012 on Thursday.Best wishes,
Jason
SOFTWARE CRAFTSMEN RAISE £15,000 FOR BLETCHLEY PARK
Released: 11th June 2012
This Thursday sees Bletchley Park playing host to the fourth annual international conference on Software Craftsmanship, and ticket sales have raised in excess of £15,000 to help with museum projects at the world-famous heritage site.
Software Craftsmanship 2012 will be the third time the conference has been held at Bletchley Park, and since 2010, it has raised over £40,000. The money has been put towards projects like the renovation of the museum in B Block that was opened by the Queen in 2011, and the new Life & Works of Alan Turing Exhibition, which opened with a ribbon-cutting ceremony by TV presenter James May earlier this year.
Conference chair, Jason Gorman is a patron of the Bletchley Park Trust and their biggest private fundraiser. He explains: "Bletchley Park has played a pivotal role in the development of modern computing, and is a Mecca for the software craftsmanship community, making it the perfect venue."
"There's a real community spirit about the conference, and we're very grateful to all the amazingly talented software developers who've generously given their time. I believe Bletchley Park plays a big part in building the goodwill that the conference runs on."
The conference is a community event which focuses on technical disciplines for creating high quality software, and regularly attracts some of the most respected software professionals from around the world.
This year's conference is part of the celebrations for the centenary of computing pioneer Alan Turing's birth, and has a computer science theme. All of the hands-on workshops will feature a well-known computing algorithm, around which workshop leaders have built games and challenges that are designed to stretch the skills of the participants.
After chairing the conference for four years, Gorman will be handing the reigns over to a new organiser for 2013 and beyond.
"It's time for someone else to have a go, and introduce some fresh ideas. But whoever organises the conference from now on, I'll ensure that it will be run at Bletchley Park, and it will continue to raise money and play a part in building Bletchley Park for the future."
ENDS
June 5, 2012
SC2012 Schedule Announced
With Software Craftsmanship 2012 just around the corner, now seems like a good time to reveal some of the mammoth sessions we have lined up for your entertainment.Download the schedule
I've made a conscious decision this year to encourage a smaller selection of more in-depth sessions, as always with a major hands-on element to stretch our coding muscles.
Generating De Bruijn Sequences - Daan van Berkel (2 hours)
Daan kicks us off with a session on generating De Bruijn sequences. Daan has created a GitHub project with a presentation and a Wiki where his discusses his session proposal. Daan will provide you with a set of unit tests, and your goal will be to make them pass by implementing the algorithm in Java.
Keywords: De Bruijn, Java, GitHub
Pair Programming Interviews - Hibri Marzook (2 hours)
Hibri works at our sponsor 7digital and has come up with a great session on using pair programming to gauge a candidate's basic abilities (and not just technical). Participants will test-drive in any programming language they like to implement a Linked List in the first part of the session and then Quick Sort in the second half, leaving plenty of time for discussion and lively debate on the use of of pair programming in the hiring process and the roles played within the pairs in such interviews.
Keywords: Pair Programming, TDD, Linked List, Quick Sort
Pathfinding Peril - Chris Parsons (2 hours)
Chris has run some very popular sesions at previous SC conferences, and this year has come up with a real belter. Building on the engine introduced by Matt Wynne at SC2010 for a "Robot Tournament", where the "robots" were players in a game of Tic-Tac-Toe, teams will create and evolve robots that will find their way through a maze, using the A* ("A-star") algorithm to search for the shortest path. Robots can be written in any Linux-compatible language (e.g., Ruby, Python, Perl, Haskell, Java), if memory serves. Chris will provide a Ruby gem to parse the mazes.
Keywords: Ruby, Linux, A-star, Robot Tournament, Maze, Graph, Game
Open Space (facilitators TBA) - 2 hours
In the afternoon, as well as some great planned sessions, we've opted this year to also leave room for impromptu short sessions. Again, there must be a hands-on coding element, but we're leaving the topics completely free - whatever you want to cover, it could be in the Open Space. You will need to ensure you can project your laptop video out put on a VGA projector (so bring those fiddly little adaptors if you're using a Mac). Session proposals for up to 30 minutes in length will be solicited during the morning, and we'll be letting you vote for the ones you want to see during our prolonged lunch break.
Keywords: Open Space, vote, anything goes
The Butterfly Flaps Its Wings: Is TDD Complex Or Simple? - Jamie Dobson & Steve Freeman (2 hours)
This session is an experiment that explores how different starting conditions (constraints) can affect the outcome when test-driving a problem. The idea is to have each pair program up a common example, an Engima machine, but with different starting conditions. Some will be environmental, such as functional vs. OO languages, others will be more about approach. jamie and Steve will ask people to checkpoint the code at intervals during the session to see how the design is evolving. We're very excited to have this session run at Bletchley Park, a place so closely identified with the Enigma machine, so look forward to something a little special. This session is being run at SPA2012, too - you can read their full outline here.
Keywords: Enigma, Cryptography, TDD, Complexity, Butterfly Effect
Team Dojo - Jason Gorman, Antony Denyer, Clive Evans (2 hours)
Team Dojo is an exercise in collaborative design and development. Participants will form into teams, each at their own table. Each team will be assigned a set of user stories and acceptance tests describing different aspects of the same problem. As a team, working in whatever style you wish and in whatever language you like (though help will be on hand for Java and .NET specifically), you will have 2 hours to create working software that solves the problem and passes all of the acceptance tests. The problem you'll be asked to solve will include a reapplication of a very famous network algorithm - PageRank - to calculate the "kudos" of a person within a professional social network, as well as one of a range of shortest-path algorithms to calculate the number of degrees of seperation between people connected in the network. Having run 2-day team workshops on collaborative design, I promise that this session will test your abilities in communicating, collaborating and making decisions to the absolute limit. You're welcome to use any infrastructure you like to share and manage source code and corroborate builds (e.g., GitHub, Bamboo, Cloudbees etc). Although teams won't be spoonfed solutions, hints and pointers will be provided if requested to keep things moving. Be prepared to use your initiative! Points will be awarded to teams for every acceptance test they manage to pass within the time allotted.
Keywords: collaboration, design, continuous integration, PageRank
In the evening, we have a proper hog roast planned (wth veggie options) and we're rustling up a haul of nerd-friendly swag for an auction to raise money for The National Museum of Computing, which already includes some very sexy one-of-a-kind items, so bring your cheque book if you want to be the proud owner of a piece of computing heritage and contribute to the brilliant work TNMOC do in preserving that heritage for us all.
The bar will open at 4,30pm, and once you've grabbed a drink I hope you'll join us in the ballroom to hear about the possibilities for SC2013 and register your vote for next year's organiser.
April 30, 2012
SC2012 Will Be My Last. Could SC2013 Be Your First?
This year's Software Craftsmanship conference will be my fourth, and if you know me, then you probably won't be surprised to hear that when I started the conference in 2009, I had a plan.I told myself I would run 3 more SC conferences (after the first sold out) at Bletchley Park, and that the conference would be raising funds for that august institution.
We're on track to raise about £15,000 this year (touch wood), which would bring the total raised by all you generous codesmiths to roughly £40,000. This money has been spent wisely by the trust, and has contributed significantly to the refurbishment of the museum in B Block, as well as the new Alan Turing exhibition.
This year's conference will be the last that I organise personally. So what's next in the plan?
Well, that depends on you. If the conference is going to continue - and presumably evolve - then I'd like it to go to a good home. I would hope that any group who organised SC2013 and beyond feels as passionately about software as I do, and as all the great session leaders and everyone who's participated in and supported SC20xx do, too.
I won't lie to you; this is not a commercial conference. Unlike events that can attract CTOs, IT managers, project and programme managers and other people with budgets to spend, SC20xx is never going to attract vast amounts of sponsorship. So nobody's going to get paid to run this conference, and lavish goody bags and dancing girls are off the menu.
But if the format were changed to attract non-programmers, I feel strongly that it just wouldn't be the Software Craftsmanship conference.
I also feel strongly that Bletchley Park is the right home for it, and that it should be used to raise funds for projects there.
The hard-and-fast requirement I stipulated after the first conference that every session must involve live coding also comes with its drawbacks. Developers can feel self-conscious about programming in front of their peers, although anyone who's run a session from SC2010 onwards will probably tell you that this particular audience is much more enthusiastic and forgiving than most.
But, even though drumming up session leaders can be a pain in the arse, we have consistently managed to attract great sessions from great session leaders, and the roll call over the last 3 years is something I'm extremely proud of. It takes some arm-twisting and an element of horse whispering, but it definitely is worth it in the end. And not just for us, but also for those session leaders who were dipping their toes in the water for the first time. Many are now regulars at other conferences. Some have even started their own events. This is a good place to get seen.
And, again, without the hands-on element, would this be the Software Craftsmanship conference, or just A.N.Other software conference where folk dazzle us with BS about stuff they don't even do themselves? For me, this is the heart of the conference: it cuts through all that BS. Don't tell us, show us! And then let us have a go!
So this is the plan:
I won't be running SC2013. Maybe you will. If you're passionate about code, and think you can take the conference to new places, but without cutting out the heart, then I want to hear from you.
Whoever runs it from hereon in will have the freedom to do what they wish with it, as long as they satisfy three basic, non-negotiable criteria:
1. Hands-on coding in every session stays.
2. Bletchley Park is the venue
3. Bletchley Park gets the ticket sales. Everything else (e.g., sponsorship) is up to you.
Of course, if nobody wants to take over, then SC2012 will be the last Software Craftsmanship conference, which would be a real shame, but that's the plan.
I'll be asking people interested in running the conference to make a small pitch to the community at SC2012 (so, yes, you will need someone from your group to be there on the day to represent you), and I'll be asking the community to decide who they want to see running SC2013.
I will also be instituting (against my usual better judgement) a basic constitution for the conference which we'll all need to abide by, including my 3 non-negotiable requirements, as well as a requirement that we repeat this process again in 4 years' time if the conference is still running. In that sense, the conference will become the property of the people who participate and you will become the custodians of it. Which is as it should be.

