All posts by Craig Murphy

How much pressure is required to make somebody more productive?

Michael has written another great post here. I don’t want to steal his thunder, so please go read his post (it’s an excellent read), then read my thoughts below!

Earlier this year a good friend and colleague was discussing (with my boss) the idea of increasing workload and the pressure required to improve/increase productivity. Working out just how much more work an individual can cope with is difficult and is one that Michael covers in his post. Too much work and the individual goes in to shutdown mode, too little and they procrastinate.

Whilst I agree with increasing a person’s workload, it’s important to consider the unseen work they might be undertaking. For example, and I don’t wish to blow my own trumpet, I put in a lot of hours for my employer (more on this in a moment) and I put in a lot of voluntary hours writing/presenting for Scottish Developers, the Developers’ Group and Agile Scotland, amongst others.

I’ve recently seen my employer’s workload increase, particularly the amount of travel has increased. This has meant sacrifices elsewhere: writing takes time and inclination, without both, writer’s block is very common. After a working week involving a lot of travel and 6-8 hours of working time each day too, one doesn’t really feel up to firing up the laptop to start work on articles and presentations!

Earlier in this post I mentioned that I put in a lot of hours for my employer. I put the hours in just to get the job done: and I try my best to make sure it’s a “good job, well done” too. I’m sure that I procrastinate, who doesn’t? I’m sure that I sometimes take longer to complete a task than the next person, again who doesn’t? What I have noticed however, and this is a general observation, not specific to any organisation, is that there are folks out there who take a long time completing what should be a simple task. Of course, there are similar folks who can complete the same simple task in a much shorter time-scale than was ever expected.

Productivity comes through “getting on with it”, it comes with the realisation of “task completion”: the more tasks that an individual completes, the more productive they should become. Ultimately, the individual will set their own threshold. For productive individuals, this will be easy and should require no outside involvement, which, IMHO, is a bad thing: outsiders shouldn’t try and alter individuals thresholds unless the individual concerned is the worst kind of procrastinator, the kind who never finishes anything.

The Best of Delphi 2005

the best of Delphi 2005
On the 29th of November 2004 I will be speaking at The Best of Delphi 2005: an event organised by The Developers’ Group.

The event takes place here: 1 Whitehall Place, London, SW1A 2EJ and starts at 0900 – be there!

The full agenda can be found here.

I’ll be speaking about two subjects: refactoring and XML Web Services.

Refactoring
I don’t know about you, but I’m a lazy coder: I like my IDE to help me as much as possible. I used to be happy with simple stuff like indenting or “outdenting” blocks of code. Then along came code completion, heaven! Naturally I crave for more, more productivity gains, more guarantees that the code I write is syntactically correct and it is consistent.

The refactoring support in Delphi 2005 provides such guarantees: no longer do you have to rely on cut’n’paste to move chunks of code around (many a customer-facing error has been made with “cut’n’paste”!).

Use Refactoring To Move From Win32 Delphi to Delphi 2005
Moving your application from one version of Delphi to another is never quite as easy as it looks. Even more so if it’s from Win32 Delphi to Delphi for .NET!

Consider a legacy Delphi 5 application that was written around the time Delphi 5 was released. Like all code that was written “a while ago” (a couple of weeks ago in my case!), you probably look at some old code and think: “did I really write that?” and/or “I haven’t a clue how that piece of code actually works”. If those quotations ring true for you, Delphi 2005’s refactoring (and unit testing) is something you should be very interested in: refactor what you don’t understand.

Delphi 2005’s refactorings will let you re-write (alter the design of) your old code whilst preserving the functionality. Similarly, if you don’t understand how a piece of code works, Delphi 2005’s unit testing will let you write tests to “surface” an understanding.

If your application doesn’t use any third party components, then moving from say Delphi 5 to 6 or 5 to 7 is probably the simple matter of a recompile, perhaps with one or two minor code changes.

However, if your application uses third party components, your move to a new version of Delphi typically will involve an upgrading those very same components! And this is where it can get a little hairy. My experience has shown that moving a moderate-sized application from Delphi 5 to Delphi 7, whilst taking into account a raft of third party component upgrades, sparks off the need to re-test and often re-write large parts of the application.

