• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Software development and creativity

 
Java Cowboy
Posts: 16084
88
Android Scala IntelliJ IDE Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
One of the things that I like best about my job as a software developer is the creativity. I compare it to writing a book (a novel, for example) - I start with nothing, and then I invent elaborate and detailed structures and models that I express in code, and finally I have a piece of software that does exactly what I had imagined, and seeing it work gives me fulfillment.

Last week I was talking with someone and I explained this. She was surprised, because according to her technical work and creativity usually don't go together.

Whether you think that writing software is an art or not depends on what your definition of "art" is. I think it's not an art, but a craft. My definition of art is that art is made specifically to evoke emotions - and that's not why I write software. I don't write software because it's beautiful for its own sake; I write software to solve practical business problems. I don't think something needs to be an art to be creative.

Most people have no idea how computers work, let alone what developing software means. Probably that's why the girl I was talking with had no idea how creative it actually is. It also makes it hard to share the fulfillment that I get from creating a well-designed piece of software with people who are not into computers, and why there seems to be a stereotype that programmers are boring nerds, which is often far from true.
 
Bartender
Posts: 598
26
Oracle Notepad Linux
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I don't think creativity and art are the same thing. Creativity is starting with an idea and using intuition and your ego (your personality, not your hubris) to develop it into something useful. Art, as in artwork, is to dig deep inside yourself to find something that evokes thought, where that something is deep enough in the human psyche to be common with many others. With these definitions, creativity and art are near opposites at their core. They often come together though, and make something beautiful.

Technical work is creative if you enjoy it, understand it, and put yourself into it. This applies to some of us, but not others. To someone who does not appreciate it, it is very hard to understand what even could be creative about it. So, they'll just have to take your word for it. Whether it is art or not also depends on how much of "yourself" you put into the work. The less of yourself, the more artful it can be, assuming you build something of beauty.
 
Marshal
Posts: 79179
377
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
If you designed a car/washing machine/penknife/wardrobe which did something new/looked really good, everybody would consider you really creative. You would appear in the glossy magazine accompanying the Sunday newspaper.

Why should creating software be any different?
 
Bartender
Posts: 10780
71
Hibernate Eclipse IDE Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Nicely put, and I agree with many of those sentiments.

I have to take issue with your point about beauty though. Code can be beautiful - as evidenced by existence of this book - and while I can count the number of times I've actually produced any on the fingers of one hand (this being one of them), there's enormous satisfaction in being able to look at something you wrote and think:
"You know what? I really nailed that".

These days, my pleasure comes from knowing that my brain is unlikely to conk out for lack of exercise. While my commercial programming days are probably mostly behind me, I'm still involved in some part-time projects, and I still have a Poirotial delight in "exercising ze little grey cells" on this site and in my 'hobby work'.

And one thing I know for sure: I'll be programming until they nail the lid on and stick me in the furnace.

Winston
 
Marshal
Posts: 28193
95
Eclipse IDE Firefox Browser MySQL Database
  • Likes 3
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Creative, yeah... but when I was working as a professional programmer I usually equated my job with plumbing rather than with embroidery (as an example of a craft). Embroidery is non-trivial, it takes practice to do a good job of it, and you can use it to produce beautiful things but embroidery as art is a rare thing to find. On the other hand, mediocre embroidery can be hung in a dark corner or added to a pile to be reworked later.

Whereas mediocre plumbing means that one day you're going to find a brown stain spreading across your ceiling, and when you do a fine plumbing job nobody even notices. Likewise there's not much scope for creativity in plumbing, you're called in to make sure that the water goes the right way through the building and not the wrong way, and there aren't too many ways to achieve that goal. Except in a small minority of situations where there's something unusual about the building.
 
Jesper de Jong
Java Cowboy
Posts: 16084
88
Android Scala IntelliJ IDE Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Winston Gutkowski wrote:I have to take issue with your point about beauty though. Code can be beautiful - as evidenced by existence of this book - and while I can count the number of times I've actually produced any on the fingers of one hand (this being one of them), there's enormous satisfaction in being able to look at something you wrote and think:
"You know what? I really nailed that".


I have that book too. Software can indeed be beautiful, but only to the people who understand it. Most people, to whom a computer is just a magical box of which they have no idea how it works, have no idea what software is and they have no idea of the beauty of it and the creativity of making it. They can look at a painting or read a book and experience the beauty, but experiencing the beauty of a well-designed piece of software is impossible if you don't understand anything about software.
 
Jesper de Jong
Java Cowboy
Posts: 16084
88
Android Scala IntelliJ IDE Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Paul: Looking at your examples of plumbing and embroidery, I'd say my work is much more like embroidery than plumbing.

Paul Clapham wrote:Likewise there's not much scope for creativity in plumbing, you're called in to make sure that the water goes the right way through the building and not the wrong way, and there aren't too many ways to achieve that goal. Except in a small minority of situations where there's something unusual about the building.


Software is not like that at all: there's not just one way or a limited number of ways to do something, there's an almost infinite number of ways to model a business domain. I've done a workshop once where the participants where going to build a simple game. Everyone could use any programming language and tools they wanted and design it however they liked. It was amazing to see at the end how different the solutions were. Not just because of different programming languages, but especially the many different ways in which people modeled the game. So in software development there's definitely a lot of room for creativity.
 
Ranch Hand
Posts: 606
11
Android Python Open BSD VI Editor Slackware
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Jesper de Jong wrote:
Last week I was talking with someone and I explained this. She was surprised, because according to her technical work and creativity usually don't go together.



I am not mother tongue English, and I struggle to express the creativity of my language abroad, simply because people... do not understand the language, so I slowly try to introduce them to some simple phrasal expressions, and they appreciate..

The lacking brigde coders<--->people bridge should be the ability to communicate of the coders at least to the marketing/sales and design people and even the Project Managers and the scrum masters that think to understand the issues without knowing them, and making them aware that especially for small projects they are not useful at all.

I think every coder should take more initiative, and learn at least how to pass across his/her message. Every coder should do also design, the two functions should not be separated at all, because coders are really creative, because for definition coding is problem solving and this means for definition creating solutions. They are not able to do it, because most of them are too rational, while instead persuasion is overly irrational and based on appearance instead of substance

I am sure in the future will partially change the situation, and if not, what matters is that coders are lucky people, and in the next 20 years demand and supply will be always favorable to them, because most of the people are just not able to have the resilience and intelligence to become a coder, so if they do not see creativity not big deal considering the favorable trade off, in terms of economical safety making a job one loves.

@Winston thank you for the book
 
Winston Gutkowski
Bartender
Posts: 10780
71
Hibernate Eclipse IDE Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Giovanni Montano wrote:@Winston thank you for the book


You're welcome. Some of the examples go over my head, but the chapter on "Beautiful Tests" is worth the price of the book alone.

Winston
 
Paul Clapham
Marshal
Posts: 28193
95
Eclipse IDE Firefox Browser MySQL Database
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Jesper de Jong wrote:Paul: Looking at your examples of plumbing and embroidery, I'd say my work is much more like embroidery than plumbing.

Paul Clapham wrote:Likewise there's not much scope for creativity in plumbing, you're called in to make sure that the water goes the right way through the building and not the wrong way, and there aren't too many ways to achieve that goal. Except in a small minority of situations where there's something unusual about the building.


Software is not like that at all: there's not just one way or a limited number of ways to do something, there's an almost infinite number of ways to model a business domain...



Jesper's quite right, of course. But in most cases it's still like peeing yourself in a dark suit: it makes you feel warm but nobody notices.
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
reply
    Bookmark Topic Watch Topic
  • New Topic