La tradizionale ragione fondamentale, che giustifica l'uso dei brevetti, consiste nel fatto che la protezione delle invenzioni sproni l'innovazione e aiuti la diffusione di informazioni sui progressi della tecnica. Proibendo agli altri di copiare l'invenzione, i brevetti consentono agli inventori di recuperare i loro investimenti nello sviluppo, mentre allo stesso tempo rivelano i dettagli della nuova invenzione al pubblico.
Ma c'è l'evidenza che il sistema brevettuale si stia ritorcendo contro l'industria del software; in realtà, il sistema stesso sembra inadatto alla natura dello sviluppo del software. Gli odierni programmi per computer sono così complessi che essi contengono letteralmente centinaia di algoritmi e tecniche software, ed ognuna viene considerata brevettabile secondo i criteri dell'Ufficio Brevetti. È ragionevole aspettarsi che una software house ottenga una licenza per l'uso di ognuno di quei brevetti, oppure che introduca un prodotto così legalmente rischioso nel mercato? Per rendere le cose ancora più complicate, l'Ufficio Brevetti ha anche riconosciuto i brevetti su combinazioni di algoritmi e tecniche che producono una particolare funzionalità . Per esempio, Apple fu denunciata perché il suo programma HyperCard, secondo l'accusa, violava il brevetto #4.736.308, che include una specifica tecnica la quale, per semplificare il discorso, comporta lo scrolling attraverso un database mostrando le parti selezionate di ogni riga di testo. Separatamente, le funzioni di scrolling e di presentazione dei risultati sono dappertutto nella programmazione di computer, ma sembra che combinarli senza la licenza del detentore del brevetto #4.736.308, adesso, sia illegale.
Un altro problema con il brevetto sul software è l'ammontare del tempo necessario per ottenerlo. Il tempo, dai due ai cinque anni, richiesto per presentare ed ottenere un brevetto è accettabile se la compagnia sta brevettando, diciamo, la formula per il Valium, che non è cambiata in più di vent'anni. Ma nell'industria del software, le compagnie che non rilasciano continuamente le nuove versioni dei loro programmi falliscono. Il loro successo dipende nell'individuare il più velocemente possibile le necessità e svilupparne le soluzioni.
Sfortunatamente, condurre una ricerca per la novità e l'``attivita inventiva'' di un brevetto per determinarne i meriti di ammisibilità è un processo lento, che, quando imbriglia lo sviluppo del software, può stroncare l'innovazione alla sua nascita. E poiché le domande di brevetto sono segrete, non c'è veramente modo per i programmatori di computer di assicurarsi che quello che scrivono non violerà qualche brevetto che ancora deve essere rilasciato. A causa di ciò XyQuest ``inventò'' indipendentemente il suo sistema di correzione automatico degli errori di ortografia e portò il prodotto sul mercato nel tempo intercorso tra il periodo in cui Productivity Software ebbe passato agli atti la sua richiesta ed il momento in cui le fu assegnato il brevetto.
Tali esempi stanno diventando incredibilmente comuni. In un'altro caso, il periodico IEEE Computer, nel giugno 1984, pubblicó un algoritmo altamente efficiente per effettuare compressione di dati; senza che l'editore della rivista o i lettori lo sapessero, gli autori dell'articolo avevano contemporaneamente presentato domanda per un brevetto sulla loro invenzione. Negli anni successivi, per eseguire la cosiddetta ``compressione dati LZW'' furono scritti e distribuiti ampiamente numerosi programmi. Il sistema di compressione fu anche adottato come standard nazionale e fu proposto come standard internazionale. Poi, nel 1985, l'Ufficio Brevetti assegnò il brevetto #4.558.302 ad uno degli autori dell'articolo. Adesso Unisys, detentore del brevetto, sta richiedendo le royalty per l'uso dell'algoritmo. Sebbene ci sono programmi che incorporano l'algoritmo nel pubblico dominio, usare questi programmi vuol dire rischiare una causa giudiziaria.
Non solo il processo di approvazione del brevetto è lento, ma la ricerca di ``prior art"--il criterio che l'Ufficio Brevetti usa per determinare la novità e l'``attività inventiva'' determinante per l'ammissibilità del brevetto--è pressoché impossibile da dirigersi nell'ambito del software per computer. Dopo più di 25 anni, l'Ufficio Brevetti non ha sviluppato un sistema di classificazione per algoritmi e tecniche software, e posto che lo facesse nessuno di tali sistemi potrebbe funzionare. Proprio come i matematici che sono qualche volta inconsapevoli del fatto che vengono usati processi mentali essenzialmente uguali in diverse aree della matematica sotto diverse terminologie, così in diversi ambiti della scienza informatica spesso si reinventa lo stesso algoritmo per raggiungere obiettivi differenti. È irragionevole aspettarsi che un esaminatore di brevetti, pressato dalle scadenze, voglia riconoscere tutti questi duplicati. Per esempio, alla IBM è stato rilasciato un brevetto riguardante lo stesso algoritmo di compressione dati di cui la Unisys, a quanto risulterebbe, è proprietaria. L'Ufficio Brevetti probabilmente non era consapevole del fatto che stava concedendo due brevetti per lo stesso algoritmo a causa del fatto che la descrizione dello stesso brevetto era completamente differente, anche se le formule erano matematicamente equivalenti.
La ricerca di ``prior art'' è complicata dal fatto che la letteratura della scienza informatica è incredibilmente vasta. Essa comprende non solo giornali accademici, ma anche manuali degli utenti, codice sorgente pubblicato e descrizioni in popolari riviste per appassionati di computer. Mentre un'equipe di chimici che lavorano nelle migliori università possono produrre 20 o 30 pagine di materiale pubblicato per ogni anno, un solo programmatore può facilmente produrre cento volte tanto. La situazione diventa anche più complessa nel caso del brevetto su combinazioni di algoritmi e tecniche software. I programmatori pubblicano spesso nuove tecniche, ma nella maggioranza dei casi nessuno di loro pubblica mai nuovi modi di combinare quelle vecchie. Nonostante i singoli algoritmi e tecniche sono stati combinati in molti modi differenti nel passato, non c'è alcun valido modo per stabilire chi storicamente abbia la precedenza.
L'incapacità di cercare esaurientemente nella letteratura per ``prior art'' è un fatto cruciale, perché a meno che l'esaminatore non trovi del ``prior art'', lui o lei è obbligato a emettere il brevetto. Come risulta, molti brevetti sono stati assegnati--e in seguito difesi in tribunale--senza che fossero ``originali'', anche secondo la definizione dell'Ufficio Brevetti. Si trattava semplicemente del fatto che né l'esaminatore del brevetto né i difensori nella causa sapevano del ``prior art''.
Alcuni membri della comunità del software commerciale stanno adesso proponendo la creazione di un ``Istituto del Brevetto Software'' (Software Patent Institute) per identificare il ``prior art'' che esisteva prima del 1980. Ma anche se un tale istituto potrà catalogare ogni scoperta fatta da ogni programmatore degli Stati Uniti, non ha senso dichiarare arbitrariamente che solo prima del 1980 ogni lavoro sul software fosse di pubblico dominio. Inoltre, quale sarebbe l'obiettivo? Per consentire il brevetto di leggi di natura puramente matematica?