Creativity in Software Development?

“Is there a role for Creativity in Software Development?” – A lot of people seem to think not. Software development is considered to be for the “nerdy engineers”, “boring Math lovers”, “non-creative analytical programmers”, “more intelligent folks with little creativity”…

I was mulling over how true this is… I mean the above quotes are a reflection of the general perception of “Software Development”. However, is there really no room for creativity in Software Development?

Let’s pause for a minute to look at the basic definition. One of the best explanations of “Creativity” I found was

Creativity is the bringing into being of something which did not exist before, either as a product, a process or a thought.

You would be demonstrating creativity if you:

  • Invent something which has never existed before
  • Invent something which exists elsewhere but you are not aware of
  • Invent a new process for doing something
  • Reapply an existing process or product into a new or different market
  • Develop a new way of looking at something (bringing a new idea into existence)
  • Change the way someone else looks at something

[Src: http://www.brainstorming.co.uk/tutorials/creativethinking.html ]

Now if I view “Software Development” with the above parameters, then YES! Indeed Creativity and Software Development go hand-in-hand. Simply because in Software Development

  • One creates software which never existed before
  • One has the opportunity to introduce new processes / refine existing processes (either business or delivery)
  • One has the opportunity to develop new ways of looking at something (bringing a new idea into existence) – either for customers, enterprises or the developer community itself
  • And yes, New software can definitely pave the way for how anyone looks at something!

As I look back at my own journey in Software Development, anyone has the opportunity to be creative in the way you develop software. Looking at the Software Development Life Cycle (SDLC) as it it called in industry parlance, one has the opportunity to be creative in the following
(1) Requirements Capture – The way you capture / elicit customer requirements
(2) Analysis – The methodologies and processes used in Requirement analysis, and how you apply these
(3) Architecture – How you define the software architecture balancing short-term and long-term goals
(4) Design – How you design a software system (The design principles)
(5) Development – How you develop a software system (The tools / technologies / processes / teams / methodologies, etc.)
(6) Testing / QA( Quality Assurance) – How you test a system? (The test plan / strategy / team / test-cases / tools, etc.)
(7) User Support – How you plan to support a software system?
(8) Project / Program Management – How you manage a project / program? (The plan / the resourcing / the location / execution model, etc.)
(9) Post Production Support – How you support a software once it goes-live?

So you see, there is ample scope for one to be creative in the field of Software Development? It all depends on your perspective!

Advertisements

One comment on “Creativity in Software Development?

  1. It also depends on what and how you want to develop. Creativity breaks rules! Breaking the rules is frowned upon in a team of software engineers. I did strange things with code 20 years ago, but now it sounds like a former life.

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s