development panel sessions and lightening talks

I’ve been selected for 2 sessions at DDD Scotland this year. There’s no presentation from me, but I’ll be chairing a panel, and appearing on another, so plenty of opportunities to answer questions. This is a new thing for, as well as the lightening talks stream to help you practice public speaking, or just share something cool. Please come along and provide your feedback.

If you’re coming, please submit a question to the Your Career in Software Development panel so we can answer the questions you have on your career. Submit your question anonymously here

Hope to see you there.

code development programming

February Developer’s Hangout : Are you a Professional?

As a follow up to the DDD Scotland open discussion session on Professional Software Development, this hangout was held to discuss the changes and challenges 2 years on. I’ve included a few notes below that made up the main talking points, and added links where appropriate for those looking for more information.

You can see my notes from the session on Google Docs :
Or, for Evernote users :


Don’t ask the customer what they want – what they need to solve their problem isn’t necessarily what they ask for. Why do they need it? When do they need it?

Tom Gilb methodology – don’t tell developers what you want, tell them what problem they have and what benefit it provides.

Enhancing professionalism of a team

Different levels of professionalism depending on the level of the team, enforce standards when teams are cowboys and relax them as people get more experienced.

How do you bring professionalism to the team or to new members? Provide information and guidance. Define new practices. Tools such as JIRA, use of source control, tie commits into tasks and issues.

Phases : in a small team, pick the right people, and they set the culture. For existing teams, need stronger sticks to enforce behaviour, technical. Role models, training and mentoring.


Public good : What is a universal public good? Depends on the country. Kill-bots are good for saving lives of US soldiers, but not so good for Afghanistan and Iraq citizens. Public interest disclosure – whistle-blowers. Responsible disclosure of exploits or data protection or other breaches. Do you close the hole first or notify first. Also thinking about data protection. Keep data in the right area to avoid DPA or Patriot Act breaches.

Don’t be evil. Don’t do anything illegal.

Professional Certification

US has a very different concept of “professional” from state to state. More like the Electronic Engineer chartership – CPD, maintaining quality, providing guarantees.

Health and engineering, been around for centuries. Being responsible if things go wrong. “I’m certified in a few things, and I’ve decided I don’t like it very much”. Defines those “in” and “out”. See “scrum masters” – disbarring people who don’t do things the way things should be. See lawyers in US getting disbarred for opposing the Vietnam War.

Software Craftmanship – principles and practices, a set of standards we agree to adhere to.

Saying no – if we can’t meet a deadline, say so. If something takes too long, make impact on deadlines clear. If you’re dependent on other systems, you’re very sensitive to them, and you have to adapt to them saying no.

Chartership – does that give your argument more weight? Does it help to build trust with the client?

International Competition

Not enough software developers! And a lot of them are contractors. Scouring the world for the best talent.

Finance doesn’t trust certain developers, particularly in other countries (outside EEA especially), but skills are improving everywhere.

Professional Behaviours

No ego – being gentle when criticising, removing ownership from code – owned by the team. Shared code ownership.

If you can’t keep up with the latest technology, or other CPD requirements, then you’re in the wrong profession.

SEMAT- Ivar Jacobson (UML) : make a kernel of “what is true about software engineering” that no-one can dispute. Dictating a flow of information between customer and BA and between BA and developer.

Hack Days

12-14th April : Learner Journey Data Jam

19-21st April : Mental Wellness Hack Weekend


code development programming

Slides and Mind Maps for DunDDD

DunDDDAs promised, here’s the slides and mindmaps for the sessions I was involved in at DunDDD 2011. The Mind Maps were generated using FreeMind.

The Philosophy of Code

This talk was an experiment on my part, given the knowledge I’ve picked up from reading books and articles from some of the smartest people in the business and beyond, and I wanted to share some of that. As Gary Park noted, it still needs some polish, but I think there’s a good idea in there, so I hope to get another chance to present it in the future. The presentation itself is licensed under creative commons, but please pay attention to the photo attributions if you want to use them in your own work. I’ve also included a link to the original mind map which contains many more great quotes.

Google Docs : The Philosophy of Code

Mind42 : The Philosophy Of Code

Download The Philosophy Of Code Mindmap (.mm format)

Software Requirements

The original presentation was given by Craig Murphy (on Twitter as @CAMurphy) and is available here : Open Discussion on Software Requirements

The mind map generated from the discussion is reproduced below.

There was a good discussion of how requirements can have different levels of detail and how the methodology can shape the process and the documentation, as well as the change process. A bit of waterfall vs. agile, but each has their place.

Mind42 : Software Requirements

Download the Software Requirements Mindmap (.mm format)

How The Web Was Lost

This talk drifted a little, since we agreed fairly quickly that with the demise of Flash and Silverlight, and the rise of the web-powered desktop in Windows 8, the web has in fact won. +1 for open standards. But where does that leave the behemoths like Apple and Microsoft who have benefited the most from the traditional role of the desktop. Can they keep developers and users on their platforms, or will they be lost to cross-platform development?

Mind42 : How The Web Was Lost

Download How The Web Was Lost (.mm format)

code development programming

DDD Scotland 2011 Open Discussion Sessions

There were 2 great discussions on the alternative track at DDD Scotland this morning, so many thanks to everyone who came.

Below, I’ve posted the two mindmaps we generated. They are in .mm format. I used FreeMind (open source) to generate them.

Professional Development

An open discussion about how developers can be professional inside the constraints of management or environment. Examples of questions for this discussion could be

  • What obstacles do developers feel they face in regards to adoption of technologies and techniques?
  • How have these been overcome?
  • How can productivity and morale be improved or maintained?

