Monthly Archives: March 2009

Getting that patch installed.

The life of a software developer can sometimes be a little frustrating. Quite often when I work with development teams I am shocked to find that they don’t have administrative rights to their local workstation or they don’t have the capability of choosing what platform they develop on to best meet the requirements of the project.

I think the secretGeek put it when when he ventured that corporate IT may be a form of emotional abuse. Relating this back to software developers specifically, and introducing an analogy – if developers were butchers, then corporate IT would appear to be some kind of gremlin running around taking the edge off the knives to make the job even harder.

Sometimes I have to laugh though. I was having a conversation last night and one of my co-workers remarked how they were having to use a particular .NET technology because they couldn’t get the servers patched with .NET 3.5 SP1.

Apparently they aren’t allowed to install a patch unless it has been vetted through some internal process. One has to wonder what that process is – and how they ensure that the patch is appropriate for their environment. What if it fixes security issues? What are the risks of not patching?

When faced with idiotic odds, I sometimes think it becomes time to resort to subterfuge to get the job done. How would you recommend my co-worker get this patch installed either by manipulating the wetware or somehow sneaking in the upgrade onto the server? I could think of a couple approaches which might be regarded as hacking 😛

Size Doesn’t Matter – Time Does

I just noticed this tweet from Scott Hanselman about the size of downloads. The truth is it doesn’t matter how big the file is, what matters is how long it takes to download and install, and I’m not actually talking about download & install time for the .NET vs. Java here, I am talking generally about stuff we download from the net.

Basically, what people really care about is their time. These days we don’t have to worry too much about the economic cost of downloading 100MB worth of files (some people do, but lets limit our survey set to geeks who know how to purchase broadband).

The point is – if a file is 100MB and it takes five minutes to pull it down, and five minutes to pull it down, and I have ten minutes to spare then I am probably happy enough. If however I have two minutes to spare and its going to take ten minutes to pull down and another ten to install, then I’m probably not a happy camper.

The relative benefit of each additional megabyte of download (therefore time) possibly counts here. For example – if I just need the runtime to run a crusty Windows Forms application on an XP machine and I am time more, then I’ll be even more pissed off that I am downloading 100MB instead of say 25MB. Perhaps this is the strongest argument for breaking the framework up into components which can be delivered as needed? (note: I’m not necessarily an advocate of breaking up the framework – I’m a firm fence sitter on that one).

Some things that I truly want to master.

As a software developer I tend to get across a great many technical topics to varying levels of depth. I of course have the things that I specialise in, but there are other things that, whilst I am happy enough with my knowledge, I could always stand to go deeper, these things are:

  1. Microsoft Dynamics CRM/Microsoft Dynamics AX; we use Microsoft Dynamics CRM internally and whilst I can fairly confidently say that I can integrate with it quite well I’m not at the level where I could go out and install a CRM system and advise a customer exactly how each entity is meant to be used.
  2. Microosft SharePoint Portal Server; most of my experience here comes from the occasional piece of control development that I need to do or the random extension point that I want to plug into. However what I lack is the debugging experience for when SharePoint doesn’t do what I expected.
  3. Windows Presentation Foundation; actually I’m not to bad with WPF but I’m no Paul Stovell. Like most things WPF is one of those things where constant exposure helps and I’ve probably done less WPF than anything else in the .NET 3.0/3.5 stack. I’ve got a few pet projects going that are slowly changing that but where I think guys like Paul are way out in front is that they have done some serious thinking not just about all the different ways to do something, but which one is probably the best in a given scenario.

Internal Forums

For nearly as long as I can remember Readify has used an internal mailing list to facilitate discussion within the technical ranks. For me personally this has been an amazing resource that has allowed me to easily reach out to those people who have stronger skills in particular technologies than I do, and where I can occasionally provide the benefit of my experience. In fact, the mailing list is one of the major advantages that Readify has over its competitors and is often cited by past Readify staff members as one of the things that they miss. The kinds of things discussed on the mailing list include:

  • Debugging problems with the frameworks we are using.
  • Getting advice on some technology or technique.
  • Discussing something generally geeky.
  • Explaining to newbies why C# is better than VB.NET 🙂

