{"id":4039,"date":"2025-04-10T11:19:59","date_gmt":"2025-04-10T09:19:59","guid":{"rendered":"http:\/\/p4dev.hardscrum.com\/?p=4039"},"modified":"2025-04-10T11:19:59","modified_gmt":"2025-04-10T09:19:59","slug":"software-principles","status":"publish","type":"post","link":"https:\/\/p4dev.hardscrum.com\/en\/software-principles\/","title":{"rendered":"Pragmatic Product Development uses Software Principles"},"content":{"rendered":"<p><strong>Digitalisierung<\/strong> hat viel damit zu tun, dass Arbeitsprozesse und Workflows durch Computer, Apps und Datenbanken unterst\u00fctzt werden. Dies bedeutet aber auch, dass wir viele der Methoden und Techniken aus der Software-Welt f\u00fcr Nicht-Software einsetzen k\u00f6nnen und sollten. Eine N\u00fctzliche Metapher ist, dass <strong>Dokumente wie Software behandelt werden <\/strong>sollten (auch bekannt als <strong>docs-as-Code<\/strong>), also auch Dokumente unter <strong>Versionskontrolle<\/strong> liegen, wir mit <strong>Branches und Merges<\/strong> arbeiten, Dokumentenversionen Akzeptanzkriterien haben und Dokumente getestet werden bevor sie freigegeben werden. Das Schwierige daran ist aber, dass nur wenige Dokumentenformate sich wie textbasierender Sourcecode behandeln lassen (z.B. das Vergleichen und Zusammenf\u00fchren von verschiedenen Dokumentenversion)<\/p>\n<p><strong>Kultur und Selbstverst\u00e4ndnis<\/strong><\/p>\n<ul>\n<li>Selbstverantwortung und Selbstorganisation<\/li>\n<li>Broken windows: keine neuen technischen und organisatorischen Schulden aufnehmen (geregelt \u00fcber die DoD)und mittelfristig alte Schulden abbauen.<\/li>\n<\/ul>\n<p><strong>Arbeitsweise<\/strong><\/p>\n<ul>\n<li>Start with WHY, gather Needs and Requirements<\/li>\n<li>Visualize your technical and organizational system by simple static &amp; dynamic Models: Worksflows<\/li>\n<\/ul>\n<p><strong>Planung<\/strong><\/p>\n<ul>\n<li>Vision und kleine, in sich abgeschlossene Schritte, die Feedback erm\u00f6glichen (aka &#8220;Elephant carpaccio&#8221;)<\/li>\n<li>relatively estimate your work and measure progress against estimates (aka &#8220;Evidence-based Planning&#8221;)<\/li>\n<li>Nicht mehr Leistung versprechen, als die Organisation leisten kann<\/li>\n<\/ul>\n<p><strong>Dokumentation<\/strong><\/p>\n<ul>\n<li>Nur so viel Dokumentation wie n\u00f6tig. Weniger ist mehr.<\/li>\n<li>Ausf\u00fchrbare Dokumente<\/li>\n<li>Offene Punkte (Knowledge Gaps) und Entscheidungen nachhalten.<\/li>\n<li>DRY: Don&#8217;t repeat yourself (aka &#8220;Single source of truth&#8221;)<\/li>\n<li>Put everything under Version Control that isn&#8217;t generated<\/li>\n<li>Automate and Generate<\/li>\n<\/ul>\n<p><strong>System-Architektur<\/strong><\/p>\n<ul>\n<li>Design by contract and Separation of Concerns: Modules have clear responsibility and interfaces<\/li>\n<li>Loose coupling and decoupled services<\/li>\n<li>Information hiding<\/li>\n<\/ul>\n<p><strong>Design Principles<\/strong><\/p>\n<ul>\n<li>Think from the user perspective<\/li>\n<li>Scenario-based description of functional specification<\/li>\n<li>Prototyping, Fast feedback and Refactoring<\/li>\n<li>Design for Reuse<\/li>\n<li>Design for Test<\/li>\n<\/ul>\n<p><strong>Testing<\/strong><\/p>\n<ul>\n<li>Test Concept contains the hierarchy of tests in form of a pyramid<\/li>\n<li>Use Point-of-Control and Point-of-Observation<\/li>\n<li>test relentlessly<\/li>\n<li>Iterative &amp; incremental development needs test automation<\/li>\n<li>Test automation is also Software Development and needs architecture and a structured approach<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"Digitalisierung hat viel damit zu tun, dass Arbeitsprozesse und Workflows durch Computer, Apps und Datenbanken unterst\u00fctzt werden. Dies bedeutet aber auch, dass wir viele der Methoden und Techniken aus der Software-Welt f\u00fcr Nicht-Software einsetzen k\u00f6nnen und sollten. Eine N\u00fctzliche Metapher ist, dass Dokumente wie Software behandelt werden sollten (auch bekannt als docs-as-Code), also auch Dokumente&hellip;","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[104],"tags":[],"translation":{"provider":"WPGlobus","version":"2.10.10","language":"en","enabled_languages":["de","en"],"languages":{"de":{"title":true,"content":true,"excerpt":false},"en":{"title":true,"content":false,"excerpt":false}}},"_links":{"self":[{"href":"https:\/\/p4dev.hardscrum.com\/en\/wp-json\/wp\/v2\/posts\/4039"}],"collection":[{"href":"https:\/\/p4dev.hardscrum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/p4dev.hardscrum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/p4dev.hardscrum.com\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/p4dev.hardscrum.com\/en\/wp-json\/wp\/v2\/comments?post=4039"}],"version-history":[{"count":9,"href":"https:\/\/p4dev.hardscrum.com\/en\/wp-json\/wp\/v2\/posts\/4039\/revisions"}],"predecessor-version":[{"id":5133,"href":"https:\/\/p4dev.hardscrum.com\/en\/wp-json\/wp\/v2\/posts\/4039\/revisions\/5133"}],"wp:attachment":[{"href":"https:\/\/p4dev.hardscrum.com\/en\/wp-json\/wp\/v2\/media?parent=4039"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/p4dev.hardscrum.com\/en\/wp-json\/wp\/v2\/categories?post=4039"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/p4dev.hardscrum.com\/en\/wp-json\/wp\/v2\/tags?post=4039"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}