Class Responsibility Collaboration Card
Stell dir vor, du bist der Regisseur eines chaotischen Theaterstücks. Deine Schauspieler sind … Code-Klassen! Und sie sind alle ein bisschen vergesslich. Wie sorgst du dafür, dass jeder seine Rolle kennt, weiß, mit wem er reden muss und nicht plötzlich anfängt, Tango zu tanzen, während er eigentlich ein Liebesgedicht deklamieren sollte?
Hier kommen die CRC-Karten ins Spiel. Klingt technisch, ist es aber nicht wirklich. Denk eher an kleine Visitenkarten, auf die du die wichtigsten Infos zu jedem Schauspieler (äh, jeder Klasse) schreibst. Aber anstatt Name, Beruf und Hobbys notierst du die Verantwortlichkeiten, die Kollaborationen und den Namen der Klasse selbst. Voilà!
Die Magie beginnt, wenn du diese Karten in die Hand nimmst und anfängst, mit ihnen zu spielen. Stell dir vor, du bist ein Kind mit Bauklötzen, nur dass diese Bauklötze die einzelnen Teile deines Programms darstellen. Du legst die Karte für die Klasse "Benutzer" hin. Was muss "Benutzer" können? Naja, sich anmelden, seine Daten ändern, vielleicht ein paar Kommentare schreiben. Das sind die Verantwortlichkeiten. Und mit wem muss "Benutzer" dafür zusammenarbeiten? Vielleicht mit der "Datenbank", dem "Authentifizierungsdienst" und dem "Kommentarbereich". Das sind die Kollaborationen.
Jetzt nimmst du die Karte für "Datenbank". Was muss die "Datenbank" können? Daten speichern, Daten abrufen, Daten aktualisieren. Und mit wem kollaboriert sie? Klar, mit "Benutzer", aber vielleicht auch mit "Produktkatalog" und "Bestellungen".
Der Tanz der Karten
Der Clou ist, diese Karten nicht nur zu beschreiben, sondern sie tatsächlich in die Hand zu nehmen und damit herumzulaufen. Stell dir ein Team vor, das um einen Tisch sitzt, jeder mit ein paar Karten in der Hand. Sie spielen "Wenn Benutzer sich anmelden will, welche Karte muss ich dann bewegen?" Plötzlich wird Softwareentwicklung zu einem interaktiven, fast schon körperlichen Erlebnis. Man fängt an, die Beziehungen zwischen den Klassen zu spüren, die Engpässe zu erkennen und die komischen Stellen, wo eine Klasse plötzlich viel mehr Verantwortung trägt als alle anderen.
Manchmal enden diese Sitzungen in wilden Diskussionen, Gelächter und dem überraschenden Moment, wenn jemand sagt: "Moment mal, warum muss der 'Produktkatalog' eigentlich wissen, wann ein 'Benutzer' Geburtstag hat?" Dann hast du Gold gefunden. Du hast einen unnötigen Abhängigkeit entdeckt, die zu Komplexität und Chaos führen könnte.
Die unerwarteten Vorteile
Das Geniale an den CRC-Karten ist, dass sie so einfach sind. Du brauchst keine teure Software, keine komplizierten Diagramme. Nur ein paar Karteikarten und einen Stift. Das macht sie unglaublich zugänglich, besonders für Teams, die gerade erst anfangen oder für Projekte, die schnell und unkompliziert gestartet werden sollen.
Und weil man die Karten in die Hand nehmen und bewegen kann, fördern sie die Zusammenarbeit und das gemeinsame Verständnis. Jeder im Team ist aktiv beteiligt, jeder kann seine Ideen einbringen und jeder fühlt sich verantwortlich für das Ergebnis. Es ist ein bisschen wie ein gemeinsames Brainstorming, nur dass die Ergebnisse viel konkreter und umsetzbarer sind.
Ein weiterer Vorteil ist, dass die CRC-Karten dazu zwingen, über die Verantwortlichkeiten jeder Klasse nachzudenken. Was muss diese Klasse *wirklich* tun? Und was sollte sie lieber jemand anderem überlassen? Oft stellt man fest, dass Klassen viel zu viel Verantwortung tragen und dadurch unnötig komplex werden. Durch die CRC-Karten kann man diese Monster-Klassen aufspalten und die Verantwortlichkeiten besser verteilen.
"CRC-Karten sind wie kleine Superhelden, die das Chaos in Ordnung verwandeln,"
sagte einmal ein erfahrener Softwareentwickler. Und er hatte Recht. Sie sind ein einfaches, aber unglaublich mächtiges Werkzeug, um Softwareprojekte zu planen, zu organisieren und zu verstehen. Sie sind ein bisschen wie das Schweizer Taschenmesser der Softwareentwicklung – klein, handlich und unglaublich vielseitig.
Also, das nächste Mal, wenn du dich in einem Softwareprojekt verirrt fühlst, schnapp dir ein paar Karteikarten und einen Stift. Und lass die CRC-Karten ihren Zauber entfalten. Vielleicht wirst du überrascht sein, wie viel Klarheit und Struktur sie in dein Projekt bringen können. Und vielleicht wirst du sogar ein bisschen Spaß dabei haben.
Denn wer sagt, dass Softwareentwicklung nicht auch ein bisschen spielerisch sein kann?
