Willkommen

Wir beschäftigen uns seit langer Zeit mit Softwareentwicklung und den dahinter stehenden Konzepten und Strategien. Auf den folgenden Seiten finden Sie Informationen zu unserem Unternehmen und Angebot. Zusätzlich veröffentlichen wir an reale Erfahrungen angelehnte Abrisse von typischen Situationen in unserem Weblog. Diese zeigen die immer wieder kehrenden Schwierigkeiten für Entwickler, Auftraggeber, Kunden und Benutzer innerhalb von Softwareprojekten und bei der Nutzung von Softwareprodukten.

Schwerpunkt unserer Arbeit

Ein wichtigen Bereich unserer Arbeit sehen wir in der Verbesserung der Verständigung zwischen Entwicklern und Auftraggebern, Nutzern und allen “Nicht-Entwicklern”, die sich mit den geschaffenen Softwareprodukten auseinandersetzen müssen oder wollen.

Außerdem wollen wir Menschen in von Software abhängigen Startups, Projekten und bestehenden Bereichen unterstützen, schnell und effektiv die entscheidenden Details der Materie kennen zu lernen, um weitere Entscheidungen zu Strukturen, Zeitabläufen und finanziellen Mitteln treffen zu können.

Und selbstverständlich entwickeln wir Softwareprodukte. Im Wesentlichen sind dies interne Lösungen oder umfangreiche Projekte. Aber auch Kundenaufträge übernehmen wir natürlich gerne, wenn es unsere Zeit erlaubt.

Bekannte Schwierigkeiten in der Softwareentwicklung

Software versucht reale Zusammenhänge und Vorgänge auf Computersystemen nachzubilden oder neue Möglichkeiten zu schaffen. Hierbei sind die Anforderungen  meist sehr komplex und während der Erschaffung dieser Nachbildungen nur schwer vollständig zu berücksichtigen. Änderungen, Anpassungen und Erweiterungen sind immer notwendig. Es wird oft versucht, alle Anforderungen in einem Abwasch zu berücksichtigen und dann auch umzusetzen – meist mit relativ großen Schwierigkeiten und am Ende entspricht das Ergebnis oft nicht den Erwartungen. Am besten beschreibt es vielleicht der Spruch:

“Theoretisch sind Theorie und Praxis das Gleiche, praktisch sind sie es nicht.”

Viele kluge Köpfe haben sich weltweit mit diesen wiederkehrenden Schwierigkeiten beschäftigt und es gibt mittlerweile viele gute Vorgehensweisen, um diese Probleme zu minimieren. Viele Schlagwörter findet man hierzu im Web:

  • Objektorientierung in Analyse, Entwurf und Programmierung (OOA, OOD, OOP)
  • Modultests, Testgetriebene Entwicklung (unit tests, test-driven development, TDD)
  • Agile Softwareentwicklung (agile software development)
  • Model View Controller Architektur (MVC)
  • Entwurfsmuster (design patterns)

Alle diese Konzepte sind sinnvoll und wichtig, aber auch ebenso schwer komplett zu erfassen und bei der Arbeit einzuhalten. Es liegt einfach nicht in der Natur des Menschen, sein Vorgehen vollständig zu planen und theoretisch zu überschauen. Statt dessen lernen und leben wir eher nach dem Prinzip “Versuch und Irrtum”. Man kann einem Kind das Laufen oder Sprechen auch nicht erklären – es muss probieren, Fehler machen, lernen und geistig und körperlich wachsen.

Als Kind hat man hierfür viel Zeit und die Geduld der Eltern. In der Softwareentwicklung gilt hingegen oft der Satz “Zeit ist Geld”. Viele Unternehmen sind auf die Entwicklung von Software für das Erreichen ihrer Ziele angewiesen. Die entstehenden Kosten entscheiden hier oft über Erfolg oder Misserfolg. Eine realistische Planung ist also wünschenswert, aber in ihrer Gesamtheit nur schwer möglich.

Mögliche Lösungen

Große Firmen oder Projekte haben hier Vorteile. Die Beschäftigung von Spezialisten zur Kontrolle der Effektivität können durch die großen Budgets abgedeckt werden. Anders ist es bei kleinen und mittelständischen Unternehmen, hier müssen sich oft Menschen mit der Planung dieser Abläufe beschäftigen, welche nur wenig mit der Materie vertraut sind.

Hier möchten wir Möglichkeiten schaffen, diesen Personen einen schnellen, umfassenden und “verdaubaren” Einstieg zu ermöglichen. Somit können die oft folgeschweren Entscheidungen besser abgewogen und selbst überschaut werden. Trotzdem steht im Falle von Fragen und Problemen jederzeit ein kompetenter Ansprechpartner zur Verfügung.

Dies ist eines unserer Hauptanliegen: Es geht uns ausdrücklich darum, die Hilfesuchenden gut und umfassend zu informieren, um Ihnen eigenständige Entscheidungen zu ermöglichen. Damit wird erreicht, dass sie sich nicht durch Fehlentscheidungen in Abhängigkeiten zu Systemen oder Entwicklerfirmen bringen, was in der Vergangenheit schon oft zu massiven Problemen geführt hat. Stattdessen kann die Planung der Zukunft realistisch erfolgen und die Wahrscheinlichkeit des Erfolges steigt erheblich. Der Partner sollte hierbei nicht für jede Antwort und Problemlösung erneut bezahlen müssen (mit Zeit, Geld oder ganz allgemein). Besser ist es,  Wissen zu teilen, Prinzipien zu vermitteln und Werkzeuge an die Hand zu geben, welche das eigenständiges Handeln ermöglichen.