Moin!
Ich bin - als Systemprogrammierer - Freiberufler, obwohl ich auch viel mit Datenbanken zu tun habe. Auch hier wusste es mein Steuerberater nicht so genau.
Ganz einfach: § 18 EStG
"Zu der freiberuflichen Tätigkeit gehören die selbständig ausgeübte wissenschaftliche, künstlerische, schriftstellerische, unterrichtende oder erzieherische Tätigkeit, die selbständige Berufstätigkeit der Ärzte, Zahnärzte, Tierärzte, Rechtsanwälte, Notare, Patentanwälte, Vermessungsingenieure, Ingenieure, Architekten, Handelschemiker, Wirtschaftsprüfer, Steuerberater, beratenden Volks- und Betriebswirte, vereidigten Buchprüfer, Steuerbevollmächtigten, Heilpraktiker, Dentisten, Krankengymnasten, Journalisten, Bildberichterstatter, Dolmetscher, Übersetzer, Lotsen und ähnlicher Berufe."
Programmierer stehen hier Vermessungsingenieure, Ingenieure, gleich, die Regelung liegt in "und ähnlicher Berufe."
Gewerblich (nicht freiberuflich) ist die Tätigkeit dann, wenn die Software auch vermarktet wird. Wichtiges Merkmal für die Freiberuflichkeit ist das ingenieursmäßige Vorgehen bei der Erstellung: ("Planung, Konstruktion und Überwachung") der Software. Es wird eigentlich immer möglich sein, sein Vorgehen so zu beschreiben, es sei denn man bekommt einen PAP (Programmablaufplan) und "programmiert den runter". Den PAP zu erstellen ist dann aber "ingenieursmäßig". PAP erstellen und programmieren auch.
http://de.wikipedia.org/wiki/Freier_Beruf_%28Deutschland%29#Beispiel_Programmierer
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix