Dunbar’s Number

Why are there so many bad systems, organisation, and processes in the modern world? Why are governments so incompetent, inefficient, and often corrupt? Why are big companies and institutions so poor at innovation, so good at creating huge bureaucracies, and so bad at balancing factors such as profit and social responsibility?

First, we must establish that my claims against these organisations are true. That is difficult, because there is no valid basis for comparison, and no good objective way to measure good and bad attributes. But I think most people know through anecdotes, or just through their own personal opinions, that what I said is true, at least in the vast majority of cases.

I work in IT, so that is the perspective I often approach these questions from. Many of the worst products and services I know of are created by big organisations. I had the misfortune to have to use an NZ government web site recently and it was a shambles. And the most buggy, confusing web service I use regularly is probably Facebook, which is run by a large company. Also, I seem to have to fix a lot of problems with software designed by big companies in my work.

In contrast, many sites I use from smaller companies work really well. And I avoid software written by big companies. For example, I have a set of Microsoft and Adobe software on my Mac, but I almost never use them, because I find software written by smaller companies is much better.

So let’s just assume that “big is bad” and think about why this might be. I think it is about two things: first, as an organisation gets bigger its most important functions tend to be handed over to professional managers, and that almost always results in incompetence and inefficiency; and second, bigger organisations have too many people involved to allow efficient communications and cooperation to occur, so large projects involving many people tend to result in poor outcomes.

In the bigger organisations you tend to see a large number of incompetent managers trying to control far too many people to work together efficiently. Why do I think the managers are incompetent? Because all managers are incompetent or corrupt – if they weren’t they would be doing something useful instead! Clearly this is a controversial view, but exceptions are rare in my experience.

But what about the size of the group working on the project? What’s the deal there? Well I think it relates back to Dunbar’s Number. This is a theoretical upper limit to the number of social relationships an individual can maintain. It was first proposed in the 1990s by British anthropologist Robin Dunbar. He used the brain size of different species in relation to the number of interactions they maintained, and extrapolated that to humans. His conclusion was that humans can maintain a maximum of 150 successful relationships.

So my hypothesis is that this number also applies to the size of groups in a successful workplace. I suspect it should be a lot lower than that, because people establish relationships in places other than work which must also count towards the total. Whatever the number should be, there can be little doubt that small groups are likely to work far better than big ones.

If that is the case, smaller groups of workers, along with the lack of a professional management class, gives smaller organisations a huge advantage over bigger ones. And that might explain why huge bureaucracies, like governments, seem to always be badly run. And it might explain why small companies usually produce better products and services than big ones, and why big companies tend to gain innovative new products by acquiring them from smaller companies instead of creating them themselves.

You might ask why – assuming my theory is correct – so many large companies are so successful. I would say they are successful for the wrong reasons, and despite their incompetence. For example, when I ask why people use Microsoft products they almost never say its because they have evaluated the options and found that company’s software is best. It is almost always because that’s what they were told to use (generally by incompetent managers), or its all they have, or they were not aware of the alternatives.

People like me who do use lesser known products tend to have migrated to them as a result of frustrations with attempting to use the “default” options from the big companies. So you could say that Microsoft’s success is due to laziness and ignorance on the part of its users. Also, once a “critical mass” is reached it is difficult to escape from the trap of the dominance of big companies. Even I occasionally have to use Microsoft Word, for example, to open difficult documents, even though it is a truly hideous piece of software and I hate myself for even touching it!

It’s difficult to see how this can be fixed, because any central authority which might need to make new rules to encourage more diversity in this area is itself a victim of the results of Dunbar’s Number. But, even though there’s not a lot I can do about it, at least I have an idea of why things are so bad. That’s slightly reassuring, at least!

Et Tu Porsche?

I recently updated my web server, and despite my careful planning, there was a “glitch” which meant my site was off-line for about 20 minutes. This may not sound like a big deal, because I don’t really host anything of great importance, but it is a matter of professional pride to me to try to keep my down-time to a minimum.

The problem turned out to be the different way my fibre router interprets port forwarding, so that my old notes, based on a previous router, didn’t work. This meant I spent about 10 minutes changing settings a second time, rebooting, etc unnecessarily. And a second problem didn’t help where Apple’s web server software defaulted to re-routing all incoming traffic to a secure port rather than the default http.

