A Life Update

I seem to have fallen off the blogosphere in the past few weeks. There is good reason for this I assure you.

Firstly, I had been busy preparing for my viva voce, the oral defence of my PhD thesis and the last hurdle to completion. I am happy to say that I was passed, I have my doctorate and I am now a free man!

Secondly, my time has also been taken up preparing for the impending move to my new position as a researcher at Freie Universität Berlin in Germany. All being well I should begin there next week. My work will continue to involve FLOSS, but will be focused on agile methods also.

The University of Lincoln has very kindly permitted me to continue this blog. I will continue to write here on the topic of FLOSS, and hopefully I will be able to share my new work also.

Brayford Pool, University of Lincoln
Brayford Pool, University of Lincoln

I will miss Lincoln it is a wonderful place; it is a very pretty city and the University has been good to me. I leave behind some great friends and associates, but I take many cherished memories with me.

The Ongoing Saga of Bletchley Park’s Survival

Bletchley Park, which was the codebreaking hub of the Allies during the Second World War and is now a sizeable and very entertaining museum, has had a rough time in recent years. Parts of it are in a dilapidated state and it seems to survive only on charitable donations and the careful devotion of those who work there. Recent news is encouraging: the Heritage Lottery Fund has given a provisional thumbs-up to a grant of around £500,000 (the application has now progressed to the next bidding stage), which is in addition to investment of around £1,000,000 from English Heritage and Milton Keynes Council. This is all good news and I hope more grants will be awarded. After all, the Park puts the cost of genuine renovation at around £10 million, meaning that these grants are still less than one-fifth of what is needed.

Whenever I am at Bletchley there the word “potential” is always in my mind. The museum is already a great place to visit with plenty to see, and the whole site covers a sizeable area with much potential for suitable development. As well as the many exhibits from the computer stone age that make Bletchley a technophiles dream, there are also many other exhibits about life during the Second World War (with stacks of contemporary artefacts) for those both at home and away at the front. I think Bletchley Park could be built up into a superb site, and a match for any heritage site in the country.

The Alan Turing Apology — Why?

Not so long ago, we celebrated the posthumous birthday of Alan Turing, who has achieved heroic status in the computing field. He made critical contributions to algorithms, computation, computer design and artificial intelligence, and famously played a role in the efforts to break the German codes during the Second World War. However, his story does not end well. Turing was gay at a time when homosexuality was illegal and considered an illness. He was forced to undergo humiliating “treatment” in the form of oestrogen injections, and had his security clearance revoked, leaving his life and career in ruins.

Recently, a petition has been raised on the Downing Street petition website demanding an apology from the UK government for this. I have not signed this petition, and I do not plan to, because I cannot see what it would achieve. (This seems to put me in opposition to many eminent people, not the least of which is Prof. Richard Dawkins.) For one thing, who is the apology from? The gross mistreatment of Alan Turing occured in 1952 — a great many people in government today were not even born then, and anyone in authority at the time has long since retired or died. An apology would be curiously hollow.

The present government’s position on gay rights is quite clear from their actions over the past ten years, which far outweigh any apology or affirmative statement they could make; the government’s opinion on the injustice meted out to Turing can be easily deduced from those. And surely much better ways exist, as lead petitioner John Graham-Cumming puts it, for “people [to] hear about Alan Turing and realise his incredible impact on the modern world, and how terrible the impact of prejudice was on him.”

Now the UK Enters the Pirate Fray

Hot on the heels of the events in Sweden, which resulted in the Pirate Bay gentlemen being prosecuted and a swelling of support for the Swedish Pirate Party,  a UK Pirate Party has now been formed. Of particular interest to the FLOSS bods is the reformation of patent law. As I understand, the new party joins other “Pirate Parties” in Finland, the Czech Republic, Austria and Germany.

This led me to perform a quick “web-scan” of the issue of FLOSS in UK politics. The UK Green Party show that they understand it and are explicit about supporting its use in public IT projects. Even the Liberal Democrats and the Conservatives (the main opposition parties in the UK) at least talk about it, but they water down their words unnecessarily.

The emergence of FLOSS in the public sector is an issue that interests me more and more…

CSMR – Day 3