Professional Development Mind Map
Professional Development Mind Map (.mm format)”
View “Professional Development” Mind Map online with Mind42

Tidied version

Professional Development - Tidy Mind Map
Professional Development – Tidy Mind Map (.mm format)

Agile Is Dead

Based on a discussion at QCon around the 10th anniversary of Agile and whether or not “Agile” actually means anything anymore. This discussion opens the floor to delegates to chat about the current state of Agile in software development.

Agile is Dead Mind Map

Agile Is Dead Mind Map (.mm format)

View “Agile Is Dead” Mind Map online with

Tidied version

Agile is Dead - Tidy Mind Map

Agile Is Dead – Tidy Mind Map (.mm format)

[EDIT : 10/05/2011]

I’ve created tidier versions of the above mindmaps to try and capture the groupings discussed on the day, as well as the abstract for each session. I’ve also highlighted the starting point of each discussion to make it easier to see what was added over the course of the session. I will leave the raw mind maps too.

[EDIT : 11/05/2011]

I’ve found an online Mind Map viewer to help you explore. Added links to the unedited mind maps above and here:
View “Professional Development” Mind Map online with Mind42
View “Agile Is Dead” Mind Map online with

code programming

HTML5 : The language of the cloud

I had a great time at DDD Scotland, so many thanks again to the organisers and everyone who came. As promised, here are the slides for my talk : HTML5 : The language of the cloud? in HTML5 format. The talk was given in Firefox 3.6 with the MiniMap (geoDiscovery) and Tails Export (microformat) extensions. If you have to make any tweaks to get it working in your favourite browser, let me know and I’ll update the file.

For a bit of fun, I’ve put together a short survey on HTML5 to gauge responses to some of the discussions I’ve had since the talk. I will publish the results in an upcoming post.

Finally, for ease of access, here’s a list of the important links from the talk for those of you who missed them:

And here’s Google’s demo using the dev version of Chrome :

code programming

TDD? I Don’t Have Time – Google Docs

TDD? I Don’t Have Time

Thanks to everyone for their feedback on my previous post. I’ve taken the next step and created a presentation that’s publicly available on Google Docs via the link shown below. I’ll be adding more ideas to it as I get them, and I may do a small coding demo if I’m feeling brave.

As before, add comments below, or send feedback to the twitter account or email address in my previous post.

TDD-I-dont-have-time – Google Docs

Blogged with the Flock Browser
code programming

Test Driven Design : Developer Day Scotland 2

TDD? I don’t have time

I’ve had one of my talks accepted for Developer Day Scotland: talking about Test Driven Design. I’ve got a basic idea for a talk, but in the spirit of Alt.Net and open source development, I thought I’d throw this important subject out to the crowd. I’ve got a few ideas for the talk that I’ll outline below, but I’m looking for ideas and stories from others to help illustrate this point. Lest you think this is the easy way out, remember that I’ll be editing, compiling and delivering the talk, and I’ll get all the hecklers and tricky questions.

In return, I will release the presentation under a creative commons licence so that anyone else can take it, adapt it, and use it to help sell the principles of TDD to their colleagues. I’ll also make sure all contributors are included in the acknowledgments, provided they give me their name. If you want to give feedback, comments below are preferred as they’re public, but you can also send them to me via twitter ( @craignicol ) or via my gmail address (which I won’t give here to avoid spam harvesting, but it’s the same username as my twitter account)

The basic structure of the talk will be a series of slides titled with a reason not to to TDD, followed by a few suggestions why that reason is a myth, or is not as big a problem as you might think. Based on last year’s DDDS, I expect most of the audience will have come across unit testing, but I might need to add that to the sales pitch. I’ll list below the basic ideas I’ve got so far. Any arguments, expansions, examples or other feedback gratefully received.

I don’t have time

  • Do you have time to debug a live system?
  • Do you spend time adding new features?
  • Do you have the right tools?

I don’t need to test

  • Are you a perfect programmer?
  • Are you working alone?
  • Will you ever maintain your code?

I need to know about IoC, mocking, etc

  • Not when you start
  • Don’t let the terms scare you, it’s the principles that are important
  • The principles are worth learning

I love TDD, but I can’t get my team to adopt it

  • Don’t keep it to yourself. Show it off.
  • If you’re the lead, make it happen. CI is your friend.

I don’t know what tools to use

I need 100% code coverage

  • Have you been talking to Joel?
  • You don’t need 100%, but until you try and reach it, you don’t know what you don’t need.
  • You have to decide which of this, and many other aspects you feel comfortable with, and which you don’t.

Quality doesn’t matter

  • It matters to the customers who have to wait longer for a working product
  • It matters to the developers who have to maintain your code and will leave or stop caring
  • It matters to the accounting department who lose money for either of the above

You can’t test a UI

  • Make sure your logic can be tested without a UI
  • Test the right thing on your UI
  • There are frameworks (NUnitForms, WatiN)
Blogged with the Flock Browser
code programming

Developer Day Scotland 2 : Session Proposals

Session Proposals

Looks like my session on IronPython is up on the proposals. Still thinking about submitting a direct Alt.Net one, or I might have a look at explaining some of the stuff I’ve been doing at work recently, an XML serializer that used XSD files to inform the reflection, to create validating XML. Or a REST interface in .Net 2.0 (without complete tests unfortunately, but I’ll get them once we shift to .Net 3.5)

Anyone got any wishes about what they’d like to see?

Blogged with the Flock Browser