Our Blog

eCommerce
17
Dec 09

The Guest Lecture - Part 1

Thinking back to my days learning computing science as an undergrad I remember a number of guest lectures that I was encouraged to attend. These were invariably delivered by some learned expert in a particular field. Their experience and knowledge were deemed so invaluable that they would be invited to impart some of that experience to a group of students in the hope that they might absorb some of it.

I remember attending several of these. Some of them I understood. I don’t think I ever understood their significance however. I certainly never thought I’d ever be giving a guest lecture myself! I’ll say more on this and Perfect Image’s involvement in giving lectures later.

In particular I remember a number of guest lectures from members of something referred to as ‘industry’. These were different to our usual lectures since as well as teaching us a particular subject, the speakers would frequently make reference to software development in the ‘real world’. In particular they would frequently attempt to impress upon us the difference between our own university projects and software development in a commercial environment.

Based on my own experiences I now understand exactly what they meant. My degree course taught me about computing science, whereas now in my profession I develop software; the two are different. Does this mean that my university didn’t teach me the right things? No, of course not; computing science teaches you the fundamental principals of a huge topic, and arguably commercial software development is just one specialisation of that. Had I chosen a career in aerospace for example, I would have been equally prepared. The job of the degree program director is to distil this huge topic into the bare essentials for a wide range of professions whilst teaching the fundamentals that all programmers should know. The fact that I don’t need to know how a compiler works in order to do my job doesn’t mean I shouldn’t have been taught it in the first place.

I think that is one of the real values of guest lectures: it allows students to experience a specialisation of what they are learning, be it used in academia or any sector of industry. Just a few weeks ago Perfect Image gave its first university guest lecture, courtesy of Codeworks and Sunderland University. The lecture would form part of a series organised by Codeworks, and it fell to fellow developer James Allen and me to deliver it.

Getting involved in guest lectures has been one of Perfect Image’s goals for some time. Our marketing executive Sarah Maluila had been trying throughout 2008 to secure us a slot with one of the colleges and universities in the region using the tagline “to educate and inform the North East”. The breakthrough that led to the lecture came in October when Codeworks offered us a lecture spot with Sunderland University.

James and Nigel presenting

Neither James nor I had ever delivered a lecture, although between us we did have a bit of teaching experience. Naturally we had been on the receiving end of quite a few lectures and from the outset we both knew we wanted to avoid giving a dry lecture and instead to deliver something that would encourage participation and discussion. The big question was what subject to deliver the lecture on!

Over the past few years we have improved our development process through the adoption of a number of practices and technologies. We are strong advocates of an agile development process and as such have adopted many patterns that complement this approach and encourage better quality software. Examples of these include: the model view controller and model view presenter patterns; inversion of control containers and dependency injection; various object relational mappers; test driven and behaviour driven development; and domain driven design. Our experience is that such approaches have resulted in the delivery of superior products in a reduced time, and therefore much of the time spent initiating new graduate developers is used to teach them these methods. Most graduates have little or no knowledge of these techniques as they often cannot be covered in detail by degree courses because of their specialist nature. Any of these subjects would therefore be an ideal candidate but we had to keep in mind that we would only have an hour to cover the topic. One hour is not a long time to teach anything, and we didn’t want to have to rush through the subject, so in the end we opted for a much simpler concept.

The lecture would focus on testing, and in particular unit testing with a view to introducing test driven development. The goals were to familiarise the students with unit tests and show how automated testing could improve the quality and readability of your code. Although there is documented evidence that a test driven approach can improve the development process, it would still be a tall order to convince students – who only one hour earlier – might never have heard of unit tests at all.

To be continued....

Nigel

 
Got an account with one of these? Login here, or just enter your comment below.
Posterous-login    twitter