.NET Programmierung

Buche Deine .NET Programmierung beim Profi

Microsoft, C#, VB.NET, .NET sind Marken der Microsoft-Unternehmensgruppe.

Unverbindlich anfragen

Deine unverbindliche Anfrage zur .NET Programmierung schnell & unkompliziert bei mir im Posteingang: Verwende mein ausgeklügeltes Anfrage-Formular, damit Du mir Deine neue, oder geplante Software einfach und effizient näher bringen kannst – E-Mail, Projektname, Beschreibung & Budget sind erforderlich.

max. 50 Zeichen
max. 1000 Zeichen

Anmeldung

Fast aus jeder Software kennt man ihn: Den kleinen Anmelde-Bildschirm, bevor es mit dem eigentlichen Inhalt losgeht. Benötigt auch Deine existierende, oder geplante .NET Applikation einen Login-Mechanismus? Gerne kannst Du mir hier auch direkt die verschiedenen, vertretenen Nutzerrollen Deiner Nutzer mitteilen. Dabei kann es sich um verschiedene übliche, oder ausgefallene Rollen handeln: System-Admin, Chef, Mitarbeiter, Auszubildender & Co. Mehr Informationen über Themen wie Anmeldung & Sicherheit findest Du weiter unten.

Rollen

So wie viele Applikationen wird vielleicht auch Deine die Nutzung durch verschiedene Parteien unterstützen müssen. Verschiedene mitwirkende Personen haben nun einmal auch verschiedene Aufgabenbereiche. Besonders im Zuge der DSGVO sollte der Gast-Benutzer vielleicht keinen Voll-Zugriff auf Rechnungsdaten haben. Verwenden das untere Textfeld mit dem daneben stehenden "Plus", um alle Dir wichtigen und bekannten Rollen Deines Programms hinzuzufügen. Benutze den "X"-Knopf, um eventuelle Schreibfehler zu korrigieren, bzw. Elemente wieder zu löschen.

Berechtigungen

Als Nächstes beleuchten wir den Teilbereich, Welchen wir oben schon einmal angedeutet haben. Der obige Gast-Benutzer sollte im Optimalfall nur die Berechtigungen haben, für die er auch geeignet ist. Dabei könnte es sich natürlich um einfache Dinge wie "Angebot einsehen", oder "Artikel einsehen" handeln. Die Verwaltung von einzelnen Berechtigungen wird häufig auf Rollen-Basis durchgeführt, man gruppiert also einzelne Berechtigungen zu mehreren Gruppen. Damit lassen sich gewisse, gruppierte Aspekte besser steuern. Wie fast immer im Leben ist dies alles aber abhängig von Programm-Struktur, Vorbereitung und gewissen Herausforderungen, daher variiert die Umsetzung häufig.

Plattform

Der Ausgangspunkt der .NET Programmierung ist wohl die gute alte Windows-Software, also eine Applikation für das Windows Betriebssystem. Für mich als Entwickler ist es heutzutage ebenfalls schön, durch Ansätze wie .NET Core, Mono & Co. auch verstärkt im "Cross Platform" Bereich (.NET basiert) arbeiten zu können. Vielleicht hast auch Du bei Deinem nächsten Projekt gewisse Plattform-Anforderungen?

Datenspeicherung

Daten werden innerhalb von Applikation erstmal nur während der Laufzeit erstellt, Welche sich dann im Zwischenspeicher des Computers befinden. Dieser Zwischenspeicher (RAM genannt) gibt diese Ressourcen, aber nach der Laufzeit, also nach der Beendigung des Programmes wieder frei. Daher muss man sich hier Gedanken über die permanente Speicherung der Daten, wie z. B. in einer Datenbank machen. Häufig spricht Software auch mit sogenannten Web-Schnittstellen, woraus dann Daten kommen, oder wohin Daten gesendet werden. Wo sollen sich die Daten Deiner Applikation befinden? Benötigst Du einen Datenspeicher?

Konkurrenz

Wer eine erfolgreiche Software planen möchte, darf die Konkurrenz besonders in der heutigen Zeit nicht aus den Augen lassen. Eine ausgiebige Erforschung des bestehenden Produktmarktes und der aktiven Konkurrenz ist unausweichlich. Ebenso sollte man sich gerade für die Aspekte der Konkurrenz interessieren, Welche die Kunden bemängeln. Hier kannst Du mir einige Deiner eventuell vorhandenen Informationen über Deine (potenzielle) Konkurrenz übermitteln.

