EN DE
TRUE Manifesto for
Software Engineering
TRUE Manifesto für
Software Engineering
T
targeted zielgerichtet
(targeted)
adequate angemessen
suitable passend
focused fokussiert
Statement: Aussage:
We focus on adequate and suitable solutions and approaches. Wir fokussieren uns auf angemessene und passende Lösungen und Vorgehen.
Rationale: Begründung:
Both solutions and approaches have to be in a reasonable proportion to the problem. Sowohl Lösungen als auch Vorgehen müssen in einem vernünftigen Verhältnis zum Problem stehen.
Implications: Folgerungen:
We avoid both over-engineered and cobbled-together solutions. Wir vermeiden sowohl übertriebene als auch zusammengeschusterte Lösungen.
We avoid “one-size-fits-all” approaches. Wir vermeiden Einheitsgrößen-Ansätze.
We suitably adapt solutions, tools and methods. Wir passen Lösungen, Werkzeuge und Methoden geeignet an.
R
reasoned durchdacht
(reasoned)
considered wohlüberlegt
assessed bewertet
deliberate willentlich
Statement: Aussage:
We think carefully and holistically in advance about our solutions and approaches. Wir denken im Vorfeld sorgfältig und ganzheitlich über unsere Lösungen und Vorgehen nach.
Rationale: Begründung:
We always think large, even if we have to act small, because thinking in advance is more efficient and effective than correcting afterwards. Wir denken immer groß, auch wenn wir klein agieren müssen, da Vorausdenken effizienter und effektiver ist als nachträgliches Korrigieren.
Implications: Folgerungen:
We always develop the “big picture” first and add ancillary details as late as possible. Wir entwickeln immer zuerst das Gesamtbild und fügen so spät wie möglich zusätzliche Details hinzu.
We are opinionated and steadfast regarding our decisions and solutions. Wir sind meinungsstark und standhaft bezüglich unserer Entscheidungen und Lösungen.
We know that conceptual modeling is key to understanding both problems and solutions. Wir wissen, daß konzeptionelle Modellierung der Schlüssel zum Verständnis von sowohl Problemen als auch Lösungen ist.
U
up-to-date zeitgemäß
(up-to-date)
educated ausgebildet
experienced erfahren
insistent beharrlich
Statement: Aussage:
We develop high-quality solutions on the basis of up-to-date methods and technologies. Wir entwickeln hoch-qualitative Lösungen auf der Basis zeitgemäßer Methoden und Technologien.
Rationale: Begründung:
We have to cope with the fact that the IT world is recurrently revolutionizing itself. Wir müssen mit der Tatsache zurechtkommen, daß die IT-Welt sich selbst wiederkehrend umwälzt.
Implications: Folgerungen:
We continuously educate ourselves. Wir bilden uns kontinuierlich weiter.
We continuously and critically challenge and assess emerging approaches and products. Wir hinterfragen und bewerten kontinuierlich und kritisch aufkommende Ansätze und Produkte.
We are not satisfied with mediocre solutions. Wir geben uns nicht mit mittelmäßigen Lösungen zufrieden.
E
evolutionary evolutionär
(evolutionary)
sustainable nachhaltig
harmonic harmonisch
contextual kontextuell
Statement: Aussage:
We develop sustainable solutions that optimally fit into their context. Wir entwickeln nachhaltige Lösungen, die sich optimal in ihren Kontext einfügen.
Rationale: Begründung:
Nature teaches us that only evolutionary approaches and solutions have a good chance to survive in the long run. Die Natur lehrt uns, daß nur evolutionäre Ansätze und Lösungen eine gute Chance haben, langfristig zu überleben.
Implications: Folgerungen:
We actively learn from experiences of the past in order to improve the future. Wir lernen aktiv aus den Erfahrungen der Vergangenheit, um die Zukunft zu verbessern.
We avoid “quick hacks”, as they are not long-term solutions, but just short-term means to get rid of problems. Wir vermeiden „schnelle Hacks“, da sie keine langfristigen Lösungen sind, sondern nur ein kurzfristiges Mittel, um Probleme loszuwerden.
We assure that our solutions can be reasonably maintained in the long-term. Wir stellen sicher, daß unsere Lösungen langfristig vernünftig gewartet werden können.
Grundsätze des
Software Engineering
ANALYSIS ANALYSIS
Software
Requirements
Software
Requirements
We understand which outcomes of our solutions are most valuable to users. Wir verstehen, welche Ergebnisse unserer Lösungen für die Benutzer am wertvollsten sind.
Domain
Modeling
Domain
Modeling
We understand and model the domains of our solutions through involved users, functionalities and data. Wir verstehen und modellieren die Fachlichkeit unserer Lösungen über die involvierten Benutzer, Funktionen und Daten.
EXPERIENCE EXPERIENCE
User
Experience
User
Experience
We develop our solutions from the perspective of the target audience. Wir entwickeln unsere Lösungen aus der Perspektive der Zielgruppe.
User
Interface
User
Interface
We design a useful and beautiful the user interface for our solutions. Wir entwerfen nützliche und schöne Benutzeroberflächen für unsere Lösungen.
DESIGN DESIGN
Software
Architecture
Software
Architecture
We construct orthogonal, well-balanced and well-considered solutions. Wir konstruieren orthogonale, ausbalancierte und wohlüberlegte Lösungen.
Systems
Architecture
Systems
Architecture
We ensure that our solutions fit optimally into their environment. Wir stellen sicher, daß unsere Lösungen optimal in ihre Umgebung passen.
DEVELOPMENT DEVELOPMENT
Software
Implementation
Software
Implementation
We develop solutions outside-in, from coarse to fine aspects. Wir entwickeln Lösungen von außen nach innen, von groben zu feinen Aspekten.
Software
Refactoring
Software
Refactoring
We regularly refactor our solutions to ensure long-term quality. Wir überarbeiten regelmäßig unsere Lösungen, um die langfristige Qualität sicherzustellen.
CONFIGURATION CONFIGURATION
Software
Versioning
Software
Versioning
We place every artifact of our solutions under strict version control. Wir stellen jedes Artefakt unserer Lösungen unter stringente Versionskontrolle.
Software
Assembly
Software
Assembly
We develop and build our solutions through a stringent process of clearly distinguished forward/backward steps. Wir entwickeln und bauen unsere Lösungen mit einem stringentem Prozess aus klar unterschiedenen Vorwärts/Rückwärts-Schritten.
DELIVERY DELIVERY
Software
Deployment
Software
Deployment
We ship and deploy our solutions and its updates through an automated and repeatable mechanism. Wir liefern und installieren unsere Lösungen und ihre Updates über einen automatisierten und wiederholbaren Mechanismus.
Software
Operations
Software
Operations
We ensure that our solutions can be operated in a stable and secure manner. Wir sorgen dafür, daß unsere Lösungen stabil und sicher betrieben werden können.
ANALYTICS ANALYTICS
Software
Reviewing
Software
Reviewing
We regularly peer-review the source code of our solutions. Wir überprüfen gegenseitig regelmäßig den Quellcode unserer Lösungen.
Software
Testing
Software
Testing
We adequately test the functional and non-functional aspects of our solutions. Wir testen die funktionalen und nicht-funktionalen Aspekte unserer Lösungen in angemessener Weise.
COMPREHENSION COMPREHENSION
Usage
Documentation
Usage
Documentation
We adequately document the usage and operation of our solutions. Wir dokumentieren die Benutzung und den Betrieb unserer Lösungen in angemessener Weise.
User
Training
User
Training
We adequately train the users and operators of our solutions. Wir schulen die Benutzer und den Betreiber unserer Lösungen in angemessener Weise.
MANAGEMENT MANAGEMENT
Project
Management
Project
Management
We rigorously balance time, cost and scope of our initiatives. Wir balancieren rigoros Termine, Kosten und Leistungen unserer Vorhaben.
Project
Auditing
Project
Auditing
We adequately and regularly audit and adjust our processes. Wir prüfen und passen unsere Prozesse angemessen und regelmäßig an.
ADJUSTMENT ADJUSTMENT
Project
Coaching
Project
Coaching
We coach the project members to ensure the state-of-the-art use of methodology and technology. Wir betreuen die Projektbeteiligten, um den Einsatz von Methodik und Technology auf dem Stand der Technik sicherzustellen.
User
Changes
User
Changes
We make sure that all stakeholders of our solutions are suitably involved. Wir stellen sicher, daß alle Stakeholder unserer Lösungen geeignet einbezogen werden.
About the
TRUE Manifesto
Über das
TRUE Manifesto

