I brevetti sul software non abbracciano l'intero programma; includono, invece, algoritmi e tecniche--le istruzioni che dicono ad un computer come raggiungere un determinato scopo nel programma. Ogni programma è composto da migliaia di istruzioni. Ma laddove l'unica combinazione di algoritmi e tecniche in un programma è considerato un'espressione (come un libro o una canzone) ed è sottoposta alle leggi del copyright, gli stessi algoritmi e tecniche sono trattate come procedure che hanno i requisiti adatti al brevetto.
Le basi giuridiche per questa idoneità sono perloppiù esili. Le leggi statunitensi non consentono agli inventori, per quanto siano brillanti, di brevettare leggi di natura, e in due casi della Corte Suprema (Gottschalk v. Benson, 1972, e Parker v. Flook, 1978) la Corte estende questo principio agli algoritmi per computer e tecniche software. Però nella causa Diamond v. Diehr del 1981, la Corte disse che potevano essere concessi brevetti per processi industriali che erano controllati da certi algoritmi per computer, e l'Ufficio Brevetti sembra avere interpretato questa decisione come il semaforo verde per la brevettabilità di algoritmi e tecniche software in generale.
Adesso si stanno registrando brevetti software ad una velocità allarmante--stando ad alcuni conteggi, ne vengono emessi più di un migliaio ogni anno. Sfortunatamente, la maggior parte delle invenzioni brevettate hanno in sé press'a poco tanta bravura e originalità quanta se ne trova nella ricetta del riso bollito--semplice di per sé ma parte essenziale di piatti complicati. Molti riguardano algoritmi e tecniche davvero elementari e specifiche che vengono usate in un'ampia varietà di programmi. Frequentemente le ``invenzioni'' menzionate in una applicazione brevettata sono già in uso da altri programmatori al momento in cui viene presentata la domanda per il brevetto.
Quando l'Ufficio Brevetti concede un brevetto su un algoritmo o una tecnica, sta dicendo ai programmatori che essi non devono usare un particolare metodo per risolvere un problema senza il permesso del ``proprietario'' dell'idea. Per i programmatori, brevettare un algoritmo o una tecnica è come brevettare una serie di note musicali o un giro di accordi, forzando di conseguenza i compositori ad acquistare una ``licenza di sequenza musicale''.