The Last Lecture - Randy Pausch
I recently watched Randy Pausch’s 'http://www.youtube.com/watch?v=ji5_MqicxSo[Last Lecture: Achieving Your Childhood Dreams]' and read the corresponding book and although it’s not directly related to software development I think that some of the points that he makes are really intriguing.
These were some of the parts that particularly stood out for me:
Introduce the elephant in the room - whatever it is that people are really thinking about, put it out in the open. I think on development teams there is often a distrust of the way that other people write code because it’s different to the way that we do. If we can get this out in the open more frequently and agree on a shared approach then it should result in a more consistent code base.
Get the fundamentals down - Pausch suggests that we need to understand the fundamentals because otherwise the fancy stuff isn’t going to work. In Apprenticeship Patterns Ade Oshineye and Dave Hoover suggest that we should 'http://my.safaribooksonline.com/9780596806842/study_the_classics[Study the Classics]' which is a similar idea. While I think they’re certainly right I’m not sure that learning theory before putting it into practice is the most effective way to learn. I think we need to do a bit of both at the same time alternating between the two so that we actually have a frame of reference when we’re learning the fundamentals.
The brick walls are there for a reason - Pausch describes how we’ll often come across obstacles stopping or blocking us from what we want to do but that we shouldn’t be discouraged, they are there so that we can see how much we really want something. I think this is just generally true and not just related to software development.
The skill of self assessment - Pausch suggests that we need know what we don’t know which I think is perhaps the best advice in the book. We need to recognise our true abilities but also have a sense of our flaws and create feedback loops to allow this to happen. My colleague Liz Douglass has come up with the idea of Feedback Frenzies to help create this feedback loop and this is one of the best ideas I’ve come across for doing this.
One of my favourite quotes from the book is the following which I believe was originally from Dan Stanford:
Experience is what you get when you didn’t get what you wanted ... It’s a phrase worth considering at every brick wall we encounter, and at every disappointment. It’s also a reminder that failure is not just acceptable, it’s often essential.
I think we can do this much more in the software world. There sometimes seems to be a stigma with identifying things which fail but I think it’s really useful for others to learn from mistakes that have been made.
The Last Lecture is one of the best presentations I’ve had the chance to watch - I’d certainly recommend it.