The general idea behind the TRUE Manifesto draws back to discussions in the years 2016 to 2019 by Dr. Ernst Denert and Dr. Ralf S. Engelschall on the foundations of Software Engineering in the context of the Software Architecture project Vitruv.

The idea to state the foundational attitude for good Software Engineering as a central manifesto, similar to the approach — but intentionally in partial contrast with regards content — of the popular Agile Manifesto, was initially born under the name “REAL” in April 2019 by Dr. Ralf S. Engelschall and Matthias Brusdeylins at msg Research. The final choice of the word “TRUE” was suggested by Christian Reiber.

The writing of the TRUE Manifesto was then finally triggered by the unorthodox (german) presentation “EMISA agil” of Dr. Ernst Denert and Dr. Ralf S. Engelschall in May 2019 at the EMISA 2019 conference of the Gesellschaft für Informatik (GI) Special Interest Group (SIG) Design Methods for Information System (GI-SIG-EMISA). In this presentation, among other things, the intended attitude of Software Engineers and Software Architects were stated in contrast to often seen practices in the context of “agile” methods.

The particular statements of the initial version of the TRUE Manifesto were then developed in May 2019 by Dr. Ralf S. Engelschall with the feedback of Matthias Brusdeylins, Christian Reiber and Rudolf Koster. The intention of the resulting TRUE Manifesto is to state the required personal attitude to perform good Software Engineering from the perspective of the industry.