Similarly, moving from Win32 Delphi to Delphi 8 or Delphi 2005 also necessitates that your application is retested after the move.

It is for reasons like these that Borland have incorporated two features into Delphi 2005: refactoring support and unit testing via NUnit. Refactoring brings with it the productivity gains we are all looking for and NUnit provides us with a means of ensuring that the refactoring hasn’t broken anything. Refactoring and unit testing are made for each other: I will cover refactoring during my session and Dr.Bob will cover unit testing in his.

Attend this session if you want to learn how to be more productive within the Delphi IDE (Win32 or .NET), how to be more responsive to your customer’s [changing] needs and how to bring your application to market faster thus encouraging an early return on investment and realising profit sooner rather than later.

XML and Web Services
Between Delphi 6 and Delphi 2005, the bottom line functionality of Delphi’s support for protocols like the Simple Object Access Protocol (SOAP) and web services hasn’t really changed very much. Granted, there have been bug fixes and upgrades to support newer versions of World Wide Web Consortium (W3C) standards, but if you look at the applications that can be created using Delphi, not much has changed.

So why spend 45 minutes talking about it?

Well, there are plenty of good reasons, least of all:

1. Delphi 2005 could be the version you have been waiting for: a lot of folks follow “odd numbers”, Delphi 3, 5, 7…Delphi 2005 is the next logical version. If you plan to adopt Delphi 2005, and you are coming from Delphi 5, then it is possible that your Delphi 2005 application architecture will need to involve web services.

2. Delphi 2005 could be the version that you plan to “migrate to .NET” with. You’ll need an understanding of what’s in .NET that can help you: this session will provide you with an understanding of how to integrate your application(s) using .NET’s XML support and will show you how to interact with other applications running elsewhere on the Internet.

Building applications that rely on web services to serve up their functionality might sound odd. However, think about how your existing applications are architected: you probably use “layers” or abstractions to shield GUI functionality from database access functionality, for example.

Building an application using web services instantly gives you a layer of abstraction: you can implement functionality once, and then use it from a GUI client application, and web client application or even a mobile device – anything platform that is capable of consuming a web service could potentially become a user of your application.

This suggests that your application could be used in more remote locations….increasing the return on investment and bringing your application into profit much sooner.

Branding is cheap…

My travelling colleague required some headache tablets last week. Luckily it was the middle of the day in the quaint village of Harpenden, Hertfordshire where a Sainsbury’s store is located.

We found the wording of the ‘cheap’ paracetamol to be somewhat amusing:

cheap branded products

Blogsphere

What goes around comes around. Blogging is no different. Folks even call the “space” in which blogging occurs “blogsphere”. I don’t know whether it should be one word or two, but that’s not too important – either way they sound the same and mean the same, but let’s not argue, you/we are amongst friends…

Personally, I’ve been a blogsphere citizen since May 2004, however I’ve been following various blogs since late 2003. Indeed, so much good stuff is written via blogs, that my NNTP usage as dropped to virtually nothing – hey, I even blogged about it here. Actually, the number of blogs that my RSS aggregator has to manage is getting out of hand – it seems that blog after blog after blog has really good content and just has to be added to the aggregation list. Now this shouldn’t be a bad thing, especially because my RSS aggregator presents me with a list of new content every hour or so (configurable) which lets me read through the RSS items and read only those that sound interesting. The whole process is actually quite efficient.

However, I’ve begun to notice an interesting pattern. Most of the blogs that I visit regularly are one step removed from each other – indeed, most of the new blogs that I stumble upon have “blog rolls” that look very similar to my RSS aggregation list. Blogging has created its own web of intricate connections. And we’re almost able to classify these connections, thus bringing some real meaning to links that have been established.

As I type this, Ron Jefferies posted this: Blog Considered Harmful. Ron seems to agree with my earlier point about RSS and bandwidth.

So these spherical connections in blogsphere leads me to think that we might begin to think about how we relate to each other, via the Internet of course. What is it that makes me one step removed from you? It’s very likely that we’re in the same social circle – albeit geographic limitations apply. We probably like technology and gadgets. We probably like proper beer and good wine. We probably share the same taste in music. Of course, occasionally, we have probably met and agreed to blogroll each other, but that still counts – we’re still one step removed from each other.

