I guess that's why they call it hardware

Undoubtedly, many readers will already know that it's challenging to make computing/electronic hardware, compared to just producing software. But I have observed a number of challenges that I would not have anticipated until I actually tried to do it myself.

Disclaimer: I've met lots of lovely technical people who understand the challenges of hardware and the business world, but I have also met some arrogant and annoying people who don't, and who won't accept that they don't know everything about everything to do with technology. Luckily, they are a minority, and us hardware-aware types are tenacious and hard to put off...

Firstly, when you decide to make some hardware, you need to commit some time (just as you would to write software), but you also need to set aside some funds to buy actual physical goods. (You will also need a computer for most projects, but let's assume you already have one.) In addition even though you are making hardware, you will most probably need to write some software too, so that's another chunk of time gone. You carefully assemble your hardware, and maybe write some software, and then you have a prototype, which is splendid, until you spill coffee on it - there are no backups with hardware.

This is such cool technology that you probably want more people to see your nice hardware, and a single prototype won't be enough. You're going to have to make lots of these things - maybe thousands. This is where things get trickier; you're going to have to find lots of money, and that means you'll probably need a business plan of some sort to help you access ready cash. You will have to alter your design so that it's something that can be assembled easily (and possibly automatically), you need to produce some test kit so you can make sure your product works when you've made it, and you might need to reduce the cost of the thing so you can afford to sell it (if that's what you plan to do), so you may need to find cheaper parts and re-engineer everything. Of course, if you are sending your device out into the world, it will need a case (to stop that darned coffee from getting in it again), and some packaging (so that it reaches whoever wants it in one piece) and of course some safety certification to make sure it's all nice and legal. Huge amounts of time and money are draining away here, and that's without mentioning extras, such as if you decide that for cost reasons you want to make it in another country, or if for a laugh you've decided to patent something.

Anyway, this is already a jolly sight harder than slinging together a bit of a website, and you're mighty envious of your friend who took that route, and already has lots of users, praise from bloggers, invites to cool startup parties, and possibly even potential for revenue in the future. You're still trying to get your software to work on the third iteration of the hardware design, the thing heats up inside the improvised metal case enough to melt the surface of your desk, and you can't remember when you last went to a party.

It's clearly time for a bit of shameless promotion, so you go along to speak at a techie event - a conference, or seminar, or pubmeet - mostly internet and web 2.0 types, people from all the latest startups, and the people who blog about them. You tell them a bit about what you're doing, and the audience swoons with excitement, and you feel very pleased. But next come the questions, and this is where things get harder again.

You always thought that techies were pretty smart - probably smarter than you, in fact - and it's a familiar crowd, one you hang out with occasionally (or used to, before you started making hardware and ran out of time). Some of them even know about the business world as well as C++, they have diverse interests and knowledge, and they can usually keep their coffee inside their mugs. You figure you'll get some inspiring questions, maybe even some helpful comments.

In fact, what you get is two questions.

The first might actually be relevant, but you'll get it whether you are making an intelligent kettle (containing a tiny microprocessor which runs a couple of hundred lines of logic, and could no more run an operating system than a marathon) or a fancy internet appliance (which is almost certainly running Linux already, because otherwise you'd still be writing code for it in 10 years time). "Can I run Linux on it?"

So, this isn't a bad question - unless the answer is no. You then explain that the kettle doesn't need to run a powerful operating system, but now the audience are grumbling and twittering that you're worthless. (Later, when you quiz someone in the bar, it will turn out that they could possibly ignore their religious requirements for everything to run Linux, but they also desperately want an API so they can access data from your device, and they believe that APIs are only possible with Linux. The USB port which you included so you could publish data openly is totally ignored or dismissed, and you feel a little sad, because it was only to please these kinds of people that you added it anyway.)

You should not attempt to explain your answer to the second question on stage, because it will be incomprehensible to most of the audience, who may be bright but don't seem very practical. They will ask if it's 100% open source; and again, if you say no, you're in trouble. (If the honest answer is yes, then have a banana! You are probably having fun and doing something beneficial for society; you might need the banana though, because what you're doing may not pay that well in monetary terms.) All you can really say to justify your wanton anti-openness is that you'd love to open source it, but you couldn't get any money to manufacture it if you did, and you'd rather the technology got made and shipped somehow, than just remaining a fun (albeit coffee-stained) prototype. The audience will not believe this. They will Google some of the components you mentioned were in your device, and will find out a price for some of them (less than a dollar, say); and then they will berate you for not understanding that cheap components mean a cheap device, because you have a recommended retail price that is greater than the component cost.

At this point you will give up and retire to the bar, where the few remaining audience members who haven't written you off as closed-source scum will ask you moderately technical questions. You will answer these cheerily, buoyed up by drink, until you realise that you've now tried to explain two dozen times that your device cannot run for years off a single, tiny, non-rechargable battery, whilst continuously using WiFi, and so you're using another wireless system to network your device. Not WiFi, no. Yes, your laptop does WiFi, but the battery runs out after a few hours, doesn't it? And that's a pretty big battery. And I need this device to work for years, not hours. Well, there are these other wireless systems out there which don't use so much power. Yes, I suppose the one I'm using is a bit like WiFi, in that it doesn't use wires. Have I thought about changing to WiFi in the future? No.

Even with the booze, your connection to reality seems rather stronger than that of your questioners; you know you can't maintain your polite tone much longer, and depart. You realise you won't be able to enjoy parties with these people ever again, or at least not until you're working on a new project; but that's OK, as you've enough practical challenges to deal with that you'll be stuck at work with no time to socialise anyway.

You reassure yourself that your product will sell perfectly well to normal people, and that geeks represent such a minuscule proportion of the market that your sales team won't notice that they aren't buying. You would normally be dismissive of the sales people as clueless about technology, but in fact your faith in them has just been restored: sales and marketing people evidently know just as much about hardware as the web 2.0 crowd.

This would have been a terrific retort, if only you'd thought of it earlier.