Das Softwareprojekt
Die Fähigkeit mit einer Programmiersprache umgehen zu können, ist sicherlich unabdingbar, um ein Projekt zu starten. Eine "fertige" Software ist das Ergebnis aus weitaus mehr als ein paar niedergeschriebenen Codezeilen.
Die Idee
Ein Softwareprojekt entsteht in der Regel aus Bedarf oder einer Marktlücke. Ein häufiger Fehler gerade im Hobbybereich ist es, ein Projekt auf die Beine zu stellen, das kein Potenzial hat. Wie Sand am Meer findet man im Internet Klone meist kleinerer Spiele und Programme, die allzu oft nur unvollständig entwickelt wurden. Im professionellen Bereich sieht das ganze etwas anders aus: Hier gibt es meistens einen Auftraggeber, den Kunden, der eine Idee umgesetzt haben möchte.
Ist die Idee einmal vorhanden, kommt die Ernüchterung: Es muss geprüft werden, was machbar ist und was nicht. Hier geht es zum einen um das Technische, aber noch mehr um das Finanzielle, schließlich müssen Softwareentwickler bezahlt werden und selten ist das Budget uneingeschränkt.
Die Planung
Der Code ist noch lange nicht in Sicht, erst muss geplant werden. Gedanken über Personal etc. lassen wir außen vor, da du wahrscheinlich wohl eher Hobbyprogrammierer bist. Das Projekt selber muss auch geplant werden. Je professioneller die Sache angegangen werden soll, desto mehr Bürokratie findet nun statt.
Üblicherweise lässt sich Software in bestimmte Komponenten aufteilen. Diese Teile müssen aus der Idee heraus erarbeitet werden. Hier kann dann sogar schon mit einem groben Zeitplan begonnen werden.
Die Umsetzung
Noch immer sind wir nicht beim Coden angekommen, aber langsam wird es spannender. Konkrete Teile müssen weiter durchdacht werden. Dieser Teil unterscheidet das Greenhorn vom erfahrenen Programmierer. Die wahre Kunst der Programmierung steckt nicht im Niederschreiben von Code, sondern in der Aufstellung von Konzepten. Soll das Programm Modular mit Hilfe von Objektorientierung augebaut sein, oder ist das einzig Effektive nun das alt bewährte prozeduale Programmieren? Wie soll das Programm überhaupt ablaufen, ist alles Interruptgesteuert, muss Polling herhalten? Muss das Rad denn überhaupt neu erfunden werden, gab es denn da nicht einst so eine komfortable Library? All sowas muss geplant werden. Wer ein Programmiersprachenbuch gelesen hat, kennt wohl einen Großteil der Begrifflichkeiten, aber der Umgang ist bei weitem nicht so einfach. Erfahrung ist für die Planung unumgänglich.
Erst nach Abschluss der Planung beginnt der vom Laien als Softwareentwicklung angesehene Teil: Die Verfassung des Quellcodes.
Die Qualitätssicherung
Obwohl das Softwareprojekt im Großen und Ganzen nun fertiggestellt sein sollte, fehlt noch etwas, was leider auch im profesionellen Bereich viel zu sehr vernachlässigt wird: Die Qualitätssicherung. Wer kennt das nicht: Etliche Mängel und die dazugehörenden - teilweise sicherheitsrelevanten - Updates. Diese sind zum Großteil eine Folge der nachlässigen Qualitätssicherung. Es sind meist finanzielle Gründe, die diese Sünde ausmachen.
Die Pflege
Auch wenn viele Updates durch die intensive Qualitätssicherung vermieden werden können, geht es nicht ganz ohne. Der Bedarf seitens der Anwender steigt oder verändert sich nicht und die Konkurrenz schläft nicht. Neue Funktionen oder gar ganz neue Versionen von Programmen sind wichtig. Gerade die IT-Branche wandelt sich schnell und Programme sind nach einem Jahr ohne Pflege oft schon Alteisen.
Fazit
Vielleicht ist es dir bewusst geworden: Hinter einem Softwareprojekt steckt viel Arbeit. Eine - wenn man es richtig angeht - aber durchaus nicht selten lohnende Beschäftigung. Genügend Programme zeugen von Erfolg, dabei darf nie vergessen werden, dass aber genügend Projekte in den Sand gesetzt werden. Möglicherweise konnte dir dieser Artikel einen kleinen Eindruck vermitteln, der sich vielleicht irgendwann noch einmal bezahlt macht.
Viel Spaß und Erfolg beim Entwickeln!
Post comment
Zum Kommentieren musst du angemeldet sein.

3 comments
Bohnenstrohalme am Feb. 14, 2009 um 10:13 a.m.
Chris am Feb. 22, 2009 um 12:08 a.m.
LongHairedHacker am March 1, 2009 um 12:10 a.m.