DevExpress Newsletter 10: Message from the CTO

ctodx
09 September 2009

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.
Anonymous
Jack McCullough

How about just using "Software Development/Developer"? Development refers to an act of improving something through refinement or expansion; sure sounds like what we do every day.

9 September 2009
Anonymous
William

Good point.  Also, good software evolves just like Televisions, Cars, Lawn mowers, new machines for medical use, etc.. human nature (or at least the potential some realize) is a move forward.  There is a past, a present, and a future - there is always a future so long as someone finds and solves a new problem.

9 September 2009
Mark Douglass
Mark Douglass

Julian,

I couldn't agree with you more. A great piece of software is always developed over time, incorporating the mistakes and discoveries along the way.

The true artist though has the original vision of where the software should go. At times, I feel as though most developers look at development as a nuts-and-bolts, put together something as quickly as possible without dreaming of the truly exceptional.

We still have to pay the bills though...alas...

Henri Matisse said it best: "What I dream of is an art of balance"

9 September 2009
Anonymous
Bernard

As a "grey beard" I have heard countless discussions over the subject of IT semantics. The Homo sapiens is intensely competitive and with that territory enters the need to appear exclusive and mysterious when one is “qualified” – the “Shaman” instinct. The abundance of special words and acronyms is inversely proportional to the level of skill and evidence based science present in the “discipline”, the company or the organisation named. A big chunk of the IT industry is a good example of this. Certainly at one time a “developer” was a broad term for anyone who wrote a bit of “code” including those that had dragged and dropped a macro in MS Office. The term “software engineer” was reserved for those developers capable of producing and working to a logical, affordable and achievable specification that was produced in response to solving a real-life need.

I work in a highly specialised industry where bespoke applications are in abundance. Occasionally I am asked to produce a full life-cycle application I enjoy that. Increasingly I am brought in on an hourly fee to “take a look at” an expensive and decorative “picture” painted by one or more “software artists” that I am told has “a lovely look n’ feel” and “looked smashing in the salesman’s Power Point presentation” .  More often than not I find a sad, clumsy database that ignores every single relational database rule - a blast from the IBM IMS past – with tables containing over 100 columns and 60% of the database containing the magic “value” NULL!  The front-end, usually web based, is a glorious mish-mash of embedded SQL and other complex “brush strokes” valiantly trying to either push data into one of the database “buckets” or retrieve it with some semblance of accuracy. I love “software artists” they pay my rent and put bread on the table. At least 50% of my income is derived from trying to either build something to by-pass the aforesaid mess or in the best case scenario, make a little silk from the legendary sow’s ear. Oh yes, the purveyors of expensive hardware also love them!

10 September 2009
Anonymous
Antonio De Donatis

Hi Julian,

I am pleased to find out that your newsletter made me think again.

I will not be able to express the many thoughts that occurred to me after reading your post, since the topic is too wide and deep.

I will try to capture the most important though.

In 1962, Donald Knuth started writing a legendary monograph that in the years to come inspired generations of developers. Its title was: “The Art of Computer Programming”.

Lots of things have happened since then.

So, for the sake of the conversation I will be provocative again, and say that software is NOT Art, even if I appreciate your and Knuth’s reference to Art.

I am guessing that you both used the term/concept Art to highlight that the process of creating software is highly creative.

However, to compare software to Art because they share the magic of creation can be misleading since there is an inherent difference, IMHO, between the two:

Software is used. It is actually going to be utilized by either humans or other software.

Whenever I design/implement a software solution I always focus on the user (human or automaton) first and foremost because the user is the “motive” (or, at least, the legit and good cause).

I do not think that an artist produces a piece of Art considering how it will be utilized/perceived by the public and, because of that, I feel that Art is an entirely different kind of animal from software.

Yet, it is very helpful to compare software with Art since it reminds us of how much creative (and “magic” in its own way) the process of writing software is and how much it depends on the human factor.

But let’s never forget the ultimate reason for producing software: to use it (and use it conveniently, of course).

Yours

A

10 September 2009
Doug Malcolm
Doug Malcolm

Julian,

Your analogy to a painting is exactly how I convinced the CEO of my company 6 years ago that our sales system software should not be developed in isolation by a group of software specialists with no sense of the business. Imagine having to explain the position, font size, color, data relationships, business logic etc. to a softare expert living in a box. Impossible. I am a Sales Manager with some software ability and make changes iteratively almost weekly. With your tools so easy to understand and configure I firmly believe that good (useable) business software can only be developed by someone intimitely aware of the user's point of view. Otherwise, the software developer can't know what cool feature might of interest to the user and the user won't know what cool feature is possible in the software. Long gone are the days of the Word Processing departments using WANG computers to create reports. We do that ourselves now. Tomorrows managers will be software savvy or should I say, software artists.

11 September 2009
Anonymous
Antonio De Donatis

Weird.

I posted here yesterday and my comment never showed.

To make it weirder, there is this comment above which is quite offensive for "software specialists", questionable in many ways, except for the point about user awareness which is a rip-off of my comment which wasn't published.

Additionally Doug comment depicts DevExpress components as a product that targets wannabe developers that are somewhat manager, rather than professional developers.

Just wonder how much that matches the view of the company and I would appreciate to see some sort of official statement about that.

Btw, as much as I appreciate the quality of DevExpress software and service, I will be less naive in the future and do not waste my time in posts that can get lost on the network (I did receive the confirmation that was received though, so it didn't get lost on its way but somewhere else).

Regards

A

11 September 2009
Anonymous
Donn Edwards

I like the idea of being able to fix the mistakes so that it looks like they never existed. If only that was true with data as well.

I must say I am excited with the ASPxGridView product I am using, and the DX help team is amazing. They have been top notch, along with the excellent videos and code samples. I am now quite proud of my efforts, which you can see at www.mustang.co.za

I am using it as a development and testing platform for a bigger project involving hundreds of tables and several GB of data

12 September 2009
Anonymous
Gordon Morrison

You WERE 100% right that software was more art than engineering.  But now you are wrong if you continue down the path that software is an art form.  I wrote a book "Breaking the Time Barrier - The Temporal Engineering of Software" that teaches how to engineer software.  I'm giving a webinar on "TheDACS.com" 16 Sept 2009 at 3-4PM EDT for those that would like an introduction to engineering software.

Gordon Morrison

Author / Inventor - Multi-Core & Hyper-Threading Technology US Patent 4,847,755 - Licensed to Intel, TI, Motorola, IBM, Sun, and many other.

13 September 2009
Julian Bucknall (DevExpress)
Julian Bucknall (DevExpress)

Antonio: Sorry about the delay in releasing your comment. I was on vacation when this blog post was published (I wrote it ahead of time and set the publish date in the future), and so wasn't as quick as I usually am in releasing comments from the queue.

Cheers, Julian

18 September 2009

Please login or register to post comments.