Category Archives: 9991

Thoughts on the Software Craftsmanship 2010

I have reached my hotel after the days events at Software Craftsmanship 2010 at Bletchley Park and got a chance to write up my thoughts. I had planned to Tweet during the day, but just never got round to it, too busy.

So how was the event? I have to say I don’t think I enjoyed it as much as last year’s event. That is not to say this was not a good event, but this years seemed to focus on hands on programming tasks. This is great but I always feel that I could have been doing this at home, or in a dojo session in the office (not that I do this  oftan enough). Last year the sessions were more Randori Kata format and the group discussion this engendered I found very useful. I think conferences like this are probably at their best when they open your mind to new technique and ideas; yes coding kata can do this, but I feel that a conference needs to focus on the meta level of ‘why do this kata’ and how to ‘best run a kata’ and leave the actual kata sessions to usergroups meetings.

Maybe there should be more sessions on the discussion on how to best evangelise software craftsmanship. Today‘s event was full of people who have already decided a craftsmanship approach is the answer for them and our industry, the big question is how to bring more people with us, especially the group who don’t attend conferences, user group or even try to keep up with current trends. I suppose it is down to all of us who do attend such groups to spread the word, so why not get down to your local group and help improve our industry, if you are in Yorkshire why not try Agile Yorkshire next week? If you can’t make why not try setting up a lunchtime coding dojo – there are loads of ideas out there on the web.

Post AIC 2010 Thoughts

I was at the AIC 2010 conference yesterday, which I enjoyed more than last year. The most interesting session was Ivar Jacobson. He discussed how immature our industry is, with its disjoint between software engineers and academic computer scientists. Something I have commented on before when discussing if our industry should be licensed.

He discussed how we need to build our industry upon commonly agreed kernel of simple best practice activities, not upon some currently fashionable process whether it be Waterfall, CMMI, Agile, Lean etc. We must identify what are the best practices from all process (and all processes have something to offer) and teach them to students at University as this kernel of activities, as well as teaching how to compose them into more complex practices and hence whole development processes. Thus providing new entries to our industry with the base of reusable techniques that the can use for their whole career, irrespective of fashion. The key idea being that any current process model can be build by composing these kernel of basic activity.

So if this sounds interesting, and it does to me, have a look at www.semat.org. The signatories aim to have results within the year, if they achieve this aims this could well be the first step to making Software Engineering on a par with other chartered engineering disciplines such as Structural or Mechanical Engineering, with there is a long term set of industry accepted best practices that people can be judged against.

Intent is the key – thoughts on the way home form Software Craftsmanship 2009

Today has been interesting, I have been to conferences where you sit and listen, such as DDD, TechEd etc. I have been to conferences where everyone is encouraged to talk open spaces style such as Alt.Net, but today has fallen between the two styles.

The Software Craftsmanship 2009 conference has been in more of a workshop style; most sessions have started with a short presentation to set the scene then the attendees split to forms small groups to do some exercise or chat, reporting back later in the session. A sort of lead open spaces feel if you want.

As usual with events you need to let what you heard sink in, but I think it will be useful. Not so much in the 'I must do X to fix project Y' but in the general approach to development issues. This was a conference on craftsmanship, best practice in general not magic bullets. A good example was in the session on responsibility driven design with mock objects, where a good deal of time was spent discussing the important of variable/object names in the design. From this session you should not take away that 'View' is a bad name and 'Display' is a good one; but that the choice of the name is important to how you will view the intent of the test and the code you are writing.

I suppose this was the theme for the day, in development intent is key, why you do something is more critical than how. It is only through clear understanding of the intent of the business users that a developer can hope to design the best system. So often what the client asks for is based on what they think can be done and unless this requirement is challenged to get at the underlying intend the best solution (whatever best means to the project) will be missed. The same holds true with writing tests, it is vital that the test conveys the intent of what is being tested, else there is little hope for any future maintenance work when all the original staff have moved on. This means to me that the most important part of the user story is the 'so that they can' clause at the end, it is so often the window onto the truth of the real story intent behind the story.

So an excellent day all round, thanks to Jason Gorman and everyone else who helped to organise the event, I look forward to next years, and so should you if you are interested in your craft….