Cowboy coding

How I learned you don’t need the engineering skills of Steve Wozniak to start imagining the future, reveal unexpected ideas or create new tools.

Jure Martinec
IDEO Stories
6 min readAug 6, 2015

--

Photo by Detroit Publishing Co.

One evening in February last year, a friend offered to refer me to IDEO Munich for an internship. “Just send something over tomorrow,” he said, casually. “No problem,” I replied. What I didn’t mention was I was an interaction designer without an online portfolio. Crap.

Rewind four years. While studying graphic and interactive communications at the University of Ljubljana, I decided an online portfolio would kickstart my career once I graduated. But without tools like Squarespace, or a friendly developer, I naively decided to build everything myself, from scratch.

What I thought would take weeks, ended up being a long, frustrating, hard year of guesswork, Googling and dead ends. But it was an important learning experience for me, as a designer using technology.

Our aim might not be to build a perfect piece of technology, but to build digital things to think, to inspire ourselves, and launch those things early to test them.

Instead of designing and coding the perfect website, those twelve months taught me to hack and evolve one, to sketch with technology. Instead of just executing a predetermined idea, I learned to actively explore what that idea could be.

The process opened my eyes, too. I’d always thought I wanted to be a graphic designer, but realised I wanted to do more with technology, without being an engineer. Building my portfolio helped me find my way to that middle ground.

Designing with technology

My need to build a portfolio is part of a wider shift: as technologist-turned-venture-capitalist Marc Andreessen has said, software is eating the world. Every industry, service, product, job description, human relationship, manufacturing process or scientific hypothesis is facing big shifts caused by digitisation.

What we’re designing is changing — websites, digital services, connected products, alongside things — while new digital design tools are appearing and evolving extremely rapidly. But where designers can use very similar tools and frameworks to software engineers, they do so with a different purpose. Our aim might not be to build a perfect piece of technology, but to build digital things to think, to inspire ourselves, and launch those things early to test them. In our case, it’s okay if people break what we make.

Instead of designing and coding the perfect website, those twelve months taught me to hack and evolve one, to sketch with technology. Instead of just executing a predetermined idea, I learned to actively explore what that idea could be.

From pixel perfect, to quick and dirty

Coming back to my portfolio, I spent months pushing pixels and battling to ‘finish’ my beautiful designs. With little prior coding knowledge, I broke down the challenges of building a website into smaller and smaller pieces, and Googled them.

I almost always found the answer, but it was hard, slow and complicated. When it couldn’t be done, it made me think I had failed as a designer. But failure slowly changed the way I designed. I quickly exhausted my existing knowledge, and time, so I threw away these suggestions of how to do it the ‘right’ way. I started implementing things the dirty way: that is, it didn’t matter what approach I took or tools I used, as long as it worked.

Technology will save us

The dirty way is easier than ever. First, free, simple, online courses like Codecademy, Udacity, and Khan Academy teach basic development skills, while communities like Stack Overflow and especially Google provide quick answers to any problems you might have.

Second, technology is more accessible: more abstracted, so less complex. We have platforms, frameworks, bootstraps, mixins, generators, environments, services, and other multi-purpose chunks of code. Most are open, free or cheap. And because developers are opinionated and passionate, there’s a lot of love and hate around all of them, which guarantees they’re always evolving.

The modularity and accessibility of this new world means there are endless opportunities too: you can create microsites, native apps, crazy data visualisations, physical installations, robots, animations, connected objects and much more, often with technologies you already know.

Say — like me — you want to create an online portfolio. You can start a project, a mobile friendly website, by writing two words in the terminal and hitting enter. Since you need an image gallery, simply tell the package manager to install a library for it. Copy some example code and add three lines to make an API call to your Dropbox, where you keep your latest product shots. Run a command to build, test and push to a live server. Now, share the URL with the world.

The modularity and accessibility of this new world means there are endless opportunities too: you can create microsites, native apps, crazy data visualisations, physical installations, robots, animations, connected objects and much more, often with technologies you already know.

More importantly, the dirty way is becoming faster and more efficient. Workflow and scaffolding tools like Yeoman let you easily bring in the right tools for your project, encourage better approaches to how and what to build, and ensure good development practices and clean code. You don’t have to get frustrated about doing it the right way anymore. Developers are lazy, and as designers we can use that to our advantage.

Knowing the limitations of technology and using it in new,
different and perhaps unintended ways inspires me as a designer.

Code to think

Building the dirty way taught me to think why and what I wanted to create first, how to create it second. I adopted a hack-y mindset, a curiosity which led me to find creative ways of using any technology, system or concept beyond its intended use, and spot patterns in complex systems. Doing that let me loosen my dependency on specific technologies, which now helps me keep evolving my skillset, and stay on the cutting edge.

Knowing the limitations of technology and using it in new, different and perhaps unintended ways inspires me as a designer. And understanding (even superficially) many areas — say, web apps, virtual reality, or connected objects — means I can quickly pick up, and develop in new ones. Exploring new technologies means I can provide invaluable insights, and — practically — by hacking things together, can push the design process forward, rather than slowing it down.

I’ve moved from development-constrained to development-driven design.

Job, done.

Although I sweated for a year on my portfolio website, I was never happy with it, and didn’t publish it. But that meant when I needed it most — to apply for the IDEO internship — I had one night to find a way to communicate my digital skills. So I emailed — of all things — a print-ready PDF. While it may seem strange, I’m still around two years later. So, given the time, and skills and what I wanted to achieve, it was an effective solution. You might say, it was the dirty way.

--

--

Jure Martinec
IDEO Stories

European designer & technologist / researching how digital might be shaping the world, often through code and interactive artifacts / @IDEO / @postdigitreader