Sunday, July 19, 2009

iPhone virgin wanting to learn from your experience

Seeing as I've been (somehow) working in the mobile app development space for a few years, it's high time I got my hands on an iPhone. I got a swanky new 3G S and I'm learning the ropes.

While the standard set of apps are reasonably interesting and give some nice feel for what the device is capable of, it's obvious that the device becomes really useful with the addition of specific apps tailored to the user's interests. As there are so many apps out there, I'm looking for some advice on which apps people are using (with the assumption that people I know are likely to have similar needs/interests to me).

I've had a look at a couple of websites which recommend apps, but I'm not so inspired by their choices. Also, things are changing so fast that a report from even a couple of months ago could be missing some very interesting new apps. (Is there any SN tie in where I can see what apps people in my SN have downloaded or recommend?)

I've installed 6 apps so far:
  • Tweetdeck
  • Wikipanion
  • Skype
  • Google Mobile App for iPhone
  • Todo Lite (will prob have to upgrade this to Todo heavy real soon now)
  • Apple Remote
All look very slick, useful and useable. However, I have a sneaky feeling that there must be at least a few more treasures in the 60,000 odd apps on the AppStore.

I'm looking for recommendations for new apps, which people are either using regularly or are used less frequently but solve an important problem when used. I'm a bit less interested in the wacky, zany, fun stuff for now.

Any takers?

Saturday, June 20, 2009

The case for an Irish School of Software Engineering

It seems to me that there is a significant gap in the Irish third level sector which relates specifically to software engineering: there probably are many more, but given the importance of the software sector to the Irish economy, this seems a rather serious concern.

There is a significant disconnect between industry and academia particularly when it comes to graduate software engineers. The essential issue is that industry is unable to understand whether or not such graduates are capable, meaning that it finds hiring of graduate engineers generally quite difficult. This is problematic both for the graduates - they are not getting the opportunities they deserve - and for the industry - it is not getting easy access to the good young developers needed to grow our software sector.

There are probably a number of reasons for this. Here I focus on two issues: (1) software engineering not being fully embraced by either engineering or computer science and (2) the different perspectives of the universities and ITs when it comes to meeting needs of industry.

Software engineering is something of a curious discipline - it is has had some problems being accepted by the engineering community as it tended to lack some rigour and the outputs were often a little more nebulous than other forms of engineering; it has also had issues in the computer science community as it does not qualify as science in the sense that it is more about methodologies and approaches to develop good software rather than answering scientific questions.

Within our education system, software engineering is rarely considered a discipline in its own right. Further, it is treated quite differently in different institutions - sometimes it is taught within an engineering faculty, sometimes in a computer science faculty and sometimes in a mix of both. For these reasons, there is significant variation in the approaches and ideologies employed in a software engineering education. Naturally, this leads to significant disparity in the quality of education and ultimately maps to wide variance in the capabilities of graduating students.

The second issue of note is some general awkwardness with regards to how serving needs of industry is dealt with by our education system. The universities tend to focus on giving students broader skills for life and do not consider themselves to be specifically serving the needs of industry, while the ITs are intended to have much more focus on industry's needs. However, the universities tend to have both better students and better financial resources. So we end up in the unusual situation that that part of our education system which is most concerned about the needs of industry is that which is less resourced and generally has lower calibre students. While this may have been a solution when Ireland had little skilled industry, it is clearly inappropriate for current needs.

While I don't claim to know the answer to this complex problem, I can make one proposal which is based on our experience working with schools within the French education system.

An essential component of the French education system is the high calibre engineering schools that have been developed throughout the last few decades. These schools are typically smaller schools which have a singular purpose: to provide high quality engineers for industry. Relations between industry and these schools are generally good and importantly the industry has quite a clear idea of the capabilities of the students on completion of their studies.

These engineering schools differ from anything on offer in our system in the following ways:
  • they often compete for students by providing statistics on salary levels for graduating students - as the schools are small and focused on specific areas, this is much easier than, for example, in a university;
  • they are the clearly preferred option for students who want to work in a technical capacity in industry - students who want this option know exactly where to go, unlike in our system;
  • they are much more practical and project focused than theory focused, although the projects are often quite challenging (while there is less emphasis on theory, the essential theory is, of course, taught);
  • they typically have two quite lengthy internships with the second being at the very end of their course - in many cases, the intern will stay on in the employ of the company;
  • there is often competition amongst companies for the graduating students;
  • the courses are generally intense with students having to work long hours and typically having little leisure time;
  • a higher proportion of the courses are taught by practitioners.
We have worked with students from these schools over the last 5 years and we have found them generally very strong - typically stronger than any Irish counterparts.

My knowledge of the French engineering school system is more than cursory, but certainly not deep: for sure there are deficiencies and it is not a perfect solution. However, they seem to have found a reasonable solution to providing skilled engineers for industry - something that is lacking in our system and a problem which needs to be addressed or it will impact our software sector in the medium term.

Given this context, then, it seems that there is a case to be made for an Irish School of Software Engineering. In a later posting, I will propose some ideas for what this school might look like, but for now, my main objective is to put forward the idea and see if it has some resonance.

There are, of course, other aspects to the broader problem of meeting the skills requirements of our software engineering sector, notably, the perception of software engineering within the wider community and the generally underwhelming quality of students who choose computing/software studies in the first place. While such an Irish engineering school alone could not change this, clear support from leading industry players would communicate the career prospects that such a career choice can deliver which could have some impact on the perception of the industry.

Could such a school be developed within the our current institutions - the universities and the ITs? I think it would be preferable to form a new institution as it would not have any previous baggage and it would have a new clear mandate, although I have not thought through this issue in any detail.

The notion as described above is still very abstract; further work is necessary to elaborate on what a school could look like. In future postings, I will attempt to tease this out.