My Message from the CTO for the tenth newsletter:
Software Engineering?
Something resonated inside when I reread the last newsletter's Message for some inspiration in writing this one. In it, if you recall, I said that writing quality software was an iterative process that moves your software towards higher quality, that you can't just write "good" software straightaway. Writing software is more like how a painter paints a portrait than how an engineer builds a bridge, more art than science.
Like a painting, software builds up from the broad background wash to the nitty-gritty fine brushstrokes. Make a mistake, just erase or fix it: software is malleable. In fact, the fix, once complete, won't even be visible. Heck, that's one reason we have version control: it's the institutional memory of how the software got to where it is. The New Yorker has a great series of videos showing the artist Jorge Colombo finger-painting pictures using the Brushes app on the iPhone: that's how I visualize how great software is written.
I'm not saying that writing software should become this free-for-all, anything goes, Wild West environment. Achieving excellence through iteration is still guided; it's certainly not random. We're pushing the software up the quality slope all the time. But it certainly isn't engineering in the traditional build-something-physical sense.
Maybe it's time to emphasize Pete McBreen's Software Craftmanship idea again.
OK, I just had to get a reference to the finger painting on an iPhone, but the point remains. Writing software is an iterative malleable process — building up to a finished product — and the mistakes we make en route aren't even visible in the finished product.
Free DevExpress Products – Get Your Copy Today
The following free DevExpress product offers remain available. Should you have any questions about the free offers below, please submit a ticket via the
DevExpress Support Center at your convenience. We’ll be happy to follow-up.