Monday, 15 March 2010

DevWeek Day One

I’m currently in London at DevWeek, and I thought it made sense to blog about it.  Unfortunately these won’t go up until the weekend as the Wifi at the Hotel is £12.95 for a day! And my supposedly 3G phone is took over a minute to bring up Google.

So, I spent the first day at Neal Ford’s The Productive Programmer workshop.  I’ve seen a few of Neal's talks before so a lot of it was repeated to me, but the content had been updated and Neal’s a good presented who manages to keep it interesting.

The first part of the talk was about maintaining focus while working, some simple things such as not having email open all the time, and turning off balloon tips.  Personally I quite like balloon tips, I find them a quick way of getting information across without distracting too much.  I think the real issue is Windows obsession with telling you about every little thing it wants to do. I don’t want Java updates, iPlayer Updates, Media Centre updates (I don’t even use Media Centre) etc, I just want to know when someone’s broken the build.  Luckily Windows 7 allows you to filter them based on application, so I can have just the ones I need.  That rant aside I find the constant interruptions of email, messenger, and meetings do cause a lack of focused which greatly slows down work.

The second part of the talk concentrated on avoiding unnecessary work, which included avoiding gold plating solutions and automating things whenever possible.  Neal described automation as a holistic application of the DRY Principle.  Which is an interesting idea.  He also suggested that you should automate even when it may not seem cost affective, due to the “intellectual” assets that are gained from it.

After lunch (which was surprisingly good by the way) the workshop went on to talk about Test Driven Design.  It started with a simple example of determining if a number is Perfect, which went on show the advantages of good design that come about from the use of TDD.  I must say I didn’t like the example.  It wasn’t really the way I normally go about TDD (not that I do that much of it) and I didn’t like some of the code produced.  Maybe it’s because I’m a functional software guy at heart and didn’t like the use of ‘state’ to just perform a simple mathematical function.  That not-withstanding the overall point of the section is still very valid, and something I’ve been wanting to implement for a while.

The final section of the workshop was a talk called “10 tips to improve your code”.  I have seen this before, but it was nice to see it aimed more towards .net developers a this helped me understand the points a little more easily.  The section “10 corporate bad smells” was a little depressing. I think we probably got 7/10, only really missing out on a perfect score because we don’t do web development.  Certainly “We don’t have time to unit test were too busy debugging” is one of my personal bug bares.

All in all, a very good workshop, with plenty for me to take back and try to implement at work, and also in my daily life.  Tomorrow is the key note, which I’m sure will be great, and the drinks tomorrow night are on Microsoft.  Can’t be bad. :-)

Saturday, 13 February 2010

Building a web application

There has been a lot of buzz about Personal Kanbans recently, many of my favourite bloggers and tweeters have been recommending them as a way of organising work and becoming more efficient.  So I’ve decided to give it a go.
But being a software geek, I don’t want some cumbersome board hiding in a dark cupboard.  (Our office is open plan, so there is no wall space)  I want it online so I can access it from anywhere.
I had a quick look on the internet to see if there was anything that looked interesting, and then realised using someone else’s is no fun, I should write my own.
So the decision was made.  I’m going to write my own Kanban website, using the following tools/techniques:
  • Ruby
  • Rails
  • TDD Development
  • Open source
  • Cloud hosting (if possible)
  • Blog about it.
The only problem is, I have no real experience in any of these. (As you may have already guessed)  Which is what this is really about.
OK, building my own online Kanban board is not the most useful of ideas, but learning the list of things above is.  The Kanban thing is an excuse.  Not that I’m giving in on Kanban at all, in fact I’ve started a board just for this project:
I plan to blog regularly on how the project is going and any interesting info/resources I find on the way.
Keep watching the blog for updates.