Links zu ähnlichen Produkten / Bildern

max. 250 Zeichen

Marketing

In der heutigen Zeit befinden wir uns in einer Blüte-Zeit, wenn es um das Thema Marketing geht. Besonders toll sind die modernen, riesigen Plattformen, Welche sogar meist völlig kostenfrei genutzt werden können. Verwendest Du ggf. bereits verschiedene Marketing-Kanäle? Wenn ja, Welche? Welche Kanäle planst Du ggf. zu nutzen?

Website

Jede Firma, Welche heutzutage einigermaßen professionell auftreten möchte, sollte eine präsentierbare Website besitzen. Dabei sollte man besonders auf die gängigen (teils minimalen) Standards achten: Eine gesicherte Verbindung sollte möglich sein (Https), die Website sollte mobil ebenso gut wie auf dem Desktop funktionieren und und und.. Besitzt Du, oder Dein Projekt bereits eine Homepage? Wie arbeitest Du dort? Verwendest Du ggf. ein Content Management System (CMS)? Oder hast Du die Website ggf. individuell entwickeln lassen?

Soziale Medien

Häufig wird die mediale und markttechnische Macht von sozialen Medien völlig zum Nachteil der Unternehmen unterschätzt. Egal ob YouTube, Facebook, oder TikTok, alle bieten eine kostenlose Plattform für Digital Creators, womit man täglich Abermillionen von potenziellen Kunden erreichen kann. Natürlich könnte man auch hier den Weg der aktiven, kostenpflichtigen Werbeflächen gehen.

Ich beziehe folgende soziale Medien in mein Marketing ein (oder habe dies vor):

max. 250 Zeichen

.NET Programmierung - Windows Forms

Winforms Entwicklung

Mit dem "Windows Forms" Toolkit (kurz Winforms) des .NET Frameworks von Microsoft, begann vor vielen Jahren die einfache und intuitive Entwicklung von grafischen Oberflächen. Auch meine persönlichen Wurzeln finden ihren Ursprung bei den Windows Forms. Viele Jahre und die damit verbundene Erfahrung prägten eine meiner Kernkompetenzen.

.NET Programmierung Winforms CRM Beispiel Screenshot
.NET Programmierung Winforms CRM Beispiel Screenshot

WPF Entwicklung

In Kombination mit dem MVVM-Entwurfsmuster (der sauberen Trennung von: Daten, Ansichten & Steuerung Dieser) liegt der moderne Schwerpunkt der Windows-Entwicklung bei WPF. Die hinter dem Akronym stehende Windows Presentation Foundation Technologie, Welche auch ich heutzutage primär einsetze, bietet völlig neue grafische Möglichkeiten.

.NET WPF Software Beispiel App Screenshot
.NET WPF Software Beispiel App Screenshot
.NET Programmierung - WPF

C# & VB.NET

.NET Programmierung mit C# und VB.NET

Wer sich mit der .NET Programmierung beschäftigt, trifft früher, oder später garantiert auf die beiden hauptsächlich vertretenen Programmiersprachen: C# (C-Sharp) und VB.NET (Visual Basic .NET). Auch wenn C# der heutigen Meinung entsprechend der klare Goliath im Vergleich zu Visual Basic ist, steht VB dem "großen Bruder" in nichts nach. Beide greifen letztendlich auf die gleichen Werkzeuge zu: Dem .NET Framework, beide Programmiersprachen verwenden also dieselbe Basis.

Trotz der Tatsache, dass beide Programmiersprachen prinzipiell die gleichen Möglichkeiten zur modernen Softwareentwicklung (.NET Programmierung) bieten, bevorzuge auch ich C#. Das liegt einerseits an der breiten Entwickler-Community und weil Diese ja auch häufig zusammenarbeiten. Andererseits liegt es an der für "C"-Sprachen typischen Schreibweise, Welche mir sehr gefällt und Welche man durch die ganzen Jahre natürlich gewohnt ist.

Dieselbe Sprache sprechen

Hier kann man aus Entwickler- und ggf. auch aus Kundensicht direkt den nächsten Aspekt herauskristallisieren. Ein Team, Welches die gleiche, oder zumindest eine ähnliche Sprache spricht, wird grundsätzlich einfacher zusammenarbeiten können, als wenn es verschiedene Sprachen wären. Hier kannst auch Du als Kunde durchaus profitieren!