Please, comment away: why are you just a single step away from me? Should I be blogrolling you? What connects us? Is it just the blogsphere? Coincedence? Is there something more sinister afoot? Or is there something much smarter underlying it all? May be it’s just the technological circles that we move in. Are the relationships manifesting themselves via the blogs that I follow…over to you.

Why Scrum Works

Scrum, the ethos of simplicity.

Last week I gave a presentation to the Developers’ Group and Scottish Developers user groups.

I spoke about the project mangement/control technique known as Scrum. The session ran for over an hour and some lively debate followed. Read more about it here.

Anyway, the slides and a sample backlog are now available here.

It’s worth noting that for the purposes of this session I split my product backlog in to four sprints. In reality, you probably don’t know the contents of subsequent sprints until after the last sprint has been completed. Agility. Flexibility. Simplicity. It’s all about the freedom to change the order in which requirements are turned in to working value/functionality.

I’m a Go-Getter

I read about this over on Clarke’s blog.

It seems that I am a ‘Go-Getter’. Do you agree?

Summary of Go-Getters

  1. Inventive, resourceful problem solvers with a love of life
  2. Can be tough-minded when necessary
  3. Think of themselves as enthusiastic, determined and alert
  4. May become frustrated by rules and routines

Spookily accurate…for now.

Interestingly, my last psychometric test revealed that I wasn’t too keen on rules/routines: sometimes, in order to get things done, or be inventive, rules have to be altered, usually for the better. Similarly, folks have told me that I can be ruthless, take no prisoners…or be tough-minded when needed.

Hailing a private hire cab…

We (my travel colleague) and I stayed at a TravelLodge in Portsmouth. The TravelLodge was, as they all tend to be, basic, but comfortable and satisfactory.

We left the hotel, carefully positioning ourselves using the triangulation manoeuvre: find three well known objects and put yourself in the middle of them, it makes it easier for taxi drivers to find you. However, there were two private hire cars right in front of us. So, because we can’t “flag down” or hail private hire cars, we rang the number on the side of the car. Imagine my surprise to hear an answerphone message! We asked the private hire driver to radio his office and to advise them to pick up the ‘phone…but this was to no avail.

So we dialled another private hire firm and gave them the triangulation point. “5-10 minutes” was the waiting time we were quoted. We waited for 15 minutes. Then a licensed black cab came along…which we are allowed to hail.

So we hailed it, got in and sat down just as the private hire car arrived behind us. Naturally, we ducked down in the seats exclaiming “drive, driver, drive!”

DG834G != WGT624

A week past Saturday I advised my client to purchase NetGear’s DG834G wireless adsl modem firewall router from PC store that has stores in the UK yet uses ‘World’ in its branding.

Unfortunately, the unit only worked for a couple of days before it was classed as Dead On Arrival. Not to worry, I advised my client to return to the same store and ask for another identical replacement. This is actually a rather nice little unit – it’s a V2 release, it’s white and it’s smaller than my V1 edition (which has been working well since January 2004, I’m very pleased with it).

Last Saturday, I drove the 140 or so miles (round trip) to install the replacement.

Imagine my horror when I discovered that the replacement was a WGT624 wireless firewall router. No built-in ADSL modem. This unit required an ASDL modem for it to work in a similar fashion to the DG834G unit.

So how did my client end up with the wrong product? Well, as you might imagine, it boils down to customer service: the lack of it.

The sales bloke in the world of PCs was keen to extol the virtues of the WGT624: it was 108mbps vs the 54mbps of the DG834G. And it was only a tenner more expensive. What he forgot to mention was that my client would have needed to purchase an ASDL modem too. May be he didn’t forget, may be he didn’t know?

So, my client and I returned to the offending store, WGT624 in hand. We hunted down the sales bloke, who happened to be chatting to the duty manager at the time. The sales bloke was allegedly busy, so the duty manager offered to take over: result! Or so I thought. He then proceeded to pass it over to a different sales bloke who was a little unhelpful (although I think it was their stock system that couldn’t help him) and was unable to confirm if the DG834G was available in a nearby store.