During the years 2019 and 2020 the particular wording of the TRUE Manifesto was finalized. The TRUE Manifesto was then finally released in version 1.0.2 to the public in February 2021 during the keynote "Beauty and Inadequacy of Software-Architecture" of Dr. Ralf S. Engelschall at the conference Software Engineering 2021 (SE 2021) of the Gesellschaft für Informatik (GI). Subsequently, only the particular wording of the TRUE Manifesto was improved in some places.

Die Grundidee des TRUE Manifesto geht zurück auf Diskussionen in den Jahren 2016 bis 2019 zwischen Dr. Ernst Denert und Dr. Ralf S. Engelschall über die Grundlagen von Software Engineering im Rahmen des Software-Architektur-Projekts Vitruv.

Die Idee, die Grundhaltung für gutes Software-Engineering über ein zentrales Manifest auszudrücken, ähnlich dem Ansatz — aber bewusst im teilweise inhaltlichen Gegensatz — des populären Agile Manifesto, wurde ursprünglich unter dem Namen „REAL“ im April 2019 von Dr. Ralf S. Engelschall und Matthias Brusdeyline bei msg Research geboren. Die endgültige Wahl des Wortes „TRUE“ wurde von Christian Reiber vorgeschlagen.

Die Ausgestaltung des TRUE Manifesto wurde schlußendlich ausgelöst durch die unorthodoxe Präsentation „EMISA agil” von Dr. Ernst Denert und Dr. Ralf S. Engelschall im Mai 2019 auf der EMISA 2019 Konferenz der Gesellschaft für Informatik (GI) Special Interest Group (SIG) Entwicklungsmethoden für Informationssysteme und deren Anwendung (GI-SIG-EMISA). In dieser Präsentation wurde unter anderem die beabsichtigte Einstellung von Software-Ingenieuren und Software-Architekten im Gegensatz zu oft zu sehenden Praktiken im Zuge „agiler“ Methoden dargelegt.

Die einzelnen Aussagen der initialen Version des TRUE Manifesto wurden dann im Mai 2019 von Dr. Ralf S. Engelschall mit dem Feedback von Matthias Brusdeylins, Christian Reiber und Rudolf Koster entwickelt. Die Absicht des daraus resultierenden TRUE Manifesto ist es, die aus Industrie-Perspektive erforderliche persönliche Einstellung für gutes Software-Engineering auszudrücken.

Während der Jahre 2019 und 2020 wurde die konkrete Formulierung des TRUE Manifesto abgeschlossen. Das TRUE Manifesto wurde schlußendlich in der Version 1.0.2 im Februar 2021 der Öffentlichkeit während der Keynote "Schönheit und Unzulänglichkeit der Software-Architektur" von Dr. Ralf S. Engelschall auf der Konferenz Software Engineering 2021 (SE 2021) der Gesellschaft für Informatik (GI) vorgestellt. Anschließend wurde nur noch der konkrete Wortlaut des TRUE Manifesto an einigen Stellen verbessert.