I have been a subscriber to the IEEE’s Software magazine since it started in 1984. At one time, in my office, I had a 25 year unbroken run of issues on my shelf until, thank goodness, digital libraries meant that I could dispense with the paper copies. It was, and maybe still is, the most readable and useful of the magazines that tries to bridge the divide between researchers and practitioners.
For the past few years though, I have found the magazine to be rather dull. There were occasional good articles and columns but most of the articles were pretty skippable. This is not to say they were badly written or researched – I just didn’t find them worth reading. I didn’t think much about this – if anything, I probably put it down to the cynicism of age.
Then, in the July-August 2015 issue, I read an article by Philippe Kruchten on lifelong learning (http://www.computer.org/csdl/mags/so/2015/04/mso2015040085.html) which brought home to me why I was disenchanted with the magazine. For me at least, hardly any of the articles were of any use for learning and professional development. I think that this is a significant change from a few years ago. In the past, there were lots of useful, general articles on software engineering that I learned from and recommended to my students. But now, most of the articles seem to be specialised or are short columns presenting opinions and one person’s experience.
For example, in the same issue as Kruchten’s column, there’s an article on an evaluation of common Python implementations (hardly a topic that’s going to engage the vast majority of software engineers), an article that says there’s no evidence that global software engineering saves money (I would guess few managers who could benefit from this are actually readers of a software magazine) and an article on why API documentation fails (which comes to a conclusion of the completely obvious that it fails when the content isn’t very good).
I have my opinion on why the magazine is publishing fewer articles that are of general interest to engineers, but I don’t think it is useful to go into these here. Rather, I want to make some constructive suggestions that would make IEEE Software a flagship publication that has some real value to the professional and academic software engineering community.
The key, I think, is to take on board what Kruchten is saying and focus the magazine on professional development. It should be the place that engineers go to to learn about the latest advances in software engineering and related areas. Every issue should have two or three articles that you can recommend to a practitioner or students and say ‘read this and learn something useful’.
What does this mean in practice? I think there are three key changes that are needed:
1. Tutorial articles. Kruchten asks ‘what do I know about the MEAN stack’. Well, I didn’t know about this term (it means Mongo DB, Express.js, Angular.js, Node.js) but I would like to read a well-written tutorial article about it. General tutorial articles on new areas used to be much more common in the magazine and it’s a real pity they have mostly disappeared.
2. Review articles. Review articles looking at available tools and technologies are really helpful for learners of these technologies. For example, as a recent learner of Python, I would really have appreciated a good review article on Python IDEs. Reviews of web material, akin to the ‘Surfing the Web’ column in SEN, would also be incredibly useful.
3. Practice focused research. At the moment, research articles are mostly useless to practitioners as they fail to relate the research to practice. They present non-conclusions (e.g. we have no evidence that global software engineering works) rather than useful lessons learned and solid information on how to do things better. IEEE Software is not an academic journal but most of the ‘research’ articles are simply rather better edited versions of conference papers. Research articles should be writing for practitioners who want to learn from their research – not for other researchers.
Of course, I know from my experience as a journal editor, that if you simply rely on submitted articles, you will not necessarily get the kind of articles that you want. Realistically, the changes to the magazine that I think are needed are not going to happen without proactive commissioning of articles and significantly more resources than I suspect are currently available.
If you want good articles, you have to pay for them. Otherwise, you will simply get academics writing to enhance their chances of tenure or promotion. I don’t think that you have to pay commercial consultancy rates but you have to recognise that writing well takes time and offer some reward for those willing to share their knowledge. Paying $1000 for a well-written tutorial article would be money well spent.
I don’t believe this is unrealistic. My dues for the IEEE Computer Society and subscription to IEEE Software came to $172. According to this site (http://www.payscale.com/research/US/Job=Software_Engineer/Salary), the median salary of a software engineer in the US is $78, 000 so, even for those whose employer doesn’t pay their dues, another $20 or $30 a year will hardly break the bank.
Will this happen? Probably not as the ‘volunteer ethos’ is deeply embedded in the IEEE Computer Society. But I’m afraid that unless there are changes, IEEE Software will become increasingly irrelevant to practising software engineers.
PS I do know how to link text to URLs. But, from a security perspective, I think it safer to leave URLs explicitly visible so that you know what you are clicking on.