Is software development an engineering discipline?
Is it art? Is it more like a craft?
I had the opportunity to write a recommendation for Rastin Mehr on LinkedIn. I wanted to share part of it on my blog because it talks about the fine line between art and software design.
Rastin is an artist, and software is his craft. Software is what I call an invisible art – the customers, who ultimately pay for the work, typically never get to see the actual code. If you hire an illustrator, you can see his portfolio and judge his work, or if you hire a musician, you can listen to his compositions and performances. People who are only users of software frequently fail to appreciate just how very hard it is to write code. The art of programming can only be experienced indirectly, by the performance of the software it describes. Rastin doesn’t see programming as simply a mechanical process, but an organic one. He sees it as both a science and an art – two aspects that nicely complement each other. To be a truly great programmer, you need years of painstaking practice, where you constantly challenge yourself into doing things you’re unfamiliar with – just like other forms of art.
Mural painting, for instance, takes a special eye. In software development, you may only ever see the one little piece of detail that you’re working on. If you watch mural painters up close, it’s quite difficult to discern that the splash of paint they’re working on is actually someone’s hand, or eyeball. If you can’t see the big picture, you won’t be able to see how you fit in.
Great software entrepreneurs, like Rastin, are in it for the joy of building and being part of a team, and for the satisfaction of knowing that you started with a blank canvas and produced a work of art. When you can create awe-inspiring work with little more than the exertion of the imagination – it’s fair to assume, you’ve crossed the chasm.
If you enjoyed this post, don’t forget to say hello on Twitter