Mailing lists certainly aren’t unique to Readify, but the fact that it was introduced so early in the companies life means most technical folk have had to learn how to communicate via the mailing list in order to access the collective knowledge of the organisation. Each new employee certainly needed to adapt their own communication style but it is also true that the culture created around the mailing list is also a moving target. The result is a gradual evolution in the way that we communicate internally as an organisation – it is an internal forum where we can thrash things out openly and reach some kind of consensus or happy truce.

Structured Management

Anyone who has worked in business that has grown to several times the size it was when they joined would know that the foundations on which that organisation were formed can start to show some stress. The internal mailing list as one of the foundations of the organisation is no exception.

Over the seven years that I have been at Readify there have been several discussions about the effectiveness of the mailing list. From time to time we have tried different things to see if we can squeeze more out of this internal resource by either breaking it up or trying to introduce policies and procedures to make it more manageable. The Exchange Global Address list is a testament to these largely failed experiments.

Do we give up trying to optimise this internal communication channel? Probably not, but we have to accept that we are going to have nearly as many failed attempts as we are going to have successes which will result in evolutionary change rather than re-architecture of the way we do it. Such is the nature of most social instruments.

Natural Human Clustering

Another thing that I have noticed is that humans being humans tend to cluster with those that have like beliefs. Given a large enough group of people you will start to see fragmentation along some arbitrary lines. In all the world we see thing along political, socio economic, geographical (nationality) and genetic lines. Within a company you see echos of this but you might see other interesting groupings like (examples from within):

  • Those who like Agile methodologies, and those who don’t.
  • Those who like Enterprise Library, and those who don’t.
  • Those who like 100% web-based applications, and those who don’t.
  • Those who like VB.NET, and those who don’t.

Mind Games

This clustering effect seems to occur because of a curious balance between our need to belong to a group, but a complimentary need to have a high standing within that group. Not everyone can occupy the highest standing within a group so the only solution is to create more groups (assuming you can’t change human nature).

Interestingly, your standing within a group is probably more of a reflection of your own state of mind rather than any real understanding of what the group thinks of you as a participant. High performers are often high performers because they continually down-grade the value of their own contribution and increase the stakes of the game by contributing more and more.

Growing Pains

All this discussion is interesting but we still have challenges with our internal mailing list. Recently we experimented with adding a second mailing list which was kind of a hotline for those people who are out on client sites with limited e-mail bandwidth who need to get help fast. I was initially against the idea because previous attempts at fragmentation hadn’t worked.

In the end I submitted a request to get the mailing list created simply because I myself had said that if you really don’t think something is going to work there is no harm trying it because in the end – reality wins (if it isn’t going to work, it isn’t going to work and you change approach again) and you only run the risk of being pleasantly surprised by the results.

In this case we found that whilst we started out with the best intentions we ended up having off-topic discussions on the tail end of threads on the hotline mailing list. The result – a reduction in its value to those who started the threads.

What do we try next? I don’t know, right now we are having discussions about tagging posts. I am a big believer in the usefulness of tags as a solution to information categorisation especially when you have a large enough crowd posting content and a percentage of those contributors tagging theirs and others contributions. Is that the situation at Readify?

Previous attempts at consistent tagging haven’t worked, but by the same token I don’t know if we have seriously tried. Is it a lesson that we need to learn again? Sometimes it is good to challenge old assumptions, but we also need to benefit from wisdom already gathered.

Egypt Trip Post #6

It is now over a week since I got back from Cairo. I left the afternoon before what is being called the 2009 Khan el-Khalili bombing. Despite that rather sad ending to the trip I had a great time presenting at the the dotNetwork Code Camp. I have to say that out of all my trips this one has probably opened my eyes the most because Egypt is different in so many ways to Australia.

I’d like to thank a few people for making the trip unforgettable. Firstly Mahmoud who spent so much time driving us around, it was fantastic to see Cairo from a local perspective, much better than being on a tour I would say. Of course, there is Remon, Marianne, Lamees, Remi, Steve, Mohammad Sami and Mohammad Meligy. If I have missed anyone I apologise 🙂

Anyway – I need to sign off on this trip because I am off to New Zealand for a holiday with Shelley tomorrow (more blogging!), anyway – here is the final set of photos that I took from my camera.

Thanks all!