Friday 14 September 2007

And God said to Adam...

(Part of a series on matters technological. It beats doing real work.)

We've been interviewing recently. Before hiring people for software jobs, everyone reads Joel Spolsky's Guerilla Guide to Interviewing *. You must have read it - it's excellent. Well, mostly excellent.

The bit we got stuck on is part 6:

Part 6: the design question. Ask the candidate to design something. Jabe Blumenthal, the original designer of Excel, liked to ask candidates to design a house. According to Jabe, he's had candidates who would go up to the whiteboard and immediately draw a square.

Really? A square?

A square! These were immediate No Hires.

A square does seem a bit minimalist for a house. The fashion in the UK at the moment is for buying distressed Victoriana in run-down parts of town. High ceilings, superfluous ornamental brickwork. But it turns out that's not Joel's problem:

Good candidates will try to get more information out of you about the problem. Who is the house for? As a policy, I will not hire someone who leaps into the design without asking more about who it's for. Often I am so annoyed that I will give them a hard time by interrupting them in the middle and saying, "actually, you forgot to ask this, but this is a house for a family of 48-foot tall blind giraffes."

This is puzzling. We'd much prefer a candidate who says "What's the budget for the design stage?" followed by "Well, let's hire an architect to design the thing properly".

Anyone involved in software development will leap at this sort of design question like a seal after fish. It's actively encouraging three of the most disastrous traits of the IT industry: (a) ignoring precedent and expertise, and therefore continually re-inventing the wheel in a squarer form; (b) concocting "problems" in order to be able to "solve" them; and (c) unshakeable belief in one's own wide-ranging genius. It is impossible to over-estimate the self-regard of anyone who has ever worked in the software industry. (Yes, this includes the author of this article.)

There's another problem, which we can tease out by inserting a stage direction into Joel's scene of the hapless interviewee being humiliated somewhere in the Garment District:

