{"id":1050,"date":"2024-08-19T08:00:47","date_gmt":"2024-08-19T06:00:47","guid":{"rendered":"https:\/\/development-by.schwarzer.de\/blog\/?p=1050"},"modified":"2024-08-20T09:47:46","modified_gmt":"2024-08-20T07:47:46","slug":"todo-stracciatella-im-quellcode","status":"publish","type":"post","link":"https:\/\/development-by.schwarzer.de\/blog\/todo-stracciatella-im-quellcode\/","title":{"rendered":"TODO: Stracciatella im Quellcode"},"content":{"rendered":"<p><!-- <ezTOC> -->In der Softwareentwicklung sind TODO-Kommentare eine beliebte Methode, um auf noch ausstehende Arbeiten im Code hinzuweisen. Doch was passiert, wenn sich diese TODOs wie Schokosplitter in einem Stracciatella-Eis verteilen und den gesamten Code durchziehen? In diesem Blogbeitrag werfen wir einen genaueren Blick auf diese g\u00e4ngige Entwickler-Gewohnheit, beleuchten die damit verbundenen Probleme und zeigen auf, wie man es besser machen kann \u2013 und warum das wichtig ist.<br \/>\n<!--more--><\/p>\n<h2>Die Gewohnheit: TODOs als Platzhalter f\u00fcr offene Aufgaben<\/h2>\n<p>Jeder Entwickler kennt es: Im Laufe der Entwicklung entsteht Code, der aus verschiedenen Gr\u00fcnden nicht vollst\u00e4ndig ist. M\u00f6glicherweise handelt es sich um \u00dcbergangsl\u00f6sungen, die aufgrund externer Abh\u00e4ngigkeiten notwendig sind, oder um Workarounds, die anstelle einer noch fehlenden Library-Funktion implementiert wurden. Der erste Schritt, diese Stellen im Code durch einen TODO-Kommentar zu kennzeichnen, ist naheliegend und sinnvoll. Doch h\u00e4ufig bleibt es nicht bei einem einzigen TODO. Im hektischen Entwickleralltag k\u00f6nnen sich solche Kommentare vermehren und geraten dabei oft in Vergessenheit. Manchmal sind sie sogar \u00dcberbleibsel aus der Entwicklungsphase eines Tickets, die unbemerkt das Code Review \u00fcberstanden haben.<\/p>\n<p>Das Problem hierbei: Mit der Zeit entstehen verstreute TODO-Kommentare, die den Code wie ein Stracciatella-Eis durchziehen \u2013 kleine, unscheinbare \u201eSchokosplitter\u201c, die auf offene Baustellen hinweisen. Doch was als schnelle Notiz f\u00fcr die Zukunft gedacht ist, kann sich langfristig als problematisch erweisen.<\/p>\n<h2>Warum das problematisch ist: Versteckte Baustellen und fehlende \u00dcbersicht<\/h2>\n<p>TODO-Kommentare haben eine zentrale Schw\u00e4che: Sie verbleiben im Code und werden leicht \u00fcbersehen. Auch wenn sie darauf hinweisen, dass es noch etwas zu tun gibt, geschieht dies oft nur auf Ebene des individuellen Entwicklers. In modernen Entwicklungsprojekten, egal ob agil oder klassisch gemanagt, sind es jedoch nicht die einzelnen Entwickler, die allein entscheiden, was als N\u00e4chstes erledigt werden muss. Diese Entscheidungen liegen bei Projektmanagern, Product Ownern oder \u00e4hnlichen Rollen, die den \u00dcberblick \u00fcber das gesamte Projekt behalten m\u00fcssen.<\/p>\n<p>Das Problem ist, dass TODO-Kommentare nicht sichtbar genug f\u00fcr diese Entscheider sind. So bleibt der n\u00f6tige Raum f\u00fcr Wartungsarbeiten, das Entfernen von Workarounds oder das Aufl\u00f6sen von Abh\u00e4ngigkeiten oft unber\u00fccksichtigt. Zudem manifestiert sich ein Problem selten nur an einer einzigen Stelle im Code. Einzelne TODOs schaffen es nicht, gr\u00f6\u00dfere Zusammenh\u00e4nge darzustellen, was zu einer unstrukturierten und unvollst\u00e4ndigen Bearbeitung von Aufgaben f\u00fchren kann.<\/p>\n<h2>Wie man es besser macht: TODOs strukturieren und sichtbar machen<\/h2>\n<p>TODO-Kommentare sind n\u00fctzlich \u2013 aber nur, wenn sie richtig eingesetzt werden. Sobald sich abzeichnet, dass ein TODO-Kommentar \u00fcber die Implementierung des aktuellen Tickets hinaus Bestand haben wird, sollte ein neues Ticket im Projektmanagementsystem angelegt werden. Dieser Schritt sorgt daf\u00fcr, dass die offene Aufgabe sichtbar und nachvollziehbar wird. Durch das Anlegen eines Tickets wird ein Anker gesetzt, \u00fcber den alle TODOs, die sich auf dasselbe Problem beziehen, zugeordnet werden k\u00f6nnen.<\/p>\n<p>Dar\u00fcber hinaus sollten TODO-Kommentare immer nach einer einheitlichen Syntax gestaltet werden. So lassen sie sich mithilfe einer IDE schnell und zuverl\u00e4ssig finden. Ein hilfreicher Tipp ist, bereits w\u00e4hrend der Entwicklung die Ticket-ID direkt im Kommentar zu hinterlegen. Dies erleichtert nicht nur die sp\u00e4tere Kontrolle, sondern beschleunigt auch das Code Review, da die Kommentare sofort im Kontext des entsprechenden Tickets eingeordnet werden k\u00f6nnen.<\/p>\n<h2>Warum das besser ist: Transparenz, \u00dcbersicht und Nachverfolgbarkeit<\/h2>\n<p>Die strukturierte Handhabung von TODO-Kommentaren verbessert die Transparenz im Entwicklungsprozess erheblich. Durch das Anlegen von Tickets werden offene Aufgaben sichtbar und k\u00f6nnen in die Projektplanung integriert werden. Das hilft nicht nur den Entscheidern, sondern auch dem gesamten Team, die \u00dcbersicht zu behalten. Einzelne TODOs bleiben nicht l\u00e4nger isolierte Hinweise im Code, sondern werden Teil eines gr\u00f6\u00dferen Zusammenhangs, der gezielt und systematisch bearbeitet werden kann.<\/p>\n<p>Einheitliche Syntax und die Zuordnung von Ticket-IDs schaffen zudem Klarheit. Entwickler k\u00f6nnen schneller arbeiten, da sie nicht erst nach den passenden TODOs suchen m\u00fcssen. Das Code Review wird effizienter, und die Wartung des Codes vereinfacht sich. Insgesamt f\u00fchrt dies zu einer h\u00f6heren Codequalit\u00e4t, besserer Planbarkeit und letztlich zu einem produktiveren Team.<\/p>\n<p>TODO-Kommentare sollten also nicht wie zuf\u00e4llige Schokosplitter im Code verstreut bleiben, sondern strukturiert und bewusst eingesetzt werden. So kann aus einem anf\u00e4nglich kleinen Hinweis eine gut dokumentierte und nachverfolgbare Aufgabe werden, die im Team effektiv bearbeitet wird.<\/p>\n<p>Wie werden ToDo&#8217;s bei Ihrer Entwicklung gehandhabt?<\/p>\n<p>Ihre Fragen dazu beantwortet unser Head of DevOps gerne:<br \/>\nKai Rumrich, <a href=\"mailto:kai.rumrich@schwarzer.de\">kai.rumrich@schwarzer.de<\/a>, Jetzt anrufen: +49 6131 \/ 30 292 34<!-- <\/ezTOC> --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In der Softwareentwicklung sind TODO-Kommentare eine beliebte Methode, um auf noch ausstehende Arbeiten im Code hinzuweisen. Doch was passiert, wenn [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1051,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"features_image":"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2024\/08\/todo-stracciatella-im-quellcode.jpg","rk_cat":null,"rk_date":"19.08.2024","yoast_head":"<title>TODO: Stracciatella im Quellcode - development-by.schwarzer.de<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/development-by.schwarzer.de\/blog\/todo-stracciatella-im-quellcode\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"TODO: Stracciatella im Quellcode - development-by.schwarzer.de\" \/>\n<meta property=\"og:description\" content=\"In der Softwareentwicklung sind TODO-Kommentare eine beliebte Methode, um auf noch ausstehende Arbeiten im Code hinzuweisen. Doch was passiert, wenn [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/development-by.schwarzer.de\/blog\/todo-stracciatella-im-quellcode\/\" \/>\n<meta property=\"og:site_name\" content=\"development-by.schwarzer.de\" \/>\n<meta property=\"article:published_time\" content=\"2024-08-19T06:00:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-20T07:47:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2024\/08\/todo-stracciatella-im-quellcode.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1080\" \/>\n\t<meta property=\"og:image:height\" content=\"378\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Hans-J\u00fcrgen Schwarzer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/#website\",\"url\":\"https:\/\/development-by.schwarzer.de\/blog\/\",\"name\":\"development-by.schwarzer.de\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/development-by.schwarzer.de\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de-DE\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/todo-stracciatella-im-quellcode\/#primaryimage\",\"inLanguage\":\"de-DE\",\"url\":\"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2024\/08\/todo-stracciatella-im-quellcode.jpg\",\"contentUrl\":\"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2024\/08\/todo-stracciatella-im-quellcode.jpg\",\"width\":1080,\"height\":378,\"caption\":\"TODO: Stracciatella im Quellcode (Foto: AdobeStock - la_vanda 212910401)\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/todo-stracciatella-im-quellcode\/#webpage\",\"url\":\"https:\/\/development-by.schwarzer.de\/blog\/todo-stracciatella-im-quellcode\/\",\"name\":\"TODO: Stracciatella im Quellcode - development-by.schwarzer.de\",\"isPartOf\":{\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/todo-stracciatella-im-quellcode\/#primaryimage\"},\"datePublished\":\"2024-08-19T06:00:47+00:00\",\"dateModified\":\"2024-08-20T07:47:46+00:00\",\"author\":{\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/#\/schema\/person\/31bc0011f4b960a9aa559e3f04da4a06\"},\"breadcrumb\":{\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/todo-stracciatella-im-quellcode\/#breadcrumb\"},\"inLanguage\":\"de-DE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/development-by.schwarzer.de\/blog\/todo-stracciatella-im-quellcode\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/todo-stracciatella-im-quellcode\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/development-by.schwarzer.de\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"TODO: Stracciatella im Quellcode\"}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/#\/schema\/person\/31bc0011f4b960a9aa559e3f04da4a06\",\"name\":\"Hans-J\u00fcrgen Schwarzer\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/#personlogo\",\"inLanguage\":\"de-DE\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2e9a54aaac87c32742c669aa0d5556c1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2e9a54aaac87c32742c669aa0d5556c1?s=96&d=mm&r=g\",\"caption\":\"Hans-J\u00fcrgen Schwarzer\"},\"description\":\"Hans-J\u00fcrgen Schwarzer leitet die Digital-Agentur schwarzer.de software + internet gmbh. Als Unternehmer und Verleger in Personalunion wie auch als leidenschaftlicher Blogger geh\u00f6rt er zu den Hauptautoren verschiedener Online-Magazine. Innerhalb seiner breiten Palette an Themen liegen dem Mainzer Lokalpatrioten dabei vermeintlich \u201eschr\u00e4ge\u201c Ideen und technische Novit\u00e4ten besonders am Herzen - Nerdstuff, wie es heute hei\u00dft.\",\"sameAs\":[\"http:\/\/www.schwarzer.de\"],\"url\":\"#\"}]}<\/script>","yoast_head_json":{"title":"TODO: Stracciatella im Quellcode - development-by.schwarzer.de","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/development-by.schwarzer.de\/blog\/todo-stracciatella-im-quellcode\/","og_locale":"de_DE","og_type":"article","og_title":"TODO: Stracciatella im Quellcode - development-by.schwarzer.de","og_description":"In der Softwareentwicklung sind TODO-Kommentare eine beliebte Methode, um auf noch ausstehende Arbeiten im Code hinzuweisen. Doch was passiert, wenn [&hellip;]","og_url":"https:\/\/development-by.schwarzer.de\/blog\/todo-stracciatella-im-quellcode\/","og_site_name":"development-by.schwarzer.de","article_published_time":"2024-08-19T06:00:47+00:00","article_modified_time":"2024-08-20T07:47:46+00:00","og_image":[{"width":1080,"height":378,"url":"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2024\/08\/todo-stracciatella-im-quellcode.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Hans-J\u00fcrgen Schwarzer","Gesch\u00e4tzte Lesezeit":"4 Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/development-by.schwarzer.de\/blog\/#website","url":"https:\/\/development-by.schwarzer.de\/blog\/","name":"development-by.schwarzer.de","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/development-by.schwarzer.de\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de-DE"},{"@type":"ImageObject","@id":"https:\/\/development-by.schwarzer.de\/blog\/todo-stracciatella-im-quellcode\/#primaryimage","inLanguage":"de-DE","url":"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2024\/08\/todo-stracciatella-im-quellcode.jpg","contentUrl":"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2024\/08\/todo-stracciatella-im-quellcode.jpg","width":1080,"height":378,"caption":"TODO: Stracciatella im Quellcode (Foto: AdobeStock - la_vanda 212910401)"},{"@type":"WebPage","@id":"https:\/\/development-by.schwarzer.de\/blog\/todo-stracciatella-im-quellcode\/#webpage","url":"https:\/\/development-by.schwarzer.de\/blog\/todo-stracciatella-im-quellcode\/","name":"TODO: Stracciatella im Quellcode - development-by.schwarzer.de","isPartOf":{"@id":"https:\/\/development-by.schwarzer.de\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/development-by.schwarzer.de\/blog\/todo-stracciatella-im-quellcode\/#primaryimage"},"datePublished":"2024-08-19T06:00:47+00:00","dateModified":"2024-08-20T07:47:46+00:00","author":{"@id":"https:\/\/development-by.schwarzer.de\/blog\/#\/schema\/person\/31bc0011f4b960a9aa559e3f04da4a06"},"breadcrumb":{"@id":"https:\/\/development-by.schwarzer.de\/blog\/todo-stracciatella-im-quellcode\/#breadcrumb"},"inLanguage":"de-DE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/development-by.schwarzer.de\/blog\/todo-stracciatella-im-quellcode\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/development-by.schwarzer.de\/blog\/todo-stracciatella-im-quellcode\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/development-by.schwarzer.de\/blog\/"},{"@type":"ListItem","position":2,"name":"TODO: Stracciatella im Quellcode"}]},{"@type":"Person","@id":"https:\/\/development-by.schwarzer.de\/blog\/#\/schema\/person\/31bc0011f4b960a9aa559e3f04da4a06","name":"Hans-J\u00fcrgen Schwarzer","image":{"@type":"ImageObject","@id":"https:\/\/development-by.schwarzer.de\/blog\/#personlogo","inLanguage":"de-DE","url":"https:\/\/secure.gravatar.com\/avatar\/2e9a54aaac87c32742c669aa0d5556c1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2e9a54aaac87c32742c669aa0d5556c1?s=96&d=mm&r=g","caption":"Hans-J\u00fcrgen Schwarzer"},"description":"Hans-J\u00fcrgen Schwarzer leitet die Digital-Agentur schwarzer.de software + internet gmbh. Als Unternehmer und Verleger in Personalunion wie auch als leidenschaftlicher Blogger geh\u00f6rt er zu den Hauptautoren verschiedener Online-Magazine. Innerhalb seiner breiten Palette an Themen liegen dem Mainzer Lokalpatrioten dabei vermeintlich \u201eschr\u00e4ge\u201c Ideen und technische Novit\u00e4ten besonders am Herzen - Nerdstuff, wie es heute hei\u00dft.","sameAs":["http:\/\/www.schwarzer.de"],"url":"#"}]}},"_links":{"self":[{"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/posts\/1050"}],"collection":[{"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/comments?post=1050"}],"version-history":[{"count":3,"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/posts\/1050\/revisions"}],"predecessor-version":[{"id":1055,"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/posts\/1050\/revisions\/1055"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/media\/1051"}],"wp:attachment":[{"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/media?parent=1050"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/categories?post=1050"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/tags?post=1050"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}