Creative meets Code
I spend a lot of time jumping from call to call with Capdeskers in all kinds of far flung locations. Mostly for work, but now and again just for a chat. Forget the water cooler that everyone goes on about missing - I’ll take a remote coffee with Fady in Cairo, a catchup on the weather in Valencia from Francesca, or tales of Michael moving his family from Germany to Denmark any day of the (fully remote) week. Alot of these conversations are about how we work - different teams, different backgrounds and different skill sets, all working toward the same objectives. So I’ve put together a series of interviews with some of the team to talk about how we make that work. First up is Engineering. I caught up with Balázs Kutil, one of our Full Stack Engineers, who is based just outside Prague…
Dave I’m really interested in the idea of this division between creative and ‘technical’ work. It seems like something drummed into us from childhood; the idea that if you’re creative then you’re no good with numbers, and on the flipside, if you’re gifted in maths or science, then you have no creative streak. Which is something that should be challenged, especially as so many roles are becoming inter-related. As an engineer, people might assume that there isn’t an aesthetic side to your work and that it’s purely technical. So, when you mentioned in one of our chats this idea of ‘beautiful code’, I thought it was really counter to the misconception around engineering. So, is there such a thing as beautiful code?
Balázs I think so. It’s subjective. You have different criteria for what people think is beautiful. I think the primary objective of code is to be correct. Meeting the technical requirements of the language, business, and customer. It has to be performant and it has to be correct.
But there are different areas where you can maybe make code beautiful. For example, in ‘code golfing’, where you are supposed to write the shortest possible programme. The code is very dense and very terse. If normal programmers look at it, they don't know what it does. But the beauty is in its shortness.?
Of course, there’s also code that’s beautiful because it has a nice structure. There's some sense of rhythm and the code gives you the feeling that everything is working nicely. The components talk to each other in a clean way. In this sense, the beauty is that you grasp the meaning easily.
Dave There are lots of things you just said that tie in with creative design. The best solutions are always the simplest. That idea of keeping things simple is the ultimate challenge, whether you’re a designer or coder. Adding more things is easy, knowing what to take away is hard. So it sounds like the definition of beauty is really similar.?
Balázs Yeah, there's the core complexity of the problem. A complex domain, for instance. Like we have at Capdesk - equity is like a super, super complex domain. And then there's incidental complexity, where your description of that domain is adding more complexity.
So I'm wondering if there's something similar in design where you have a hard problem and you can simplify your part but only by so much because the core is still hard?
Dave Absolutely. A lot of the work with brand is to take what might be a complex business or product, and find a way to make it connect with people as quickly and easily as possible. But, if you don't deal with that core complexity, you end up staying in the safe zone and coming up with another interpretation of that complex thing. Adding layers. At the core of problem-solving is the idea that you can’t go on to the next stage until you solve the problem. I think that's what simplicity is - stopping yourself from going off in different directions until you've cracked the thing in front of you. Then you can move on.
I've always thought that the engineer 'mindset’ is one where everything is either one way or the other. So you're working on a problem that always has a correct and an incorrect solution. That’s very different from the fallible nature of creative work, but is it true?
Balázs In a way there is that difference, but there’s also a catch. What's right and what’s wrong? Who defines that? It's usually the customer. And then we’re back to your problem. Some things can be correct for one group of people but not for another one. Usually, as an engineer, you get a specification, which should describe the problem. But it can still be the wrong problem to solve.?
Of course, the input - the business requirements or the specification - is one thing. But there are complexities and variables inherent to the problem. Maybe a time constraint - you're supposed to ship something this week but the perfect solution would take you a month. Or there's an existing system and you need to tweak your solution to make it work with the existing system or alongside the existing system. So there's always this trade-off. In the end, you're dealing with people’s requirements.?
Dave One thing with creative design is that your work is only ever as good as the brief. I've been involved in jobs in the past where the client has stopped the work halfway through and admitted that the brief is wrong and we’ve restarted the project. They see the first design solutions to their problem and they've suddenly realised that they've asked for the wrong thing.
Balázs How much is what you do informed by the tools that you use? Can design work be influenced by new technology, and does that change how you work?
Dave It would be simple to say it’s all about the idea, but sometimes your ideas are limited and biased to what you’re already familiar with. So when you have a design brief, you instantly come up with a solution using the tools that you know inside out. You have to constantly push yourself out of your comfort zone, and if you’re curious and experiment with new software, for example, that can influence your creative thinking. So it's a bit simplistic to say it’s all about the idea and not the technique or the medium. One thing informs the other.
Balázs So, in design, is there also this trend of rediscovering the past? I'm asking because, in software, it seems that we are forgetting the past. There were some very, very good theoretical results in the 70s and some strong ideas about human-computer interaction and algorithms, stuff like that. And we’re only now rediscovering all those things.?
Dave Yeah, design history is something that people were a lot more aware of before. Or at least they put more importance on it. I didn't study design, so all of that design history I've discovered for myself as I've gone along through books, visiting museums and exhibitions, and that kind of thing. Now it’s easy for young designers to grab things online without knowing that they're from a Swiss design tradition - they just think “this looks really clean’. It’s a bit like sampling I guess - DJs would make new music from samples of original tracks, and those tracks have now themselves been sampled. When you look at it like that, is the original source that important anymore? I don’t personally think so. The only problem with focussing purely on being ‘on trend’ is that everything starts to look the same, and no one makes anything that feels fresh or exciting. If you’re a software engineer, I guess that historical aspect of what you’re doing is even less relevant?
Balázs In software, I'm not aware of anyone studying history or looking at historical computer systems. Of course, you can look at historical code bases. For example, you can find the original Apollo Computer source code that landed people on the moon. You can look back and study but I don't think there's a conscious effort to go back and appreciate the interesting parts of the software.?
领英推荐
It’s a shame because I think you're missing out on a lot. But I don't think there's a formal or standardised education. It's all on your own initiative. So you go and ask people or look on the internet. The internet has made all this stuff accessible. And the open-source movement, where people just put out source codes, for others to see and inspect, is an immensely helpful trend. It's like a library that you can search online.?
One thing you mention a lot is typography. I understand that there are rules, like colour theory or type scales that you're supposed to use. Personally, do you look for this in your design? Or are you trying to come up with your own solutions and break this stuff??
Dave I originally studied photography and I was quite lucky to be on a course that was more about creativity and talking and thinking about images than the technical side. A big part of the course was looking at other people's work and learning about framing and composition. So basically visual systems, and how people look at things. You can apply that to all kinds of areas of design, but one thing I’ve always been fascinated by is typography. I think words are one of the most important aspects of a brand identity, and the natural 'vehicle' for that is typography.
I’ve had a go at designing a couple of typefaces, but just been in awe of the complexity. It’s a great example in the context of what we’re talking about of something that’s a blend of very technical, and very creative. There are all kinds of visual subtleties and beautiful aesthetics in type design, together with some solid mathematics that make a good typeface work. You can’t, in my opinion, start to design a typeface unless you understand the history of type, otherwise you’re just reinventing the wheel. I would imagine that can happen in code without a knowledge of how code languages have developed, and without understanding what’s already been built?
Balázs I don’t really know. I was just thrown in and learned by osmosis, by absorbing ideas and doing a lot of programming. For me, the historical stuff is not a strong influence. But when someone writes a blog post about a historical paper, there are definitely ideas that can influence you. So I think it’s good to look back and fish for ideas. Some of the technology will be obsolete - systems change and disappear - but some of the ideas are certainly useful.
Dave Designers are often told to get away from the screen to find their ideas, but if you’re a developer, you’re supposed to be in front of a screen all day. Is there any part of your job that involves being away from the screen? Like going for a walk to solve a problem?
Balázs If you’re designing a system that you can draw, you can grab a pen and paper and just draw. Or maybe when you’re studying some code you don’t understand, you might make a mind map or diagram to give you a better mental picture of how the code is behaving and how the components are talking to each other. You’re not staring at a screen all of the time. Sometimes you have a problem and you walk away from it or sleep on it and your subconscious will work on it. Maybe in the morning or in the shower, the answer will pop into your head.
Also, you talk to a lot of people. I’ve learned recently that it’s one of the best ways to refine ideas. There’s a problem, you come up with a solution and you explain it and discuss it and it cut the scope down and it becomes a more simple thing.
Dave I didn’t realise before talking to a few of the engineers at Capdesk how important communication is in what you do. Being able to explain things outside of the actual programming language. Do you get engineers that are quite precious about their code??
Balázs Yes. But that’s like a personal trait. Some people consider the code their personal baby and then it’s hard to discuss anything and it’s to your own detriment. Are designers precious about their ideas?
Dave In the past it was all about the ‘creative genius’ designer who was paid to make decisions that were absolutes; ‘here’s your design, it’s the best solution because I say so’ and that was what people wanted from creatives, that confidence and bravado. But I think that’s changed. That mindset isn’t so respected or even understood anymore. Creative is taking a lot of cues from product design, the 'user first’ approach, as opposed to the designer first. Creativity is also subject to a lot more measurement these days. You run a creative campaign, and the results are in your landing page traffic or the click rate from your banner or whatever. Personally I find the shift interesting.
Balázs But it does bring you back to this reactive position, where you’re always responding to the numbers and the feedback of the crowds, rather than pursuing a vision. Maybe, right now, the crowds aren’t ready for your vision but in 10 years everyone will be raving about it.
Dave Absolutely. It’s a balance I think. Years ago I would have loved to have had access to the kind of data we can get hold of now. But it’s not some magical key to great creative. A large part of creative thinking is about pursuing new ways of doing things. If JK Rowling had gone with the data from her demographic, I’m pretty sure it would have told her to write about something else. I think pursuing your vision is the important thing, and data should be used to drive an idea forward rather than push you towards something safe and unchallenging. Writing code still seems like quite a specialist skill to me, but it feels like it’s becoming more accessible, would you say that’s true?
Balázs With coding, I think anyone can do it. It’s not tied to any special talents, it’s just a way of thinking and a way of interacting with a computer. That’s a good thing. It brings more people to software engineering and computers. You get more diverse opinions and ideas.?
There’s a lot of talk about AI changing coding and self-generating programmes. But this idea has been around for a long, long time. Maybe there are hints that things will change. For instance, there are reports about software that can automatically repair software defects by going through a huge database and comparing it to the buggy code.
I think that computers are eventually going to help us write software. But I also think there’s a long way to go.
Since recording our interview, Balázs has moved to a new role as Staff Software Engineer for Leadfeeder. Best of luck Balázs and thanks for your time! Coming soon: Creative meets… Sales.