Auch wenn Du in meinem Beispiel das Glück hast, dass ich bereits mit vielen verschiedenen Programmiersprachen auf professioneller Ebene gearbeitet habe, ist dem nicht immer so. Das bedeutet für verschiedene Gebiete dann natürlich auch den Bedarf unterschiedlicher Programmierer. Vielleicht könntest Du stattdessen mit einem einzigen Programmierer (-Team) und einem gleichbleibenden Stundenlohn arbeiten.

Aufgabenteilung

Im .NET Umfeld ist die Gestaltung der verschiedenen Aufgaben verglichen mit anderen Bereichen relativ einfach. Besonders der Web-Bereich (also die Webentwicklung) zieht häufig verschiedene Spezialisten mit ins Boot. Während die einen auf den Client-Code wie JavaScript konzentriert sind, bauen die anderen die Grundgerüste der Website in HTML-Form. Widerrum andere Entwickler arbeiten am Feinschliff der grafischen Darstellung mit CSS. Zuletzt gibt es natürlich auch noch die serverseitige Programmierung mit z. B. PHP, Welche häufig auch von separaten Spezialisten übernommen wird.

Zurück bei der .NET Programmierung, liegt der erste Fokus auf der Windows Forms Entwicklung. Hier wurden die Anwendungen ursprünglicher Weise als eine Art Misch-Produkt aus Code und Design entworfen. Das heißt letztendlich, dass dort meistens vielerlei Aufgaben von einem einzigen Entwickler übernommen wurden.

Bei den modernen WPF-Anwendungen sieht das Ganze schon ein wenig anders aus, da dort eine saubere Trennung von Design und Code zu den essenziellen Aspekten gehört. In größeren Teams, gar Abteilungen, kümmert sich der eine Teil z. B. via XAML-Code um das Design. Das andere, bzw. die anderen Teams kümmern sich dann um den Code dahinter.


Meine Software ist SOLID

SOLIDe .NET Programmierung

Eine SOLID(e) .NET Programmierung

Wenn im Bereich der Softwareentwicklung von solider Software, bzw. "SOLID" gesprochen wird, meint man keinesfalls Zustände wie "fest", oder "locker". Es steht viel mehr für die Zusammensetzung mehrerer einzelner Wörter, wobei jedes Wort ein eigenes Prinzip aus der Softwareentwicklung beschreibt. Ich denke, ich erspare Dir die detaillierte Erklärung jedes einzelnen Wortes, reiße allerdings ein wenig an, worum es dort geht.

Auch wenn Du als Kunde meist nicht mit dem Code in Berührung kommst, wirst Du die Unterschiede früher oder später merken können. Die Anwendung der erwähnten Prinzipien sorgt mit unterschiedlichen Gesichtspunkten für saubereren Programm-Code der Software. Hierbei spielt wie so oft die Größe des Kunden und vor allem das damit verbundene Budget eine Rolle.

Ich behaupte, dass 90 % der kleineren Firmen den Code nicht kontrollieren, bzw. ansehen, oder gar verstehen. Das kann natürlich auch daran liegen, dass die Firmen eventuell nur das fertige Produkt, ohne Rechte am Code haben möchten. Das hat in erster Linie die typischen Gründe: Budget, Zeit, etc.

Größere Firmen gehen hingegen des Öfteren hin und kontrollieren, bzw. reviewen den Code in gemeinsamen Runden. Dort werden ggf. auch Probleme und Aspekte notiert und anschließend beim jeweiligen Entwickler (-Team) angesprochen.

Schnell, schnell – abrechnen: Schlecht!

Ganz nach dem Motto "der Kunde merkt's eh nicht" werden häufig kleinere Projekte "schnell, schnell" erledigt. Dann wird der Festpreis abgerechnet und man geht getrennte Wege, bis.. Ein halbes Jahr später, wo die Software tatsächlich intensiv genutzt und getestet wurde, neue Features hinzukommen sollen. Eventuell gab es auch das ein oder andere Problem, Welches bis heute nicht gelöst und irgendwie mit einem Workaround toleriert wurde.

Dann beginnt häufig das langsame Aufwachen, denn plötzlich dauert die Weiterentwicklung länger und ist damit wesentlich teurer. Ebenso wurde einem durch die bisherige Vorgehensweise das einfache Testen der Anwendung erschwert. Bitte bedenke aber auch hier, dass hier meistens alles mit dem Budget steht und fällt!

Auch ein Softwareentwickler (egal ob .NET Programmierung, oder sonst wo) hat es in der Regel nicht anders als andere Dienstleister. Man ist (oder sollte) als Dienstleister natürlich an gewissenhafter und qualitativer Arbeit interessiert, aber manchmal bekommt man einfach den Hals zugeschnürt.


