This is the fifth part of my blog mini-series of things university doesn't teach you about being a software developer.
As part of our interview process, we usually ask candidates to bring something to show us - usually a piece of software they've written. It is astonishing how poorly prepared lots of people are from this, and I really think this is something that universities could provide coaching on. That aside, it's a useful skill in its own right and useful as part of being a software developer.
Thing 5 - Presenting your work effectively
Increasingly, I'm seeing a shift in the computing industry away from programmers who are just programmers, and towards programmers who are more actively involved in the roles of other team members, taking on leadership positions and actively advocating for their work, project or product. Being an able and confident presenter is a huge asset, but being able to (at least) show off your work is essential.
Most of the time, I find myself presenting to small groups of people, usually peers or customers, but hardly ever in a lecture style setting, so I'll leave the "public speaking" advice to the thousands of blog posts already out there covering that subject.
When will you have to present your work?
In some jobs, you'll write code, it'll get reviewed, and that'll be the end of your involvement. At Fivium (and in government digital teams) this is atypical. We expect developers to present their work to the rest of their team during sprint cycles - especially useful to get early feedback on new features or user interface changes.
In an interview setting it's fairly common to be asked to bring along and present some code you've written, show off the features, etc. You need this to be an efficient and slick process so that you don't waste time or piss off the interview panel.
Finally, it's pretty common to present work to your customers, which is not only essential to make sure you're delivering things they want and need, but also a great entry-level activity into being more involved in dealing with customers and user requirements.
Why doesn't university cover this?
During my university course, I remember presenting work a few times, but as far as I'm aware not a single time was the delivery assessed (even informally), nor was any feedback given on the presentation style. Only the content seemed to matter.
With respect to universities, this is a completely missed opportunity to help teach students something almost for free. It's relatively easy to provide useful critical feedback (we always do this internally).
These should go without saying, but:
- Know your audience - this doesn't just mean who they are, but also what they expect to see. What do they already know? What do they need from your presentation? Make sure you tailor the language you use appropriately. Importantly, don't show them things they don't need to see.
- Practise - you should be able to run through your presentation / demo from memory (or notes), in the time slot you're given.
- Understand the material you're presenting - you'll almost certainly be asked questions on how you've implemented something, what the business value is, why it's a good idea, why doesn't it do certain things, etc. Know your material and know your customer requirements.
It's fatally obvious if you've missed any of these and doing so will ruin the presentation. Also, you'll be less confident if you're not well prepared, and it shows.
Remember that presenting badly can reflect poorly upon you and your work, even if your work is great.
Avoiding logistical pitfalls
A friendly presentation with a few of your colleagues requires less logistical effort. You're in your own office environment, you know the equipment and you have everything you need.
But what about when you go to someone else's office or some other environment?
There are still some practical and logistical basics that are often forgotten about. These come from my experience, but also are fairly obvious if you stop and think about it.
Make sure the following are covered:
- Have your presentation / code / etc. copied onto the device you're using and ready to run.
- Check you're allowed to take your own device (you may not be permitted to do so).
- If you need an external display (projector or screen) make sure one is available, that you can connect to it, and take any necessary adapters.
- If you need the Internet, make sure you'll be able to connect, and make alternate arrangements if WiFi isn't provided.
There's more nuance to it than that, so I've done a quick flow diagram to help illustrate the point:
Essentially, it comes down to this: assume everything that can go wrong will go wrong, and have a backup plan. If you're using a battery-powered device, take a charger. If you need the Internet, make sure it'll work.
I've sat through countless demonstrations where I've had to watch files copying, someone scrambling around to find a compiler on a laptop that wasn't theirs, people turning up with a Mac and no converter from whatever-the-hell-the-latest-MacBook-uses to the-thing-everyone-actually-has, so we end up crammed around a tiny laptop screen instead of a reasonable sized display.
This stuff isn't rocket science. You should be in a position to open up your laptop, plug in an external display and start presenting in less than a couple of minutes. Any longer and you'll start to make a bad impression by wasting time.
What should universities take away from this?
Universities are great at preparing students for applying for jobs and preparing for some aspects of interviews - they help write CVs and cover letters, they often provide interview coaching, as well as backing it up with good references. These are all very useful.
However, in an interview setting, questions and answers are not really enough to differentiate a lot of technical candidates. In addition to solving problems we quiz them on in the interview, I want to see things they've worked on or are currently working on.
Being able to present is hugely important, and it could be taught at pretty much no extra cost. Whenever students present their work, give them feedback. Over the course of three years this really ought to do it.
Aside from that, if universities are willing to help with CV preparation and interview, they really should think about offering some focussed teaching on presenting.
It would also help if university lecturers could plug their laptops into projectors (etc). in lecture theatres without spending 10 minutes doing it. The example they're setting is pretty poor!
What should students take away from this?
Presenting is a skill you can practise amongst your peers. If you're preparing for an interview for a placement or graduate job, practise with your friends and return the favour.
Think about everything that could go wrong and do your best to mitigate it. Don't be afraid of calling those you'll be presenting to ahead of time and asking questions or arranging the logistics - there's no need to be embarrassed. It's much worse if you turn up and nothing works! I always make a point of calling ahead.
Next time I'll be writing about retrospectives, but most importantly, thinking retrospectively and learning from your mistakes.