I was fortunate enough to be given the opportunity to present a lightning talk at Playgrounds Conference in Melbourne this week. I spoke about creativity in app/software development. I've turned my presenter notes into a blog post, GIFs included:
Programming isn't the first task that jumps to mind when someone says creativity. As a result, it's fair to assume most developers wouldn’t consider ourselves to be very creative. We don't question the creativity of a designer's work, but the work of a software developer isn't always seen as creative.
The biggest lie I ever told myself was that I’m not a creative person. I’m terrible at painting, singing, and acting. I can’t possibly be creative, right?
Creativity is a term we humans begun to use quite recently. As shown by the graph, usage of the term picked up only around 70 years ago. As leisure has become more abundant, humans have more time for creative endeavours.
I know for myself, all through primary school I'd tell myself I wasn't creative. I sucked at drawing, and being good at drawing or drama was what it meant to be creative. Even in early high school, I couldn't wait to drop art and music classes and focus on the subjects I enjoyed.
I didn't realise at the time, but when I started programming and begun toying around with making iPhone apps, I was exercising the creative part of my brain. I hadn’t considered this to be creative because creativity meant something different to me. It took many years to realise that I too was creative. Developing an app is a complex problem-solving task, and problem-solving is aided greatly by creativity.
Programming is all about creating something to do something else. By making an app, you are bringing a piece of software to life. By its very nature, programming is creative. There are technical parts of the jobs we all do which aren’t so creative - tweaking and optimisation of an algorithm for efficiency might be more technical, but writing code itself is a creative task.
An app is an expression of the developers who make it. In that sense, an app that serves the same purpose but is build by two different developers will be written slightly differently, reflective of the person who is writing the app and the way they think. The way you write and implement a feature is different to the way your colleague might write it. More than just the code, the creation of an app itself is a creative process. You start with an idea, build a prototype, go on to develop then polish the project into a finished product. This is a creative process. If programming weren't creative, Tweetbot and Twitteriffic would both work and function the same way.
How often have you stepped away from a programming problem, only to realise in a moment of downtime exactly how to go about solving it? Or coming back to work the next day and instantly solving the problem you were frustratingly stuck on for hours the previous afternoon? Our best ideas often come when we’re away from the computer, in a state of boredom. This is a trait of creativity, and a link between stepping away from our work and having a good idea is present. Stepping away from the computer can help us as programmers, as we solve challenging creative problems.
It's fair to say almost every software developer is either working on or has worked on a side project. I saw a talk once that made me think differently about programming side projects. The talk was given by iOS Developer Alex Akers. He raised the point that programmers must love what we do because we go home from work and continue to program. A hairdresser doesn't cut their kid's hair just for the fun of it. Other creative professions, however, involve side projects. Musicians write a tonne of music; they do it because that's what they enjoy. Lots of people write in their spare time as a creative outlet, without intent to ever be published. People with an eye for visual design often like to sketch in their own time. Once again, programming has the traits of a creative task.
If you’re like me, you’ve been working your way through listening to the Playgrounds Conference Speaker Podcasts. Toward the end of his episode, Samuel Giddins said the following, “What we do is also kind of an art.” Art is typically defined as, “the expression or application of human creative skill and imagination,” so in other words, art is an expression of creativity.
I took this photo last week while walking past a bath accessories store here in Melbourne. The mirror up top reads, “The art of bathing.” It’s easy to ignore the fact that even taking a simple bath can be art. If that’s an expression of creativity, developing an app certainly is.
Don’t focus on the technicalities of programming. Instead think of it as an art, as an expression of creativity, and see how that helps when finding the solution to your next difficult programming problem.