Creativity in Software Development

Software development is a form of creativity.

I’m covering two subjects here

  • easiness and
  • creativity

When you are creating something, easiness is important

There is a certain threshold of work that takes an activity from supporting creativity to blocking it. This is different for every person. Those people who are highly natively creative may have a lower native threshold for work. On the other hand those who are creative have an incentive to learn how to do work in order to remain creative so their threshold will increase through learning. Still, make things to hard, and creativity goes away.
This is why easiness of software development and software development creativity go hand in hand.

The importance of easiness in building This Stack

To build the entire stack, each level needs to be quick and easy. Too much digging into the details diverts you from getting an entire application stack done and drags you off on a tangent. This is not to say that the details are not critical, in fact careful attention to detail can prevent you from debugging which is a detour/diversion

Details vs Creativity

When I’m talking about getting diverted into details here are the most common examples:

  • too fine a specification on UI is an example
  • troubleshooting and debugging get in the way of the creativity and the easiness
  • poorly designed/implemented/expressed systems tend to take very long to build and require lots of unnecessary detail work
  • too many technologies per layer

Trillions of bits have been written on how to build software easily and well.

layers and levels are different.

Creativity is a measure, not an either or

Creativity is an analog measure rather than a binary condition. What I mean by this is that there are various levels of creativity. This can best be described by an example.

If I were to create a novel, the lowest level of creativity might be
words. I can create words all day long by typing them. They might just end up being word salad, but they still get created as I type them. Perhaps a little higher level of creativity might be sentences. Putting the words together into coherent sentences – descriptions, dialog etc. is a higher level of creativity. As I type them they get created. They might not create a coherent story together, but they are still  created. A higher level of creativity would perhaps be a story. By putting sentences together that cohere into a story, I create a story. The story would have plot and tone, and theme, and characters etc. This is a higher level of creativity. The story might however be very hackneyed and derivative and boring. An even higher level of creativity would be to create a story that moves people and teaches people, puts sentences together with clever sentence forms and that most of all is a story that has pretty much never been told before. This is a very high level of creativity. The bottom line is this – that creativity exists at various levels, and this is true also in software development.

Creativity in Software Development

You create when you write a line of code. You create when you write a program similar to many that have been written. You create when you write a program that has an excellent architecture and that has been written before. The goal of ‘this stack’ is to be able to write programs that have never been written before, with an excellent architecture that allows more things to be built on top of them, and can be built out by multiple people and companies until they reach the level of understandable and computationally creative artificial intelligence that is not evil and that can work effectively with humans.




Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s