Über mich

Robert Skibbe .NET Programmierung - NET Softwareentwickler

Seit 2011 bin ich nun schon auf beruflicher Basis im Bereich .NET Programmierung unterwegs, daher bezeichne ich mich mit mehr als 12 Jahren Erfahrung als .NET Experte. Meinen Code gestalte ich immer anhand gängiger Entwurfsmuster, weil saubere Programmierung für mich ein Muss ist.

Meinen Wissensschatz konnte ich in der Vergangenheit in verschiedenen Software-Projekten wie:

  • Kundenverwaltungen
  • Hardware-Steuerungen
  • komplexen ERPs
  • uvm.

und meinen Unterrichts-Stunden unter Beweis stellen. Dabei haben mich natürlich meine bisherigen Festanstellungen in kleinen bis großen Firmen geprägt. Andererseits habe ich einen Großteil meiner Erfahrung als Freelancer für Kundenprojekte gemacht. Zuletzt spielte (und spielt) mein Drang zur Selbstverwirklichung und Umsetzung kreativer Software-Ideen innerhalb meiner Selbstständigkeit eine ebenso große Rolle.

Basierend auf Deinen Anforderungen, dem Budget und der jeweiligen Deadline füge ich den Projekten Kommentare, Tests & eine Dokumentation hinzu. Sprich mich bei Bedarf gerne an und erörtern eventuell gemeinsam, in welchem Format und Umfang es am besten passt.

Im unteren Abschnitt findest Du mehr Informationen dazu, wie ich Software umsetze, dabei wird es allerdings zwangsweise ein wenig technisch. Ich habe dennoch versucht, so einfach und verständlich wie möglich zu bleiben, um Dir die Themen näherzubringen.


Häufige Fragen – FAQ

Vermutlich ist Dir eine tolle Idee in den Kopf gekommen und Du möchtest Sie natürlich gleich umsetzen. Als Nächstes werden Dir bestimmt auch so einige Fragen einfallen. Dazu habe ich die folgende Sammlung an Fragen gesammelt.

Kurz und bündig

  • Kleinere Projekte: Um die 500€
  • Mittelgroße Projekt: Um die 1300€
  • Große, komplexe Projekte: Mehrere tausend Euro

Als Käufer in der Recherche-Phase, ist das erste, ausschlaggebende Argument womöglich der augenscheinliche Preis. Augenscheinlich deshalb, weil es vor allem bei Fix-Preisen häufig versteckte Kosten gibt. Diese können sich in verschiedenen Aspekten der .NET Programmierung verstecken, dazu gleich mehr.

Hintergrund

Auch Programmierer lassen sich wie viele andere Dienstleister für gewöhnlich auf stundenbasierten Lohn bezahlen. Man kann hier also ganz normal an eine Art Stundenlohn im Sinne der "Stundenpreis + Zeit = Preis" -Formel denken. Neben fixen Stundenlöhnen sieht man natürlich auch (besonders im Dumping-Bereich) gewisse Festpreis-Pakete, Welche quasi eine Art "Rundum-Wohlfühl"-Paket anbieten.

Das Problem mit dem Festpreis

Jede Upside hat im Leben wohl auch – wie üblich – eine Downside, so könnte man zumindest hier ebenfalls argumentieren. Wenn ich jemanden z. B. nur bei aktiver Arbeit, also stundenbasiert bezahle, macht mich das in gewisser Weise flexibler. Ich kann nach jeder bezahlten Stunde praktisch wechseln und frei bestimmen. Das unterstützt nicht nur die Kostenkontrolle, sondern bietet auch die Möglichkeit kleinerer, schrittweiser Planungen.

Möchte ich mich gerne länger binden und Arbeits-Pakete erstellen, kann ich hier auch auf die Festpreis-Variante zurückgreifen. Dadurch bin ich an mein Team, oder einzelnen Partner vertraglich gebunden. Man sollte sich natürlich auch die Frage stellen, welche Reaktionszeit man von seinem Entwickler-Team erwartet. Soll sich mein Entwickler, oder Entwickler-Team auf mein Projekt fokussieren? Zu welchen Zeiten und in welchen Arbeits-Intervallen soll an mein Projekt gearbeitet werden?

