Software and research: the Institute's Blog

PRINCE2 is a formal, structured approach to project management. Agile methods are a family of developer-oriented software engineering approaches. They are very different animals. How can they possibly work together?

Well, wait a minute. There's a clue in there: they are different animals; they're about different things. Different, but exceedingly complementary. PRINCE2 is about project management. It provides a framework for project managers to track the construction and delivery of products against a plan. Agile methods are about constructing software in a more responsive, more customer-focused way, with an emphasis on built-in quality.

In actual fact, they're a perfect fit!  Let me try and convince you.

First off, PRINCE2 is as formal and structured as you need it to be. One criticism I've both read and heard first-hand is "all this formal process stuff just weighs us down and gets in the way". My response is always the same: "well, you're doing it wrong!" One the key principles of PRINCE2 is tailoring: take the framework and scale it down (or up!) to match the kind of project you're running. In fact, the 2009 revision to PRINCE2 reiterated its underlying simplicity by recognising explicitly seven principles:

  • There is continued business justification for a project (or you should stop!).
  • There are defined roles & responsibilities (everyone knows what they should - and should not - be doing).
  • Manage projects by stages (bite-sized chunks are easier to track…
Continue Reading

Mark.jpgBy Mark Woodbridge, Bioinformatics Support Service, Imperial College London.

This year will mark my tenth anniversary as a software developer, most of which I have spent in academia. I started out developing a web application in Java using Eclipse on Linux. This much hasn’t changed, despite the rise of Android, NoSQL, HTML5, DVCS and many other technologies and tools. Neither have the basic principles of software architecture, testing, and usability. So I’m lucky that I was encouraged to pick up good habits at the start of my career.

But there have been other invariants. I’m still not sure whether I’m really a post-doc or a member of staff, whether I’m a researcher, an engineer or a programmer, and how my career should develop accordingly. As a computer scientist, I still often feel completely unqualified to communicate effectively with specialists in the department in which I work. And I still do a bad job of explaining my job to friends and family, who assume that all IT people in universities either lecture on programming or fix computers.

Initiatives such as the Software Sustainability Institute and DevCSI (thanks to JISC and the EPSRC) cannot by themselves solve these problems, but they can make a huge difference not only in pursuing their stated goals (such as promoting best practice, building communities around software and promoting the use of local developers) but, as part of this process, providing…

Continue Reading

JournalTOCS.jpgAll journals are not equal. Publishing your research in the right journal can make a significant difference to your citations and the impact of your research. For this reason, we’re interested in learning where software-savvy researchers publish their research, so that we can recommend these journals to other researchers.

We recently asked people at the Collaborations Workshop “Which journals do you favour for publishing your research?”. The results were interesting, but limited to specific fields, so we now want to know more.

Write to us, or comment below, and let us know where you publish your research (and what your research field is). We’ll collate a list and publish it here in the blog.

SmashedLightBulb.jpgBy Malte Ressin, research student at the University of West London.

There is a Garfield comic whose three panels tell a story that goes something like this:

John [optimistic]: Wouldn't it be great if everyday items could talk? The sink would say 'Good morning John', and the mirror would say 'You're looking splendid, John'.

Garfield [cynical]: I wouldn't like that. A blown light bulb would be like a death in the family.

Artificial intelligence and ubiquitous computing, should they ever arrive, might be just what John had in mind. Not only computers and smartphones, but also cars, refrigerators, and - why not - even light bulbs and deposit bottles might eventually wish us a good morning and converse with us in natural language. Regarding Garfield's grim prediction, there could be backups. Indeed, the arrival of artificial intelligence has been described as the singularity after which all bets are off, any prediction of the future will become moot, as nobody is able to predict what will happen once smart machines design ever smarter machines.

I agree that predictions about future developments will become difficult in the face of artificial intelligence. This is not due to the progression of superhuman thinking along the slope of Moore's Law, but rather it is a result of our own limited understanding of a construct that psychologists call intelligence. What is intelligence? Intelligence is what the…

Continue Reading

Money43.jpgBy Sarbjit Bakhshi, Lead Technologist ICT, Technology Strategy Board.

The following post is re-posted from Sarbjit's blog.

Having worked with small companies in ICT over a number of years, the most common question I get asked is “Do you know any good programmers willing to do some work for free, or for some future equity”. The answer is, and has always been, “no”. There are many good programmers out there in the UK and they know who they are and how much they can charge. There are plenty of bad programmers out there who will work for peanuts and will encourage in you a great feeling of regret for ever having taken them on.

Often outsourcing to some reputable looking company can cause problems too – their flashy London back end relies on poorly motivated, underskilled programmers in other parts of the world who often take very notable shortcuts and never seem to truly understand your requirements.

Having worked with skilled programmers in the UK, I have found work that has taken others four weeks to do properly (after much back and forth) is completed in a matter of minutes. Good programming is not, as some might think, ephemeral and without substance – it is immediately noticeable in its running (or absence) in systems. Bad programming makes systems run slowly…

Continue Reading