Whilst I was a little reluctant, we ended up replacing the NetGear kit with DLink’s DSM-604T which does include a firewall, despite the box stating just wireless adsl router. Sorry NetGear, but the said store didn’t seem to carry much stock of anything: what it did carry was a very confusing mix of wireless hardware.

The moral of this story: only purchase things from this worldly-wise PC store if you fully understand what you are buying, don’t rely on the staff helping you. My client happily admits that he doesn’t know enough about IT, but he doesn’t need to, that’s what I do for him. He’s now a happy client, which is good for me, but not so good for the PC store in question.

SOS – the original text

I didn’t write what follows, but I agree with it and felt it should be published for all to learn from.

Stupid people should have to wear signs that just say, “I’m Stupid”. That way you wouldn’t rely on them, would you? You wouldn’t ask them anything.

It would be like, “Excuse me…oops, never mind. I didn’t see your sign.”

It’s like before my wife and I moved. Our house was full of boxes and there was a U-Haul truck in our driveway. My friend comes over and says “Hey, you moving?”

“Nope. We just pack our stuff up once or twice a week to see how many boxes it takes. Here’s your sign.”

A couple of months ago I went fishing with a buddy of mine, we pulled his boat into the dock, I lifted up this big ‘ol stringer of bass and this idiot on the dock goes, “Hey, y’all catch all them fish?” “Nope Talked ‘em into giving up. Here’s your sign.”

I was watching one of those animal shows on the Discovery Channel. There was a guy inventing a shark bite suit. And there’s only one way to test it.

“Alright Jimmy, you got that shark suit on, it looks good… They want you to jump into this pool of sharks, and you tell us if it hurts when they bite you.”

“Well, all right, but hold my sign. I don’t wanna lose it.”

Last time I had a flat tire, I pulled my truck into one of those side-of-the-road gas stations. The attendant walks out, looks at my truck, looks at me, and I SWEAR he said, “Tire go flat?” I couldn’t resist. I said, “Nope. I was driving around and those other three just swelled right up on me. Here’s your sign.”

We were trying to sell our car about a year ago. A guy came over to the house and drove the car around for about 45 minutes. We get back to the house, he gets out of the car, reaches down and grabs the exhaust pipe, then says, “Darn that’s hot!” See? If he’d been wearing his sign, I could have stopped him.

I learned to drive an 18 wheeler in my days of adventure. Wouldn’t ya know I misjudged the height of a bridge. The truck got stuck and I couldn’t get it out no matter how I tried. I radioed in for help and eventually a local cop shows up to take the report. He went through his basic questioning..ok..no problem. I thought sure he was clear of needing a sign…until he asked “So..is your truck stuck?” I couldn’t help myself! I looked at him, looked back at the rig and then back to him and said “no I’m delivering’ a bridge…here’s your sign.

Blogging at 35,000 feet

There is an airline meal in front of me; I’m one -third of the way through Jeremy Clarkeson’s The World According To Clarkeson and half-way through the flight.

Now, unless the meal is removed soonish Clarkeson may not be finished for another day.

Which is why I’m writing this blog entry (and a few others) using Pocket Word. I realise that the post title may have misled you…sadly this Boeing 757-200 doesn’t have in-flight Internet access.

I am in fact sharing the 757 with a bunch of neds…streams of them have just gone past me for some sort of party at the front of the cabin, or may be it’s for the WC?

But why did they choose to go to the WC during the meal? Ten of them, I counted them one by one and didn’t fall asleep, all huddled around the solitary WC at the front of the cabin. Behind them, moderate carnage as people juggle their own airline meals, just to let each of these guys out of their seat.

What does It take to get a decent cup of coffee in Britain?

Coffee should be opaque.

I don’t expect my black coffee to be poured into a white cup only to be greeted with confirmation that the bottom of the cup is still white…with the cup still half full.

But that’s exactly what I received during my return flight from Tenerife: a cup of see-through coffee.

This is just one reason why we, Great Britain as we think we should be called, are the laughing stock of proper Europe. This country just doesn’t live up to its name anymore.