Auf ein besonders großes Problem stoßen wir mit den Festpreisen, einerseits als Entwickler, andererseits als Kunde. Software kann (und wird häufig) extrem komplex und teilweise unabschätzbar. Jedes Projekt hat seine eigenen, ganz speziellen Besonderheiten und Ausnahmen. Besonders, wenn Schnittstellen und Werkzeuge anderer Hersteller ins Spiel kommen. Mangelhafte Dokumentationen, Updates der Drittanbieter und und und.

Wenn Dir ein Entwickler also einen Festpreis macht und aus verschiedenen Gründen länger braucht als geplant, gibt es praktisch nur 2 Möglichkeiten: 1. Mithilfe einer Vertragsregelung nach mehr Budget fragen. 2. Abstriche in der Code-Qualität machen, um – komme was wolle – schneller fertig zu werden. Ich würde behaupten, dass 90 % der Entwickler für die letztere Methode wählen.

Neben den beiden vorgestellten Varianten gibt es auch noch gewisse Misch-Modelle. Ggf. arbeitet man eine gewisse Zeit auf Stundenbasis und zwischendurch eventuell mit Projektphasen. Ich persönlich ändere die Vorgehensweisen in erster Linie anhand der jeweiligen Projekt-Größe.

Das Fazit

Für mich muss Programm-Code sauber geschrieben, bzw. programmiert sein und Software ist leider eben nicht immer gleich Software. Bei Unsicherheit sollte man sich bei einem guten Entwickler seriös beraten lassen und nach Möglichkeit lieber erstmal mehr Budget einplanen, auch wenn dies vermeintlich weh tut. Damit kann man dann später gängigen Problemen vorbeugen. Unerlässlich ist hier natürlich immer die Absprache zwischen Kunde und Programmierer.

Ein allgemein bekanntes Sprichwort findet hier starke Worte: "Wer billig kauft, kauft zweimal!". Neben vielen anderen Branchen, leidet auch die Software-Branche unter Dumping-Preisen. Es werden Applikationen verkauft, Welche weder den minimal notwendigen Sicherheits-Standards, noch effizienter (und vor allem zukunftsorientierter) Programmierung entsprechen.

Damit haben sich schon einige Schnäppchenjäger selbst in Bein, bzw. ins Portemonnaie geschossen. Wenn man sein Haus auf einem maroden Fundament erbaut, wird früher oder später erfahren, wie schmerzhaft es ist, alles nochmal abreißen zu müssen, nur um das Fundament zu richten.

Meine Empfehlung

Ich kann Dir für kleinere Projekt einen groben Rahmen von mindestens 300-500 € als Vorausplanung empfehlen. Um diesen Rahmen so gut wie möglich als Basis zu haben, solltest Du eine konkrete Vorstellung in Form von Zeichnungen und Ähnlichem mitgeben (das solltest Du im Optimalfall immer). Besonders kostenschonend ist es auch, wenn Du bei Deiner Software auf ausgefallene Animationen und derartige Dinge verzichtest. Das erspart dem Entwickler unnötige Eigen-, bzw. Neuentwicklungen und schont somit Deinen Geldbeutel.

Falls man ein etwas größeres, oder gar großes Projekt plant, Welches ein komplexes und verstricktes System darstellt, kann es natürlich auch mehrere tausend Euro kosten. Zum Schluss zählt natürlich erstmal nur eines: Das Projekt sollte einen entsprechenden Mehrwert liefern, sei es nun zum Verkauf, oder für den eigenen Nutzen (eigene Firma, privat, etc.).

Eine Idee ist erstmal nur das – Punkt!

Auch wenn ich Dich selbstverständlich gerne berate, solltest Du Dir schon vorher ausreichend Gedanken über Dein Projekt gemacht haben. Ein einfaches "programmieren wir einfach drauf los" provoziert häufig unnötige Mehrarbeit und somit Kosten deinerseits.

"Es wurde doch schon alles erfunden!"

Der erste Dich eventuell zum Zweifeln bringender Punkt wird vermutlich das "... gibt es schon"-Argument sein. Auch wenn wir nicht mehr das erste Facebook, oder das erste Amazon heutzutage erfinden werden, sind doch gerade diese Plattformen die Fallbeispiele schlechthin. Weder war Facebook der Vorreiter der sozialen Netzwerke, noch war, oder ist Amazon der einzige Marktplatz im Netz.

Überlege Dir stattdessen, was Du im Vergleich zu Deiner (potenziellen) Konkurrenz mit Deinem Produkt besser machen möchtest. Greife dazu auf die bestehenden Rezensionen zu den Produkten zurück und höre Dir an, was deren Nutzer zu sagen haben. Häufig erschließen sich gerade daraus neue Ideen, bzw. neue Lösungen.

