Archive for June, 2007

Is Development really Engineering?

An interesting blog post from Steve McConnell about whether software is engineering.

I actually come more from the engineering end of things (educationally, at least) than the Comp Sci route. I hold a Masters of Engineering, and my degree involved more electronics and mathematics than software. Read more »

Office and Workflow Integration - Version WTF?

Dear Microsoft - The word Ultimate means ‘Final’. Somehow, I suspect there will be future versions of Office and Windows - what do y’reckon?

Okay, so I’m a simple man really…

I’d been asked to demo a custom workflow to a customer. They’d some fairly clear requirements, and we just wanted to knock up a prototype. It was all about filling in ‘fields’ in a word document. “Great”, I thought, “we can allow them to do this entirely within Word”. And, looking at the marketing bumpf, the demos and the docs, yeah, we could. The workflow task could be displayed in MOSS, and the document properties pane would expose any other fields they needed.

Except… …I couldn’t get the ‘Edit this Task’ button to appear in Word. I know it should be able to - but it wasn’t. I tried everything; nope, nothing. In the end, I ran out of time - but one of my colleagues, of a slightly curious nature, kept plugging away at it.

It turns out, it was the wrong version of office. It used to be that versions of things were simple - there only was one for each ‘iteration’ of the software. Then we started getting ‘Home’ and ‘Professional’ - which was okay, and seemed sensible, to be honest. I liked that - it was simple, just like me. Read more »

The Best Code is No Code at All

As always, Jeff Atwood has an interesting around code being our enemy as developers. His proposal is that code needs to have better ‘brevity’.

I don’t think Jeff is talking about Brevity - and I think he even says that - but about Clarity. Clarity is simple, obvious, and to the heart of the matter. Real clarity is brief, but easy to read. That includes comments, too.

It could be made shorter in ‘text speak’, but how clear are those messages? There is a reason we don’t use 1 letter variable names!

It’s not tiny fragments of obscure code that does massive amounts (yes, I’m thinking of Perl in that, amongst others). And it sure as hell isn’t about lines of code - many languages (with notable exceptions) let you put an entire program on one line. Ever tried reading one? I did - you can’t.

It’s just about being simple, clear, and to the point. It’s kind of like Buddhist enlightnment - someday, with enough practice, I’d might just achieve that.

Unfortunately, I do think that we’re constrained - people often expect very complex things and lots of features from their software, and when people are demanding complex programs, you get complex code. Look at the complexity cost of, say, just having a simple UI for a Windows app, as opposed to a console app.

Some of the comments are very good, too. ‘Mickey’ is right - often, we’re trapped by bloated design. KISS is my watchword (and occasionally gets me a slap too).

Fred Ross is right, too, in his comment about code maintenance - but he does miss the point that often we’re under pressure from the boss to ‘just get it done’, and the idea of ‘get it done, but in a way that will save us time later’, well, usually, that dog won’t hunt.

Someday, we’ll get past the idea of using lines of code as a metric for how ‘good’ code is. I guess the problem is that clarity is more ethereal.

Comments from my old blog:

I agree with most of your points - but diverge in perhaps the same places you might too.

Examples… a typical .NET web application - which has C#, HTML, DHTML, Javascript, horrific call backs for AJAX, SQL, Stored procedures, triggers… the list goes on. There doesn’t seem to be any sensible way of making it “simple”.

The other problem (at least in my recent experience) is RAD or AGILE development… which often leads to spaghetti code unless the client is willing to pay a huge code tax for re-writing swathes of the project.

By Jonathan at 09:20:28 Tuesday 5th June 2007