Gegenfrage…
Zuerst eine Gegenfrage: Hat der Arbeitnehmer eine Software entwickelt, die sich in Bezug auf das Software-Patentrecht als „Erfindung“ titulieren ließe, d.h. welche wichtige, neue, bis dato unbekannte Technologien und Algorithmen umsetzt?
Wenn ja, würde das ArbNErfG greifen, wonach eine dem AG meldepflichtige Erfindung entstanden wäre und der übliche Prozess einzuhalten wäre.
Wenn nein, wäre wohl zu fragen, ob der AN mit der Entwicklung der SW direkt oder indirekt beauftragt war, denn die Erfüllung eines Auftrags ist die reguläre Dienstpflicht des Arbeinehmers und begründet keine zusätzlichen Ansprüche über das vertraglich vereinbarte Gehalt hinaus.
Hat ein Programmierer Urheberrechte an seinen Programmen, die er im Rahmen einer Angestelltentätigkeit entworfen hat?
Schlimmstenfalls könnte dies im Rechtsstreit dazu führen, dass der AG dem AN dieses Recht zugesteht, dann aber eine Gegenklage einreicht wegen Zweckentfremdung der Arbeitszeit und privatem Mißbrauch von Arbeitgeber-Eigentum.
Darf er also die Programme selbstständig weiterentwickeln
Das jedenfalls.
und vermarkten
Das geht nur unter gewissen Bedingungen.
Zuerst muss er sicherstellen, dass die SW frei von Rechten Dritter ist - und das ist ganz schnell nicht mehr gegeben, wenn er z.B. Prozesse oder Strukturen eingearbeitet hat, welche beim AG zum Einsatz kommen.
Schlimmstenfalls begibt er sich dann nämlich selbst auf das Glatteis des Urheberrechtsbruchs. Kann der AN beweisen, dass er für die SW keinerlei Knowhow nutzt, welches ihm der AG zur Verfügung gestellt hat?
oder der Firma die Nutzung seiner Programme sogar verbieten?
Das wird man in der Praxis nicht durchbekommen, und selbst wenn könnte die Firma im Gegenzug mit einer Klage auf Schadensersatz ankommen, wenn der AN dem AG die Nutzung der SW zuvor angeboten hatte und man davon ausgehen konnte, dass eine kostenfreie Integration der SW in die eigenen Prozesse bereits vereinbart ist. Und das ist es normalerweise, wenn ein AN einem AG ein während der Arbeitszeit entwickeltes Produkt zur Verfügung stellt.
Und gibt es einen rechtlichen Unterschied zwischen der compilierten Software und dem bloßen Quelltext?
Siehe Gnu Public License 
Aus der Praxis kann ich soviel sagen:
Die Rechte für SW, welche der AN im Rahmen seiner regulären Arbeitszeit entwickelt hat, liegen normal beim Arbeitgeber.
Allerdings ist der AN nicht zu Wartung und Pflege der Software nach Ablauf seines Beschäftigungsverhältnisses verpflichtet.
Das heißt, wenn der AN eine Software übergibt, welche nicht für die Ewigkeit gedacht ist, trägt der Arbeitgeber auch das Risiko einer Fehlfunktionalität.
Läßt man die Software stillschweigend in das geistige Eigentum des AG übergehen, und jener setzt die SW in zentralen Prozessen ein, dann sind oft hohe wirtschaftliche Interessen mit dem Einsatz der SW verbunden.
Daraus kann natürlich in Bezug auf Wartung, Pflege, Erweiterung, Dokumentation und Schulung etc. ein lukrativer Service-Vertrag für den ehemaligen AN entstehen ^^
Ein mutwilliges Einbauen von Fehlern kurz vor Ende der Arbeitszeit kann jedoch rechtliche Konsequenzen haben und ähnlich wie Sabotage geahndet werden.