So what should have been 30 seconds down time, which is the time between disconnecting the old server and connecting the new server, turned out to be closer to 30 minutes, which was pretty annoying. But I do feel a lot better about my rare errors when I see far worse problems in commercial software and on (so-called) professionally run corporate web sites.

In fact, to make myself feel better after I make a mistake, and just for general entertainment at other times, I keep a folder of screenshots of errors I come across in my daily computer use. And I thought it might be fun to share some in this post, so here are some examples…

First, there is the generic web site fail errors, like this one from New Zealand Post: “NZ Post is currently experiencing technical difficulties.” Well, that’s helpful. Any idea about what sort of error that might be, and what I should do about it? Also, why do these “technical difficulties” happen so often?

Apple aren’t immune from problems, and their error and progress messages can often be entertaining. For example, during a system update the progress dialog told me I had “NaN remaining”. If you don’t know, “NaN” is a special code meaning “not a number” and is often created by a divide by zero or a similar operation. But errors concerning zero are tricky: this one could have easily got an error message too: “Currently displaying page 0 of 0”. I guess I was NaN percent of the way through the document!

Even a rock solid operating system like Unix can give some interesting messages. I was recently testing a network using the “ping” command, which sends a very simple message to another device and waits for a response to say “I’m here”. The time taken to respond can reveal information about the performance of the network and computers involved. So you can imagine how impressed I was when I got a ping time of -372 ms. The remote computer responded about a third of a second before I even sent the request. Now, that’s a fast network!

My ISP, Orcon, has had a few interesting glitches in the past. For example, on one occasion their network status page was blank. The corporate colour scheme was there, so there was some network activity happening, but there was no text. How should I interpret this? Are there problems or not? But this was a few days after they sent me a bill requesting payment for $0, so it shouldn’t have been a surprise. I have to be fair and say other ISPs are just as bad. I got this from Sprak, for example “Oops this embarrassing. Our system failed to complete your request”. At least they were embarrassed!

Then there are errors which are even more confusing. I rarely use Microsoft software or services, but my clients do, so I occasionally let my standards slip, and on one occasion I tried to upload a JPEG to set a photo for my profile there. I got an error message to the effect of “A JPEG file is not a format Microsoft supports, please try a different format, such as JPEG, instead”. I know the file was OK because I had used it on many other sites, so I’m still mystified about what was happening there.

Having health data on the internet is great, because it avoids confusing and time consuming calls to health professionals, but it’s unfortunate that many of these services are so poor. A while back I received “Manage My Health, service call failed: 0 error.” So zero error is bad, or is that no error? And what should I do? But other sites try to give you an error message where the programmer has messed up the code so that you are left more confused than you were before their attempts. I got the following message on LinkedIn: {“debugmessage”:””}. Well, that’s a nice try, but not helpful to the average person.

Sometimes the error message sort of makes sense but the options the user has are not helpful. For example, iOS told me that “there are no upgrades available”, then gave me the choice of two buttons: “Yes” or “No”. I chose “No” but there were still no upgrades available! Another iOS app asked me if I would like to “Mark all articles as read?”, with the options “Yes” and “Yes”. Nice to have the choice!

Then there are the generic errors which really mean nothing. Here are a few: Microsoft telling me “there’s a temporary problem with this service, please try again later.” New Zealand’s IRD generates many errors, such as: “page not available”, “system error”, and “unable to process your request at this time”. Even Internet New Zealand’s site creates random errors, such as “PDO error”. And I’ve lost count of the number of errors the NZ Herald site generates, like “VIDEO CLOUD ERR NOT…”, “502 bad gateway”, “Baaah! page not found”, and “Error from backend server 503”. Then there’s this very frequent message from Facebook: “sorry something went wrong” (so specific). And on various other sites: “Oops something went wrong”, “The website has encountered an error which cannot be recovered from” , “BBC backend not available”, “MYOB, error 404 page not found”, “Apple: 502 bad gateway”, and “TradeMe: Oops there was a slip up” (with a picture of a cute kiwi which has fallen over).

