Creativity Matters in Software.
What was the idea that we drew on cocktail napkins? We wanted to take the analogy of building architecture with LEGO bricks into the mainstream community, encouraging children who enjoy using both sides of the brain to solve world problems using software. We often focus so much on the left-brained tasks in software development – the code, the bits, the bytes – and we oh-so-rarely highlight the creativity, innovation, and art that goes into building good software. A good developer or architect knows the technology inside out, and can put the parts together fast. A great developer or architect sees both the aesthetic beauty and elegance of design, and at the same time sees the internal skeleton of a solid technical foundation that lasts over time.
Creativity matters in software development. Innovative, unique thinking can build better applications, and build them faster. Sure, you can be handed some specs to follow steps 1-15 just like you would put together the ingredients to bake a cake. But that’s really ASSEMBLING not really creating, isn’t it? There are times we’ll want to assemble, as there are strict rules when it comes to combining the right measurements and temperatures for baking. However, think of the best meals you’ve ever eaten (nostalgia aside), oftentimes these are the dishes that are unlike no other. Where does this uniqueness come from?
I have a good friend who is a fantastic developer – his software design is so elegant and crisp. And works without fail. And even anticipates strange exceptions to the rule that would occur .00001% of the time. Those exceptions are often the downfall of system that works perfectly 99.999% of the time, and conversely are blatantly noticed by 99.999% of the population of users. Anticipating the exception is one of the secrets to a great software developer. With the information that’s available on the web, it’s easy to program according to rule.
formula 3: Anticipate Exceptions.
One day I ask him “So, A, how do you do it? Tell me the secrets! And tell me now!”. Nonchalantly, he tells me that he can think in 4th dimensional form (don’t we all?) and that he can visualize the design of a software blueprint very quickly this way. Then he translates that 4th dimensional design into 2 and 3 dimensional form. Because he knows his design is solid and proven in the 4th dimension, he knows it will be solid and proven in the 2nd and 3rd.
The only way I can describe downleveling in dimensional thought is with an analogy. Picture a camping tent in a box, unassembled. Now picture yourself in the woods, showing someone to pitch that tent. Visualize taking the fabric, binding it to the poles with string, and propping it up with height. This is how my friend pictures writing code. Now picture having a piece of paper and pen only to write down instructions on how to pitch that tent. A little more complicated, but doable – that’s like taking real world business situations and translating them to instructions.
Now picture drawing those instructions in 2 dimensions – meaning you can’t use height.Now it gets complicated! So in order to show the middle pole propping (That’s me trying to write code – lots of metaphorical arrows and redundancy). Sometimes this is what code looks like. It will take a truly creative mind to read these instructions and visualize the 3 dimensional tent. And imagine an even MORE creative mind to picture whatever a tent would look like in 4th dimensions. I imagine it to be immensely more elegant. That’s why we need creative minds!
formula 4: Creativity is a business requirement.
With creative vision, thought, and yes sometimes genius, the most elegant and functional software design is built. We certainly more creative thought in this field. People who aren’t afraid of the rigor of math, and who aren’t afraid of working without rules. Great software is a combination of both art and science.
Join the discussion, and subscribe to be notified of future WomenBuild events!