Interviewer:Please could you design us a house.
Interviewee:(Pauses. No further information is forthcoming. Eyes swivel in alarm at the prospect of working for people incapable of providing even the most basic brief for a project. Cursing the evil hour that they sent in their resume, the interviewee begins to draw the thing most apparently in tune with the interviewer's mental faculties: a childlike depiction of a house.)

Who wants to work for someone so inept at communicating their essential requirements? When, in real life, would you make a request such as this unless you were the worst manager in the world, or an unspeakable sadist? It's as though God said to Adam, "Don't eat from the tree of... oh, whatever, just hang out in this garden for a few days."

The following is pure supposition, but interesting: questions such as this seem designed to identify candidates with a talent for arch, knowing role-play, and for recognising when it's professionally advantageous. These are skills which seem best-fitted to large, rigidly hierarchical, politics-ridden organisations. Microsoft is the source of this interview question and many other equally famous ones. Microsoft has become notorious for its bureaucracy and back-stabbing.

(* The Guerilla Guide to Interviewing got revised about a year ago. The Design Question mysteriously vanished. The new version is great, but it's less fun and the silent changes are as informative as the article itself.)

Monday 10 September 2007

NEW feature - guest access to meetings

We've added a new feature to meetings:
  • Action points can now be assigned to guests (i.e. people who are not on your firm's Matchpeg user list)
  • Guests can log in to a simplified version of the meeting overview using a six-digit PIN.

After logging in the guests are able to see the meeting details, and can update the status of any action points which have been assigned to guests.

Two things to note:

  • If there is more than one guest in a meeting, all guests share the same list of action points, and any action point assigned to "Guest" can be updated by any of the guests.
  • Guests can't propose agenda items (except by e-mailing them manually to the meeting organiser etc). Guests aren't full users of the system.

The URL for guests to log in to a meeting, and the PIN to use, is shown at the bottom of the list of participants on the organiser's view of the meeting overview. These details are also included by default in e-mails sent out to particpants by the meeting organiser.

Friday 31 August 2007

NEW feature - Skype names as meeting locations

We've added a new feature for people who regularly run meetings over Skype: you can now enter a Skype name as the location of the meeting. The system then displays the location as a clickable hyperlink which fires up Skype.

You simply enter the location in the form skype:name, e.g. skype:bobjones

Saturday 14 July 2007

NEW feature - quick entry of new users

We've added a new feature making it easier to set up meetings and brainstorming sessions: new user accounts can now be created from the pages for setting up meetings and sessions, without having to set up the users on the User List first.

At the bottom of the list of attendees is a new hyperlink labelled "Create a new user". This asks for minimal information - e-mail address, first name, last name, initials - and then creates the user and adds them to the participants for the meeting/brainstorming session.

The user is given an automatic random password which is sent out to them by e-mail (saving the amount of information which you need to provide manually). The user also gets a very basic set of privileges on the system - these can be altered at your leisure via the normal User List.

Sunday 1 July 2007

NEW feature - graphs

We've added several graphing options to the system, mainly on the pages for analysing search results:

  • Analysis of meeting search results

  • Analysis of action point search results

  • Analysis of workflow item search results

  • Analysis of workflow item progress

Graphs are also available in one further place:

  • Participant activity report for a brainstorming session

In each case, a graph icon is displayed at the top of each column of figures in the analysis. Clicking on the icon inserts a graph of the numbers, plus options for changing the style of the graph etc. And the graph gets included if you then choose the save the page as a PDF document.

This isn't intended to handle every possible graphing scenario. You can continue to build bespoke graphs (and reports) yourself by downloading list results in CSV form, into Microsoft Excel etc, and graphing it there.

Friday 15 June 2007

Why is progress in computer software so glacial?

It seems that we're still living out the tail-end of Romanticism. Nowhere is this more evident in the UK than in the popular obsession with cookery, and everything which appertains to it. Cooks, cooking, and cookery books dominate the bestseller lists and the TV schedules. It's the country's prime artistic medium and means of self-expression, and the public is infatuated with celebrity chefs and their dymamic, anti-conventional, artist-hero personas. Gordon Ramsay is Byron, and Heston Blumenthal is Shelley (in the sense of Shelley's experiments with electricity and magnetism, not his interest in proto-socialism, casual sex with jailbait, and advocacy of vegetarianism).

Behind the scenes, of course, things are rather different from the romantic-hero image. Deluxe restaurants are slickly-run operations, far more regimented and rigorous than the average business. The working day is very long, and precisely scheduled. There are complicated and well-protected supply chains. Marketing is vital. There's a clear line of command, and everyone's job is a small cog in the big machine - clear, repeatable, endlessly repeated. The temperatures are sweltering but, in spirit, the chef de cuisine, sous chef, chef de partie, rotisseur, second chef, aboyeur etc. all need to be "cucumber-cool machine minders" (Auden, Horae Canonicae).

Apart from a complete lack of public interest, the position in IT is almost identical. The public perception - inasmuch as there is one - is of the lone hacker, the guru. The reality is a series of highly segmented jobs, of increasingly minute specialisation. No one "knows about computers", or is competent to do more than a handful of jobs in the field. The system administrators can't program, and the programmers would cause utter chaos if they were allowed to fiddle with your company's IT infrastructure. Each of the programmers has an area of specialisation about which the others know little or nothing. The boss can't do any of what his team does. (The more someone earns in IT, the less likely they are to be able to fix your computer.)

In this segmented world, most of the larger entities which produce software - either for internal use, or for sale - separate out the jobs of designing the software and writing the actual code. (Most of them segment things still further, and have one person to identify a "business need" and another to design the software which meets that need. Someone else then codes it. Salaries go in descending order.)

These designers (mostly) can't write code. They (mostly) know no more about programming than you do - barring a sort of cargo-cult knowledge acquired from sitting next to the bearded blokes in T-shirts every day.

Therefore, the designers don't know what's technologically possible and impossible. They only know what they've seen done before. Their designs are necessarily mimetic. They'll produce solid, sensible designs in an accepted mould all day long, but they're never going to innovate. Their employers like this. They're risk-averse. That's why they segment the jobs. Which is fine for them, but it means that progress in computer software en masse is glacial.

Therefore, innovation and improvement in computer software almost always comes when there's no - or very, very little - separation between the people designing the software and the people writing the code. That tends to imply small, young companies - early Apple, or early Google. They keep the fire burning as they grow larger by buying other small, young companies (though Google have tried to institutionalise the phenomenon through their famous "20% time").

Or Matchpeg. We'll never have a job title including the words "Analyst" or "Architect". "Product Manager" is also verboten. Deliver results.

(Part of an occasional series on matters technological. It beats doing real work.)

Monday 11 June 2007

Why doesn't web-based software make use of the right mouse button?

A brief investigation of why it's so rare to see web applications which make use of the right mouse button. Yes, there are lots of reasons not covered here, and numbers #1 to #3 are pretty obvious. Part of an occasional series on matters technological. It beats doing real work.

Reason #1: effort

Handling the right mouse button in web pages is a bit fiddly. Some developers don't know how to, or can't be bothered. It's lots more work than just putting in a hyperlink.

Reason #2a: transient user base

On the whole, people spend much more time using desktop application A than any web-based application B. There's a pretty small number of business-critical, use-it-every-minute-of-the-day web applications. Very few clock up even an hour of usage per user per week. In other words, very few web applications have any "power users".

The traditional problem in desktop software is how you advertise to the user that right-clicking is available.

This problem gets much harder when you're dealing with a web application which people only use occasionally, haven't been trained on, and want to be able to use "intuitively". You don't have time or receptiveness on your side to explain that right-clicking is available.

Reason #2b: not what users expect

And so there's a feedback effect. Developers don't put right-clicks into web-based software. Therefore, users don't expect them. Therefore, developers don't put them in.

Reason #3: blame Apple

Everyone demonstrates web-based applications running on Macs. Many (most?) Macs have single-button mice. Ctrl+click is a pain in the neck.

Reason #4: effort (part 2)

Firms which produce web-based software tend to have less formal documentation procedures than firms which produce desktop software. Documentation is not cool; it's not Web 2.0.

The alternative to providing a right-click (e.g. plus pop-up menu) will often be a whole extra configuration screen/dialog. This extra screen would need to documented and designed in advance, approved, coded, sent back for re-design when the uber-product manager doesn't like it, re-approved, re-coded, and probably needs all sorts of extra pages in the help file as well.

In other words: if your documentation procedures are strict, putting in a right-click is generally less hassle than the alternatives. So, desktop software tends towards having a minimal number of "busy" screens (whereas web applications tend towards lots of simple screens, for a number of other reasons including minimising/shaping bandwidth usage).