Entwickler = Marketing-Spezialist

Häufig sind Entwickler in erster Linie erstmal Entwickler, also Fachleute für die Programmierung von Software in deren Spezialgebiet (.NET Programmierung, Web, iOS, etc.). Mit mir an Deiner Seite hast Du z. B. das Glück auch jemanden mit Marketing-Erfahrung im Team zu haben. Besonders die Suchmaschinenoptimierung (SEO) im Web-Bereich ist eine meiner Stärken.

Plane die notwendigen Rollen Deines Projektes, also die involvierten Parteien wie Steuerberater, Rechtsanwalt, Design- und Marketing-Experten also ggf. ein. Überlege Dir ebenfalls, wer eventuelle Kundenanfragen beantwortet, Welche Arbeits- und Reaktionszeiten erwartet werden (von Deinem Programmierer, etc.).

Gibt's doch "von der Stange"

Viele Menschen mit kreativen Ideen, die Entwickler kontaktieren denken, dass es irgendwie alles schon fertig, also quasi "ready to use" gibt. Dies ist leider ein gängiger Trugschluss. Natürlich gibt es einige Schnipsel und teilweise sogar fertige Komponenten, aber Diese sind häufig auf spezielle Systeme und Umgebungen zurechtgeschnitten (weit über Betriebssystem und Programmiersprache hinaus).

Ein wichtiger Aspekt ist hier (obwohl er von vielen Menschen vergessen, oder gar nicht gewusst wird) der sogenannte Overhead. Ein "ich funktioniere auf so vielen Dingen und komplex wie möglich"-Aspekt bringt natürlich programmiertechnische Eventualitäten mit sich. Weiter geht es bei den verwendeten Tools, über deren Be- und Einschränkungen und geht weiter bis zu den Unterschieden, die von verschiedenen Hersteller kommen.

Wie man so schön sagt, gibt es "Gott sei Dank" einige Hilfsmittel, um zumindest nicht alles neu bauen zu müssen. Dabei geht es seitens der Software meist um gewisse Infrastruktur-Tools, allerdings möchte ich das hier nicht zu tief verkomplizieren. Die Werkzeuge erleichtern den Programmierern das Erstellen der Anwendung in verschiedenen Aspekten.

Ziemlich einfach wird es, wenn Du hierbei an eine alltägliche Sache denkst: Nehmen wir z. B. den hauseigenen Garten. Du wirst Deine Grünfläche nicht unbedingt mit einer Nagelschere, sondern eher mit einer erfundenen, produzierten und weiterverkauften Maschine namens Rasenmäher trimmen, oder? So ähnlich kann man sich verschiedene Werkzeuge für die Entwickler vorstellen.

Rechtliche Abklärung?

Häufig haben die kreativen Geister Ihre Ideen schnell geplant und ggf. sogar anschließend umgesetzt. Leider wird auch ebenso häufig ein wichtiger Aspekt außer Acht gelassen: Ein Programmierer ist eben kein Anwalt. Eine Software sollte bereits zum Zeitpunkt der Planung, bzw. nach Erstellung eines Konzepts über rechtliche Abklärung verfügen, damit der jeweilige Entwickler analog dazu die Umsetzung erledigen kann.

Simpel & schnell: Das ist Vertragssache!

Normalerweise greift hier erstmal das Urheberrecht, da der Erschaffer des Quellcodes der Urheber ist. Damit Du mir Deine Wünsche mitteilen kannst, habe ich das obige Formular um einen entsprechenden Punkt ergänzt. Damit können wir bei Bedarf explizite Klauseln in einem Softwarevertrag festhalten und die Nutzungs- & Eigentumsrechte klären.

Wie Du Dir sicherlich vorstellen kannst, ist ein Nutzungsrecht für die Software einer Privatperson finanziell etwas völlig Anderes, als z. B. die nächste Abomodell-Software. Ebenso muss man hier eventuelle Drittanbieter beachten, da der Entwickler eben häufig auch Lizenzen, etc. einkaufen muss.

Fazit

Final wird es also auf eine schriftliche Klärungs-Frage zwischen Programmierer und Kunde hinauslaufen. Unterschiedliche Einsatzzwecke erfordern ggf. mal mehr, oder mal weniger Klärungs- und Kostenbedarf.

Achtung: Keine Rechtsberatung!