And so CSMR concludes. Still recovering from the conference dinner (surreally hosted in the Hotel Alcatraz, which used to be a prison — and that’s not a joke). Enjoyed it here, conversed with some really interesting chaps, and one or two personal heroes.

Let me wrap up with some bite-sized snippets:

  • Acceptance rate of papers: 31%
  • Best paper award: “Incremental Clone Detection” by Nils Gode and Rainer Koscher
  • Special award: Harry Sneed (“for leadership and many contributions to the practice and principled growth of software maintenance techniques and their industrialization.”)
  • Population of Kaiserslautern: 100,000 approx.
  • Time I have to wake up tomorrow to begin my journey home: 0545.

CSMR – Day 2

CSMR 2009CSMR 2009 soldiers on.

Today’s keynote was delivered by Tibor Gyimothy which looked at software metrics from the developer’s point of view. He presented the results of a study where developers were surveyed for their opinions on various metrics.

The developers were divided based upon such attributes as experience, platform knowledge (Java, C/C++, C#, SQL), and open source participation. They were questioned upon their opinions of metrics that measured size, complexity, coupling, and cloning, and the results were analyzed for correlations. The kinds of questions included “which metrics effect your understanding”, or “which metrics affect the testing effort”? There were many interesting differences between groups (too many to mention all), but examples included:

  • It was agreed that complexity, coupling, and clones affect understanding, but experienced developers disagreed with inexperienced developers whether size was an important factor.
  • Experienced developers were more insistent that smaller classes help testing.
  • Inexperienced developers tend to reject large generated classes, but experienced ones accept them.
  • Experienced developers prefer absolute metric values rather than the change in the values.

Aside from the keynote, architecture certainly seems to feature heavily this year at CSMR — maybe I have a faulty memory, but it seems to be more so than before. The panel discussion, apparently the first such discussion at CSMR, stimulated some slightly intense debate on the subject of collaborative tool use between academia and industry. It was a shame that we had to cut short, because I do love a good debate. I hope that I see such discussions in future conferences, but I would suggest that it be conducted with a little tighter discipline. Participants were allowed to make slide presentations of arguments and run over allotted time; I’d prefer a format where the chairman presents the arguments and takes a firmer hold of the participants (like the TV programme we have in the UK Question Time).

Looking forward to tomorrow: the software evolution track and the European projects track featuring some meaty FLOSS stuff as well as yet more evolution.

CSMR – Day 1

CSMR 2009Guten tag.

How embarrassing. The weather in Kaiserslautern is bad, I’m an Englishman…. and I don’t have an umbrella.

But at least the Fraunhofer IESE Centre is a wonderful environment. Which leads me to quickly express my admiration of the German approach to technical research and development. Briefly, there are four “actors” in their setup: the universities and industry, which scarcely need elaborating on, are two of them. The other two exist in-between these other players. The Max-Planck institutes are outlets of basic research funded mostly by the state. The Fraunhofer institutes are centres of applied science that are mostly funded by contract work. Look them up to learn more.

Onto the conference itself. Today, the keynote was delivered by Dieter Rombach. He argued that when software engineering is being taught, too scientific an approach is taken, and also that people are not sufficiently versed in software engineering principles.

Many maintenance tasks, he argues, are able to be anticipated, and yet they are not prepared for. For example, if you develop software that is dependent upon the CPU, why should you not develop it in a way that makes it as simple as possible to adapt to a new CPU? When developers in the 1960’s and 1970’s developed systems and saved a few bytes by storing the year as two digits, their systems broke when the year 2000 arrived: the shame is, not on them for anticipating it, but on us for not learning from their mistakes.

To prepare for maintenance, Rombach advocates these principles:

  • An adroit use of the fundamentals: e.g. divide and conquer, traceability
  • Use of software product lines
  • Empirically proven best practices

Also worth mentioning is Carola Lilienthal’s paper on analyzing large-scale architectures and suggestions for keeping their complexity under control. Her approach is to compare the intended architecture of the system (e.g. layered architecture) to the actual architecture derived from code analysis. By borrowing from cognitive psychology her paper proposes three aspects for architectural complexity to be  applied: modularity, ordering (whether the relationships between elements form a directed, acyclic graph), and pattern conformity. A recommendation is made to begin with a reference architecture and progress to a layered architecture implementing the interfaces as the system grows.