Over the last few weeks, Eoin O Ceallachain, Finbar Bradley and myself have been working with Declan Delaney on a business module for software engineering graduate students at NUI Maynooth.
It’s been very interesting. Declan talked about project management; Eoin talked about the marketplace and marketing; I talked about business planning and intellectual property. The basic concepts of intellectual property are really important topic for any startup business, and something that many software engineers know very little about. That’s in contrast to electrical and mechanical engineers, who almost always seem to be reasonably well-versed in the subject.
One example I looked at in the discussion in Maynooth is the Amazon patent. The significance of this patent is profound.
There are lots of opinions about intellectual property and software, especially about the use of patent protection. I often think the debate is ill-informed though. For example, see Richard Stallman’s comments on the Amazon patent. Despite being one of the most influential software designers ever, he seems to know very little about patents. He completely misunderstands the abstract. He completely misreads the claims. His comments wrongly give the impression that the patent is very wide, when in fact it is very narrow and specific.
Anyway, I enjoyed my spell lecturing, and hopefully I’ll get round to doing some more soon.
Useful links:
* http://cse.stanford.edu/class/cs201/projects-99-00/software-patents/amazon.h
tml
* http://cse.stanford.edu/class/cs201/projects-99-00/software-patents/lzw.html
* http://cse.stanford.edu/class/cs201/projects-99-00/software-patents/rsa.html
* http://cse.stanford.edu/class/cs201/projects-99-00/software-patents/hypermed
ia.html
http://www.tomkins.ie/viewPublication.aspx?ID=101 – Brand protection for
entrepreneurs
http://www.tomkins.ie/viewPublication.aspx?ID=114 – how to go and get that
patent
* http://www.tomkins.ie/viewPublication.aspx?ID=104 – intellectual property
for engineers
http://www.nolo.com/lawcenter/ency/article.cfm/objectid/90781CA8-0ECE-4E38-B
F9E29F7A6DA5830/catID/1FBE2D95-203C-4D38-90A2A9A60C6FD618#63C6E757-CE04-4AD9
-B9193853E923E5DF
Lindows trademark example – http://zdnet.com.com/2100-1104-5157260.html
* http://www.autm.net/patent/nacua.html – patent law basics
* http://www.kstrode.co.uk/services/patentbasics.html – more patent law
basics, with a European ‘spin’.
* http://www.core77.com/reactor/dyson_interview.html
* http://www.core77.com/reactor/dyson_interview2.html
* http://www.core77.com/reactor/dyson_interview3.html
I don’t know, Antoin — that Amazon patent *is* extremely broad, as far as I can tell. Claim 1 is a very wooly process, describing what otherwise would have been pretty generic e-commerce behaviour. I agree that RMS goes a little overboard quite often, but I don’t see much reason to complain here; although, I would have preferred you pick a patent that actually *did* cause large-scale trouble in the real world (such as the Unisys GIF patent).
Also, bear in mind that an accusation of patent infringement is an extremely costly thing to fight — most recently, I heard one USPTO official state that it now “only” costs about 2-3 million dollars in a typical infringement case. So that’s very painful for any SME or independent engineer.
My position, shared with FFII and others, is that software is not the same as a mechanical system, which is easily cloned. Upfront R&D in software is the *easy* part, writing a “high level view” on a napkin, and possibly designing a UI; the *hard* part is implementation, writing the whole system to implement that high-level view.
Contrast with a complex mechanical system; R&D requires determining how to perform the desired action within the constraints of the physical world, developing a prototype (since a napkin model of the real world isn’t much use!), and implementation is performed by duplicating the R&D prototype on a cost-efficient scale; so R&D is *hard* and implementation is *easy* by comparison.
Hence IMO patents are much less appropriate for software than they are for physical inventions.
Perhaps things would be improved if, like patents on mechanical systems, the patenter would have to provide detailed implementation details. In mechanical patents, the patenter must submit the full detailed technical drawings. In the software case, this would be full, working, compilable source code for the algorithm or site, instead of the joke napkin scribblings that passes for software patents in the EPO and PTO databases.
In the meantime, I would infinitely prefer to avoid the absurd situation where nothing I write can be published without hefty legal backing, because some napkin scribbler has filed a patent on something obvious — let’s face it — where exactly in the Amazon claims is anything claimed that is not pretty obvious in the field?
And best of all, where you’re not even supposed to *check* for patents first, since knowledge of a patent vastly increases your liability if you’re later accused of infringing it!
Don’t forget the economic effects — only 24.38% of software patents filed in the EU, were filed by EU-based applicants (http://taint.org/2004/03/30/201936a.html) and the FTC review, and the EU’s own studies, suggest that sw patenting has a chilling and monopoly-reinforcing effect.
It’s a thoroughly absurd situation, and the only response, IMO, is to say no to sw patents.
Oh, and I should also mention up-front announcements of new patent applications and granted patents, so we know when a submarine patent has been filed that we already have prior art on; and an appeal method that works, so if a patent gets granted without a patent official tracking down the “real” prior art, there’s a way to deal with it that doesn’t cost millions.
Both of these might help in avoiding some of the worst excesses of the US system.
OK, just to keep harping on about it 😉
This /. comment — http://yro.slashdot.org/comments.pl?sid=103771&cid=8843168
— has an interesting point:
[The Frauenhofer MP3 patent illustrates] ‘the basic problem with software
patents: there is no way you can put in the law that they can’t be as abstract
as this one. Even if you have some innovation in abstract reasoning that is
such an achievement one could think about granting its discoverer a temporary
monopoly, the resulting monopoly is way too large compared what was
discovered.’
Hey, I didn’t say I liked it, I’m just saying that it’s important to understand it. There are definitely big, deep practical issues with software patents.
One of the biggest problems (and this is a bigger problem for corporates than for small guys) is that you have to go to so much trouble to avoid violations of other people’s patents. That is (I imagine) why Microsoft is filing all those patents – it’s to protect themselves against a future Eolas-type case. No doubt about it, the whole thing is a massive waste of time.
The amazon patent is such that it might be applicable in a broad range of circumstances, but it consistents of a sequence of steps that are very specific. You have to have all the ingredients, in the right order, in order to violate the patent. That’s what I mean when I say it’s pretty specific. (If you were to believe the RMS commentary, you would think that Amazon had somehow been granted a monopoly over the individual steps in isolation.)
It sounds to me like the MP3 patent is for all intents and purposes a patent on an algorithm. This is definitely a big problem. Digital computing means that there is definitely a practical difficulty in differentiating between an algorithm and an implementation of an algorithm.
Anyway, the point is that patents are there, and programmers have to know about them.
The O Lachtnain sw eng lectures should be syndicated. What’s the URL or RSS feed?
Oh, Bernard, you flatter me so.
When I give a lecture, well, what can I say? You just have to be there.