Planung & Details sind das A und O

Um Dich als Entwickler optimal unterstützen zu können, benötige ich natürlich so viele Informationen wie möglich. So bietet sich mir die Möglichkeit, alle wichtigen Aspekte zu berücksichtigen und vor allem auch erstmal auszuloten. Andernfalls könnte es später negative Folgen in verschiedenen Gesichtspunkten mit sich bringen.

Meine wärmste Empfehlung

Besonders in der heutigen Zeit ist eben genau Diese Mangelware, daher ist die Verführung groß, das Kontaktformular schnell und ohne große Mühe auszufüllen. Ich empfehle Dir jedoch dringend und zu Deiner eigenen Sicherheit, alles gewissenhaft und mit Elan auszufüllen. Lasse Dir vielleicht sogar mehrere Tage Zeit, bis Du das Formular final ausfüllst.

Dies wird Dich ggf. auch noch auf weitere Gesichtspunkte aufmerksam machen und Probleme, sowie potenzielle Mehrarbeit verringern (oder sogar vermeiden). Natürlich begleite ich Dich bei Bedarf auch bei der weiteren Planung Deiner Software.

Details

Liste die einzelnen Nutzerrollen des Programms (oder des ganzen Systems) am besten von vorneherein auf. Gibt es neben einfachen Rollen vielleicht auch komplexere, eventuell geschachtelte Berechtigungen? Muss es die Möglichkeit seitens der Software geben, diese Berechtigungen eventuell zu gruppieren, also dynamisch Rollen erstellen zu können?

Was sollen Deine Nutzer wann genau sehen, wenn Sie Dein Programm öffnen? Wie navigiert der Nutzer zu diesen einzelnen Oberflächen und soll es auch Dialoge geben? Bedenke hier viele Standards aus gängigen, modernen Softwares, wie z. B. der typischen Seitennavigation.

Plumpt gesagt: Mehr ist (viel) besser!

Letztendlich wird Dein Projekt irgendwo begonnen haben und das voraussichtlich in Deinem kreativen Kopf. Dementsprechend steht und fällt alles in erster Linie mit Dir und Deiner Passion dafür. Gerne unterstütze ich Dich auf Deiner technischen Reise, der Rest muss allerdings von Dir kommen. Möchtest Du die Software und dessen Bestandteile selbst testen, oder soll ich dies für Dich erledigen? Verwenden wir hier automatisierte Tests (Welche natürlich erstellt und konfiguriert werden müssen)?

Hast Du mir die notwendigen Details und Gesichtspunkte Deiner Software klar und verständlich weitergegeben? Diese und weitere Fragen tragen selbstverständlich zu vielen auch Dir wichtigen Aspekten bei: Erfolg, Kosten, etc. Für mich ist eine regelmäßige, offene und direkte Kommunikation zwischen Entwickler (-Team) und Kunde einer der Schlüssel zum Erfolg.

Versuche Dir nach Möglichkeit viel Zeit für die Erreichbarkeit zu nehmen. Falls Du wie so viele Menschen aufgrund Deiner anderen Tätigkeiten ausgelastet bist, nehme Dir zumindest einmal am Tag einen gewissen Zeitraum für die Beantwortung von offenen Dingen. Als Entwickler werde ich Dir regelmäßig Status-Updates, Fragen und sonstige Themen übermitteln. Dies geschieht für gewöhnlich über planungs-unterstützende Software.

So einfach wie es klingt: Frage am besten einmal 5 Freunde, wie Diese einen Kakao zubereiten würden. Auch wenn natürlich jeder die wirklich einfachen Grundschritte wiederholen werden, wird jeder dennoch andere Formulierungen wählen. Ebenso nimmt der erste Freund vielleicht zuerst den Herd in Betrieb und die beste Freundin z. B. zuerst die Milchtüte aus dem Kühlschrank. Stell' Dir dies nun in zigfach komplexer vor und mit wesentlich mehr Möglichkeiten, dann erahnst Du einen kleinen Geschmack von Herangehensweisen der Softwareentwicklung.

Nun kannst Du Dir sicher (einfacher) vorstellen, welche massiven Unterschiede in der Programmierung zu dementsprechend massiven Qualitätsunterschieden führen können. Besonders Software aus der Kategorie "mal eben", oder "schnell, schnell" sind die Fallbeispiele schlechthin. Festpreis-Angebote verzichten häufig (besonders im unter 1000 € Segment) auf die notwendige Aufmerksamkeit bezüglich der Sicherheit.