Web sites often like to provide dynamic data, such as greeting you based on your actual name, to give that personal touch, but when I got “Hello $(notification. message. discussion. topicMessage. author, login)” on a Cisco site, I didn’t really feel much better than if I had been greeted as something generic, like “user”. Another example of this happened on the Act (a New Zealand political party) web site where I saw “With your help we were able to deliver onclick=”window.open(…”.

I sometimes use Apple’s dictionary screensaver which displays random words and definitions when the screen sleeps. But sometimes things go wrong. I recently got the message “(entry not found)”, ironically the word it was trying to find was “fraudulent”!

Sometimes there is no actual error, but in some ways you wish there was. I recently made the mistake of doing some Windows support and, when trying to download a user’s email, I was informed the data transfer speed was “19 bytes/s.” OK, I’ll come back in a decade or two, and see if that finished OK!

But the ultimate failure is the old system crash on a public display. This almost always involves Windows, because that is almost certainly the least reliable OS around, but also because, for some odd reason, it is also widely used. So PowerPoint presentations often crash with error messages such as “the instruction at 0x6018cde1 referenced memory at 0x00000000 the memory couldn’t be written”. Not a good look, especially when the error stays there for several days.

Finally, it can happen to anybody, even a company which represents the epitome of fine engineering! I recently got this when visiting Porsche’s site: “Dokument nicht gefunden.” Even with my limited German the message was obvious! Et Tu Porsche?

Why We Have Bad Software

Many people get extremely frustrated with their interactions with technology, especially computers. I notice this a lot because I work with IT where I am a Mac generalist: I do general support, programming, a bit of server management, and a bunch of other stuff as well.

And when I say “many people” get frustrated I should add myself to that list as well because, either directly or indirectly (by trying to help frustrated users) I am also exposed to this phenomenon.

The strange thing is that generally the problems don’t happen because people are trying to do something unusual, or using some virtually unknown piece of software, or trying to do things in an overly complex way. Most of the frustration happens just trying to get the basics working. By that I mean things like simple word processing in Microsoft Word, simple file access on servers, and simple synchronisation of calendars.

None of these things should be hard, but they often are. In comparison doing complex stuff like creating web apps, or doing complicated graphics manipulations, or completing advanced maths or stats processing often works without a single problem.

Why is this? Well I guess I need to concede (before I offer my own theory) that one reason is that there are far more people doing the simple things and they’re doing them far more often, so if there was a certain failure rate with any process it would show up more for the stuff that is done a lot.

But those simple tasks, like word processing, have been with us on computers for several decades now so it might be reasonable to ask why haven’t they been refined to a greater degree than they have. Is it really so hard to create a word processor which works in a more intuitive, reliable, and responsive way than what he have now? (yes, I’m talking to you, Microsoft)

Well there is. But it involves doing something a lot of people don’t want to do. It involves staying away from the big, dominant companies in IT, especially Microsoft. Well not entirely, because realistically you need to run either Windows or macOS (Linux just doesn’t really work on the desktop) and you need to buy some hardware from Dell, Apple, etc. But what about after that?

Recently I have tried to keep away from the dominant companies in software. For example, I operate a zero-Microsoft policy and am progressing well on my zero-Adobe policy as well. In addition I avoid all the big corporates’ products (Oracle, Cisco, etc) wherever possible.

I don’t think it’s healthy to take this to extremes or to where it becomes more a political thing than a practical one, because then I might end up like the open source fanatics whose decisions are based more on ideology than pragmatism. But it is still a useful guideline.

And I am pragmatic because I do have Microsoft Office and Adobe Creative Suite (all fully licensed) on my machine, I just almost never use them. And, of course, I do use a Mac and therefore use the hardware and operating system made by Apple, the biggest computer corporation in the world.

Although I readily admit to being an Apple “fanboy” I do have to say that, considering the huge resources they have available, they do often fail to perform as well as they should. For example, software is often released with fairly obvious bugs. How much does it cost to hire a few really good bug checkers?

And sometimes Apple products take too long to properly implement some features. With all the programmers they could hire why is this?

I don’t want to pick on Apple and I really have to ask the following question: Microsoft, why is Office 2016 for Mac such a pile of junk? Why is it so slow? Why is it so ugly? Why is it so lacking in functionality (that is one area where Microsoft usually does well: their software is crap in almost every way except it has an impressive feature set).

And just to complete bashing the big three, what’s happening at Adobe? Why does In Design take a week to launch on anything except the latest hardware? Why are there so many poor user interface design choices in Adobe software? And why is the licensing so annoying?

I think the failure of the big companies to create products as good as they should be able to comes back to several factors…

First, large teams of programmers (and probably teams of anything else too) will always be less efficient than smaller teams simply because more time will have to spend trying to coordinate the team rather than actually doing the core work.

Second, in large teams there will be inevitable “disconnections” between the components of a major project that different individuals make. This might result in an inconsistent user experience or maybe even bugs when the components don’t work together properly.

Third, it is likely that many decisions in a large team will be made by managers and that is almost always a bad thing, because managers are generally technically ignorant and have different priorities such as meeting time constraints, fitting in with non-technical corporate aims, or cutting corners in various ways, rather than producing the best technical result.

Fourth, large companies often have too many rules and policies which are presumably formulated to solve a particular problem but more often can be applied without any real thought for any specific situation.

Many software projects are too large for a single programmer or a small team so some of the issues I have listed cannot be fully avoided. But at least if computer users all understand that big companies usually don’t produce the best products they won’t be surprised the next time they have a horrible experience using Microsoft Word.

And maybe they might just look at alternatives.

The Apps I Use

I work in IT doing general computer support and web programming (and anything else to do with Macs and other Apple stuff). Sometimes when looking at problems my clients are having it is suggested I am a bit negative about the programs they are using and have been asked: well if you don’t like (whatever program is under discussion, usually Microsoft Word) what do you use instead?

That’s a good question and I thought I might answer it here. My main computer is a 15 inch i7 MacBook Pro with a high resolution screen, an SSD, and 16G of RAM, so it’s a moderately high-spec machine but not outrageously so. The programs I use could be used by almost anyone else with a fairly modern computer – as long as it’s a Mac, of course.

The programs I use most are in my Dock so to answer the question of what my alternative apps are I’ll just list all the stuff in the Dock and briefly say why they’re there…

General System Tools

Finder. This is Apple’s program which creates the desktop environment for file management. It is a standard part of the system so it might seem pointless listing it here, but there was a long period of time when I did use an alternative called “Path Finder”. That is a great app (like the Finder on steroids) but in the end it just didn’t offer enough extra to replace the good old Finder.

Helium. This is a small app which displays a web page in a floating window. On my Mac I have the Dock and menu bar hidden so I created a small web based app (using PHP) to display the information which would normally be in those two locations (plus a bit more) such as battery level, wifi signal strength, my public IP address, etc.

Astrill. This is a VPN service I use when I want to maintain privacy or make it look like I am actually in another country. I won’t say anything more about this!

Cisco Secure Client. This is the VPN service I use at work.

Server. This is Apple’s server suite which includes services such as web serving, file sharing, and many others.

Parallels. Sometimes I need to run Windows apps (I estimate about 10 minutes per month) just to check that my web-based programs work OK on Windows. Apart from this I have no need for Windows at all. In fact I spend about 10 times as much time maintaining it as I do using it!

Remote Desktop. This is Apple’s remote management service which allows me to take control of other computers screens, install new software, get status reports, etc. I use it a lot to do remote control of other people’s Macs to help with problems and to monitor and maintain remote servers.

Productivity Apps

Notes. This is Apple’s notebook app which automatically syncs with my iPhone and iPad. I keep all sorts of temporary information here which needs to be accessible from all the Apple devices I use. For example, I might write a note here on the iPad about a wine I am trying and copy the synced version into the main database on my laptop later.

Maps. I use Apple’s map program more than Google Maps, although I do use the Google street-view feature sometimes so I do have both installed.

Reminders. I use this to keep track of my list of things to do. It syncs across all of my devices.

Calendar. I have several calendars, mostly on Apple’s iCloud service, where I keep track of my tasks for the day. These also sync across all devices so I get reminders on my iPhone for appointments entered on the laptop.

Contacts. I use Apple’s address book program synced to other devices through iCloud for keeping all my contact information. I have photos for most of the people in the list so I see a picture of the person calling, emailing, or messaging me on all my devices.

Programming Apps

Skim. This is a nice PDF viewing program which I use to read documentation files. It has some useful features but the main reason I use it as an alternative to Apple’s Preview program is just to keep the documentation in a separate place from all the other PDFs I work with.

Script Editor. I use AppleScript (Apple’s scripting language) quite a lot of small tasks on my computer (connecting to servers, launching apps, etc) as well as for more sophisticated applications I have created to automate processes on servers.

XCode. This is Apple’s program development environment. I’m not doing any “real” programming at the moment but I have used this in the past, and it has useful utility tools as well.

FileMaker Pro 11. I have to maintain this older version of FileMaker to open older databases I have created and not moved to the newer version yet.

FileMaker Pro 14. If I am creating a serious database I prefer the MySQL/PHP/Apache environment but I quite like FileMaker for creating simpler desktop databases.

BBEdit. This is my main text editor for programming. It has excellent syntax colouring, keyword autocomplete, multiple file handling, and search and replace facilities. I also use the GREP system in this program to do complicated text processing.

Safari. Apple’s web browser is the one I use for testing and debugging my web sites and apps. It has good analysis tools and follows standards well so it is well suited to this.

Terminal. My favourite app! The command line is the “killer app” for the Mac. I love the Mac’s graphical user interface but I also like getting behind the scenes and using all the power of Unix, including Apache, MySQL, PHP, and shell scripts.

Internet Apps

NetNewsWire. This is an RSS viewer. I don’t tend to use RSS feeds as a source of information much, but I use this to check that the feeds I create for my blog, etc all work OK.

Chrome. I use Google’s browser for most of my web browsing. I like it because it is fast and reliable and handles lots of tabs open simultaneously (I just checked and I currently have 33 tabs).

Messages. This is Apple’s messaging app which syncs with my iPhone and iPad so I can send and receive text messages from my computer (also phone calls and iMessages).

Mail. Apple’s Mail program has a few faults but overall it is very clean and fast. I check 8 email accounts which I use for different reasons here: my main Apple account on iCloud, my work Exchange account, and 6 GMail accounts I use for special purposes. I do have a few sync problems with some of my Google accounts but just quitting Mail and restarting it (a few seconds) usually clears them.

Skype. I don’t use Skype much but occasionally people want to communicate with me this way so I keep it ready. BTW, I don’t count this as a real Microsoft program (see below).

Media Apps

iTunes. I think we all admit that iTunes has its faults but once you get over the confusing user interface it can do a lot and there really isn’t a realistic alternative for managing iPhones, etc.

Photos. Apple’s photo storage app is simple but fast, reliable and efficient. I just use it to store and display photos because I do my photo processing in more powerful apps before adding the photo to my library. Photos also syncs my photos between my computer, iPad, and iPhone through iCloud.

General Purpose Apps

Dictionary. Apple’s dictionary program looks up multiple dictionaries as well as Wikipedia. I have over 30 dictionaries installed but usually only have about 6 active. It also integrates automatically with most programs to allow word lookup from anywhere.

TextWrangler. This is a free, slightly scaled down version of the BBEdit text editor I mentioned above. I use it to open general text files separately from my programming files.

Preview. Apple’s PDF app is surprisingly capable and I use it instead of Adobe’s clunky Adobe Reader and Acrobat. It does almost everything most users need and is really reliable and easy to use.

Pixelmator. I am a big photography fan do I need a good photo editing program. I have used Photoshop since the first version was released, but I now find Adobe apps clumsy and slow, and I don’t like their licensing. So I use Pixelmator instead. It does most of what Photoshop can do, but because it is designed specifically for the Mac it is much nicer to use.

Pages. I use Apple’s Pages for word processing. It is so nice to use a word processor which works reliably, and quickly, and fits in with the rest of the system. I would never go back to Microsoft Word which I believe is probably the single worst program ever written (because of the frustration it causes for so many users).

Numbers. Of all the Microsoft programs I have used Excel is probably the one I find most useful. But, while it is quite powerful, it is still horrible from a user interface perspective so I usually use Apple’s Numbers app instead.

Keynote. Using Apple’s Keynote instead of PowerPoint is such a luxury. I know it will work reliably, that movies will play, and that graphics will always display. Plus it has a much nicer user interface and works better with the rest of the system.

So that’s it. Notice that I am Microsoft free (apart from Skype) and Adobe free. I do still have Office and Creative Suite installed but I almost never use them (really only to help other people who use them and have problems). This is partly political (I don’t like big corporations) and partly practical (I like elegant, well designed software). And yes, I do know that Apple is a big (evil?) corporation but I can’t really work in IT without teaming up with one corporation (Microsoft, Adobe, Apple, Google, Oracle, etc) so I guess at least Apple is the best choice out of all of them.

I Don’t Like It

I’ve been thinking about some of the conclusions I have reached after being an “IT expert” for many years. I use a lot of different computer, smartphone, tablet, and other products and I have a good sense of what is good, what is not so good, and what is just plain horrible. The odd thing is that it is often the most widely-used products from big companies which are the worst. I should say this applies mainly to software rather than hardware.

For example, after many years I no longer use any Microsoft or Adobe products because they are just so, well… not necessarily bad, but just totally average, uninspiring, and unintuitive. And the worst thing is that this unfortunate situation is even creeping into the one company I have higher expectations of: Apple.

I don’t know how many times I have ranted about the inadequacies of Microsoft Word. I work almost entirely with Macs but on the occasions when I do Windows support I have issues there as well. It’s not that Word lacks capabilities – it can do almost anything – it’s more the way it does it. It’s unreliable, unpredictable, unintuitive, and uninspiring.

When I use other word processors I know that I can create a document hundreds of pages long with lots of graphics and it will still print (or more likely convert to PDF) accurately. I know I will be able to work with the document without it becoming slow even on a high performance computer. And I know it won’t become corrupted in some way. But not with Word. I can almost guarantee something will go wrong with a project of any significant degree of complexity.

But I shouldn’t just pick on Microsoft. What about the second biggest software company, Adobe? Well I have always loved Photoshop, and I still use it occasionally. But Adobe products suffer from poor interface design, slow performance, crazy licensing schemes, and other problems which really shouldn’t exist.

And just to show that I really am an “equal opportunity” critic of different products and companies, what about Apple? Well in general I like Apple programs because even though they do a smaller range of tasks, they do them really well. Apple’s word processor, Pages, for example never fails me. It doesn’t do quite as much as Word (although it does everything even a power user like me needs) but I know it will do everthing I want it to reliably.

But Apple have a few notable failures. Let’s get the “elephant in the room” out of the way first: iTunes. Everyone seems to hate iTunes – especially Windows users – and I can see why. It is probably the program I have most problems with (remember I don’t use Microsoft software). But it’s not just poor reliability; it’s an inconsistent, illogical, confused user interface which is possibly even worse.

Apple have made a few other mistakes over the years too, both on the Mac and on “iDevices” (iPod, iPad, iPhone, Apple Watch). For example, the whole Lion operating system was a backward step in many ways, especially in terms of functionality of the built-in apps.

No one thinks that creating modern systems or apps is easy, because there are so many variables which need to be taken into account, especially in the environment the program will be used in and how the user will use it. But the leaders in this area (Microsoft, Adobe, Apple) seem to be the ones doing the worst job in many cases. Why is that, especially considering the huge resources they have? Why can small companies or individuals often make better products?

No doubt it is partly because of the corporate culture where policies and rules have more influence than good design and engineering decisions. Partly it is because of the need to support previous code bases, file formats, and interface designs. And partly it is due to the simple law of diminishing returns. As more people interact in a project their contribution tends to be less about the core project and more about maintaining the complex set of interactions with other participants. So I’m sure that there is a point where having more people makes things worse rather than better.

When I look at the programs I actually use they can be broken into three categories: those which Apple supplies and are either well designed (Pages, Preview, Safari) or just the only real practical option (iTunes); those which I choose to use because they just work really well (TextWrangler, BBEdit, Pixelmator, Skim); and awesome, mostly non-commercial technical and programming tools (Apache, MySQL, PHP).

I think everyone wins when smaller, innovative programmers can challenge the big guys. Unfortunately just for compatibility with other users and to fulfill poorly considered policies I do have to use inferior software like Microsoft Word occasionally. But I don’t like it.

Bad Design

If there’s one thing that bugs me it’s bad design. Actually, there isn’t just one thing that bugs me, and bad design might not even be at the top of the heap if there was, but just for the purposes of this blog post let’s just assume that it is my number one source of annoyance.

As anyone who follows this blog has probably realised by now, I work with computers. I am a generalist but I work mainly with Macs, I do some web site and web database creation, some miscellaneous programming, some general consulting, hardware repairs and installation, and anything else required.

I’m not an expert on design and have no qualifications in the subject, but it is an interest I have and I have done some reading in the area. When I create programs, databases, and web sites user interface design is one of my primary concerns. Of course, speed, reliability, and functionality are also important but I give all 4 of those factors equal weight, something which many other people don’t seem to do.

At this point I should say what I mean by “design” in this case. I mean not just how the program, web site, or product looks, but how its functionality is structured: whether the interactive elements are consistent and intuitive, whether the response to the user makes sense, and whether the item in question works harmoniously both internally and in the larger environment (for example within the operating system or between itself and related items).

As I said, I work mainly with Macs (and other Apple products) and to a large extent that is because of Apple’s design standards, but even Apple is far from perfect. But at least they are ahead of most other companies so I choose them more as the best of a series of bad options rather than a good one in any absolute sense.

To be fair, these things aren’t easy, and what makes sense as a design element to a programmer might not make sense to users. And often people aren’t even aware that they are the victims of bad design. They just know that they feel lost, or frustrated, or uncomfortable and might not be sure why. There is also the point that in many cases there isn’t just one big problem which is obvious.

Instead of one big problem there might be a series of poor features which leads to the “death by a thousand cuts”. The user might not notice each one but in the end it is just as fatal! This is how I feel about Windows in particular (and to a somewhat lesser extent, other Microsoft products).

Let me give an example of how user interface design can make life easier in the real world. How many people walk up to a door which they should push and pull instead? I do that, even when there is a sign which says “push” (I’m a real genius). But there are other doors I just walk up to and push without thinking. Why? Because the push doors which work have a push plate instead of a handle. Why have a handle if you can’t pull the door?

So let’s look at this in the software world. I don’t want to pick on Microsoft any more because they are such an easy target, so let me choose one of Apple’s more heinous transgressions instead. In iOS Apple have thrown out the traditional graphical buttons and provided coloured (often red) text for active elements instead. That’s not too bad because we are used to something similar with active text on web sites (like links). But when titles and other text which doesn’t do anything are the same colour and sometimes active text isn’t coloured it just turns into a “tap it and see” situation! Why do this when it’s so easy to provide a distinctive design element? Maybe visual attractiveness here overcomes the bigger design picture.

But that is a specific example of a problem and because it is so well defined it is quite easy to fix. In fact there is a “button shapes” option in the accessibility section of iOS settings which restores a sort of button-like appearance to active text.

The bigger problem is the software – often expensive corporate systems – which are just horrible to use. It seems that the people who wrote this software either have never used it (so don’t realise how bad it is), or don’t listen to user feedback, or are forced into designing a specific way due to management restraints, or (most likely) all of the above.

There’s no easy fix for this because the problems go beyond mere user interface design and encompass the whole model the systems are built around.

In fact there does seem to be almost an inverse relationship between the size of the team working on a software project and the usability and general quality of the finished product. That’s probably a bit too simplistic because many creations of a single individual are actually pretty terrible, and big projects are beyond what a single person can do so a real comparison can’t be made. But I do think that having too big a team – and especially too many non-technical people – is the biggest cause of bad products.

Whatever the cause is bad design is rife in modern software. Most software exists to allow people to interact with information. I think that “people” aspect deserves more attention. It’s time for human interface design to be given a higher priority.

IT Support 101

As many of the followers of this blog will know, I do IT support and programming for a New Zealand university. After just spending 4 days away from “home base ” doing some quite intense and varied work I thought I might list a few hints for aspiring IT support people and anyone else who might have a passing interest. I have worked in IT since the days of the Apple II and have learned a few things in that time!

OK, here’s some of my best hints…

Hint 1: passwords.

It has been shown to be psychologically impossible for users to remember their passwords, and in the unlikely event that they do remember a password it will be even worse because it will be the wrong one, they will enter 10 times in a row, and they will lock themselves out of their own accounts.

Many users also “don’t have a password” for their email and other services. When you hear this you know you are in trouble because, of course, they do have a password which is provided automatically by the software. Generally on a Mac this can be retrieved from the system keychain – if you can get the master password for that!

Next, if a user has a password and they can remember it then it will most likely be something incredibly secure like “password” or “123” and the clue for these will naturally be “password” or “123”. Also, when you visit the same person several years later it will still be the same.

My solution to this is to give the user a reasonably secure password and record it somewhere safe for them (only with their permission, of course). I would recommend an encrypted document (with a really secure master password) and this will be stored on your hard disk which is also automatically encrypted, right? Bonus hint: get a Mac and use Apple’s built-in system, FileVault 2, which is secure enough for most situations.

Hint 2: help.

It is extremely rare to find a help system in any software which is particularly helpful. In fact I would say that all built-in help systems are basically useless. Luckily there is an alternative: our old friend Google! Yes, google the question or problem (google is now a valid verb meaning to search the web using Google) and you will generally get a much better answer much more quickly than you can get from any help system.

You do have to be aware of one effect though. That is that every new program, computer, or anything else will have many people complaining about its basic deficiencies whether these issues really exist or not. So don’t take too much notice of general comments that a certain system simply doesn’t work, especially when there is a trendy meme on that topic.

Sometimes the problem with googling (a noun derived from the verb google) is finding an answer which is specific enough. I like to include error numbers or unusual words which are more likely to give more specific information. Don’t google “Microsoft Word crash” because you’ll get millions of answers (that particular query might even overload Google!). Try “word mac hangs at launch” or something like that. Even better, use the Console app (on Mac) to check error logs and find more specific error information.

Hint 3: generic solutions.

Have you ever contacted a helpdesk and been told to reset your modem, restart your computer, rebuild a database, re-install your software, or just to “try it again?” Of course you have! These are what I call “generic solutions” and they are usually (but not always) given when the person has no idea what is going on.

That’s not to say that they won’t work or that you shouldn’t use them, but by using them you do lose something. Specifically you lose the chance to really know what went wrong, because the information needed to diagnose the source of the problem might be lost after a reboot, etc.

So I recommend trying to actually solve the issue unless you specifically know of a problem which cannot be fixed realistically any other way. In some cases I use this solution myself, usually when I want a particularly nasty problem to just go away. For example Microsoft Outlook is a horrendous mess which often corrupts its master database. I’ve never figured out why and would prefer it if people just didn’t use the program, but if they do use it and when (not if) the database becomes corrupted a rebuild is an easy solution.

Hint 4: burning bridges.

Some functions we perform on computers cannot be undone, or if they can be it might involve a huge effort. For example, deleting a settings file, because you think it is corrupt, might fix a problem. But on the other hand it might not fix it, and it might create more problems because valuable settings are lost.

So just move it to a new location or rename it instead. Remember that if you just move it some programs will continue to use it, even in the new location, even if that location is the trash! Relaunching the program, including any background processes, will usually persuade it to relinquish control of the file. And yes, reboot if you must!

If the process above doesn’t fix the problem you can just reverse the steps to get back to where you were. Don’t forget that any file re-created when the app launches will be in use and won’t be able to be replaced unless you quit the app first.

Hint 5: everyone is different.

Every user, every job, every computer, and every situation is different. Don’t get too hung up on policies, rules and regulations. These can be useful as general guidelines but I prefer to evaluate every case on its own merits and come up with an optimal solution for the user. Of course, many bureaucrats don’t like this but I always feel I am there for the users, not the bureaucrats.

Naturally this idea is a bit contentious so use it sensibly. If there are corporate requirements which aren’t too onerous it makes sense to follow them rather than risk problems later. Choose which battles are worth fighting!

Hint 6: don’t panic, and be nice.

This is the ultimate hint really and one that can be very difficult to always follow. I do have to say that on occasions I get frustrated with poor infrastructure, substandard programs some people are forced to use, and outdated hardware which really should be replaced, and might launch into a rant regarding the unfairness of it all.

I generally regret these and a simple statement like: “Unfortunately our network is very unreliable so we can’t give a perfect solution to this problem”, or “Yes, Microsoft PowerPoint often does that and I’m sorry but it can’t be fixed by anyone except Microsoft” is more effective anyway.

Also, don’t try to force people into working in a way which doesn’t suit them. When I was a beginner computer support person I tried to persuade people to adopt a zero desktop clutter policy, or to use PDFs instead of printing, but I now realize that is the wrong approach.

Many people just like throwing junk on their desktop even though I believe it is better to reserve it for stuff which is currently being used or awaiting being filed in a permanent location. By the way, the ability to find files amongst the clutter by just typing the first few letters of their name is a revelation to some users!

And most people still really like paper and I can see why because it has a lot of benefits, so let them use paper if they must. Maybe creating a preset to print double-sided might be a more valuable contribution to saving the trees than trying to eliminate paper completely.

Sometimes people have such hideous computer habits that it is worth trying to correct them. For example I once had a user who stored her documents in the trash because then they “wouldn’t use space on her disk”! That was an accident waiting to happen. And if people store so many items on their desktop that they overflow and pile up on top of each other at the top-right of the screen it is worth encouraging them to use an alternative strategy.

A secret stealth weapon I often use is to be nice. Many people get stressed when their computer is misbehaving and they might not treat you as well as they should. But being nice back to them – even if they are being a real ass – is something they might not expect and often works really well.

I once had a senior manager call me and rant about something I had done and when he threatened to never let me work in his department again I said “That’s unfortunate because apart from this I thought we had a really good working relationship”. I then went on to explain why I had done what I had done and he agreed that he had over-reacted. In the end he apologized to me!

So those are my IT support 101 hints. I hope you find them useful. Now I just need to take my own advice and eliminate those rants!