Aus Vergangenem lernen

Ich habe ein konkretes Beispiel, wo ein typisches "schnell, schnell"-Vorgehen zu drastischen Folgen geführt hat: Es war einmal ein Großkunde, Welcher ein sehr großes, zusammenhängendes System für mehrere tausend Mitarbeiter programmiert haben wollte. Trotz meiner Beratung wurden viele Vorschläge und wichtige Hinweise abgelehnt, bzw. ignoriert. Nach durchgehender Arbeit und einem Zeitraum von mehreren Monaten kam dann das böse Erwachen.

Der Kunde wollte nun plötzlich ein sehr komplexes Berechtigungssystem mit allem was man sich vorstellen kann haben. Dies war zu diesem Zeitpunkt nicht "mal eben" umsetzbar. Ich betone hier noch einmal das Beispiel mit dem Fundament eines Hauses: Software kann natürlich immer erweitert werden und verändert werden, klar, aber die Kosten, die Zeit und viele andere Dinge spielen dabei unweigerlich eine immense Rolle.

Durch moderne Verwaltungssysteme

Einerseits möchte der gewissenhafte Programmierer natürlich Status-Updates weitergeben, andererseits möchtest Du als Kunde natürlich über Statusänderungen informiert werden. Inwiefern hier verwaltet wird, kommt natürlich auch wie immer auf die Projektgröße an. Mittlere, bzw. größere Projekte werden häufig mit Kanban-Boards und ähnlichen Tools unterstützt.

Mit derartiger Software kommt zumeist auch eine Art Fehler-Reporting hinzu, also der Möglichkeit, mal nicht "rund" laufende Dinge zu melden und zu verfolgen.

Durch Staging-Systeme, etc.

Statt alles nur in einer Art Dokumentenstapel zu verfolgen, gibt es stattdessen (oder ergänzend) auch die Möglichkeit zu Testsystemen. Dort werden dann speziell zum Testen angelegte Datenbanken (und mehr) verwendet, um den Nutzern das System so nah wie möglich an den echten Alltag zu bringen. Dies ermöglicht eine realitätsnahe Testung der vollständigen Funktionalität.

Lokal auf dem Entwickler-PC

Was damals noch "normal" war, daran ist heute nicht mehr zu denken: Es wurden Textdateien mit passenden Bezeichnungen in verschachtelten Ordnern angelegt, um eine Art "Code-Sicherung" zu suggerieren. Das dies natürlich nicht gerade optimal war, liegt auf der Hand, aber zum Glück gibt es heutzutage wesentlich bessere Alternativen.

In Quellcodeverwaltungs-Systemen

Diese modernen Alternativen sind im Gegensatz zur dateibasierten, lokalen Variante auf Aufgaben-Management und die Zusammenarbeit mehrerer Entwickler getrimmt. Das kommt natürlich nicht von ungefähr, da die Arbeit an komplexen System heutzutage häufig in mehreren Teams erledigt wird.

Fazit

Halten wir also als Fazit fest, dass der programmierte Quellcode sich im Optimalfall in einem modernen Quellcodeverwaltungs-System befinden sollte. Das System bietet die Möglichkeit, mit verschiedenen Entwicklern und von unterschiedlichen PCs aus zusammenzuarbeiten.


Deine Software

in guten Händen. Greife auf viele Jahre an Erfahrungen zurück und erarbeite Dein Wunsch-Projekt Schritt für Schritt – gemeinsam.

reaktiv

Ein effizienter, kommunikativer Austausch mit Kunden hat höchste Priorität.

erfahren

Mehr als 12 Jahre Erfahrung im Bereich .NET Programmierung sprechen für sich.

schnell

Bei der Umsetzungs-Geschwindigkeit habe ich immer ein Ass im Ärmel.


Kundenmeinungen

Hier kannst Du nachlesen, was meine Kunden über mich und meine Arbeit sagen – mehr findest Du in meinem Unternehmensprofil auf Google.

Schnelle Umsetzung meiner Software, schnelle Reaktionszeiten und das Zwischenmenschliche stimmt auch.

Rezension von Reiner Medro
Reiner Medro

Ich freue mich auf die weitere Zusammenarbeit damit unsere Softwareherausforderungen modern, schnell und schlank entwickelt werden können.

Rezension von Dieter Bork
Dieter Bork

Top Service und Schnelle Live-Entwicklung der Software für meine Mitarbeiter – immer wieder gerne!

Rezension von Thomas Folkens
Thomas Folkens