| 

.NET C# Java Javascript Exception

One Man Think Tank

Praktisches, konzeptionelles und manchmal auch philosophisches rund um die Softwareentwicklung vor allem auf der .NET Plattform.

Fokusthemen sind Softwareentwurf/Softwarearchitektur, Agilität, Lean Software Development und ein effizienter Softwareproduktionsprozess. Und meistens geht es darum, Softwareentwicklung bewusster und systematischer zu betreiben.
Über den Autor
Ralf Westphal ist langjähriger Autor der dotnetpro, regelmäßiger Referent auf Entwicklerveranstaltungen sowie Berater und Trainer im Bereich Softwareentwurf.

Er ist seit 2005 Microsoft MVP und hat zusammen mit Stefan Lieser die Softwarequalitätsinitiative Clean Code Developer ins Leben gerufen.
Webseite des Autors Themen des Autors
architektur clean-code-developer coding-dojo einfacher-programmieren event-based-components gesetze-der-softwareentwicklung kritisch-gesehen samples software-als-system softwarephilosophie testen theory-of-constraints tools vorgehen-bei-der-entwicklung
Auf codekicker News finden Programmierer redaktionell vorausgewählte und daher hochwertige Artikel zu verschiedenen, auswählbaren Themen. Auch dieser Autor veröffentlicht seine Artikel auf codekicker News.

» News weiterer Autoren
» Auch Autor werden


News und Artikel von One Man Think Tank

5

TDD im Flow – Teil 3

Was bisher geschah: TDD im Flow – Teil 1 TDD im Flow – Teil 2 Test #4: Blockierte Entnahme Nun geht es an den Kern meines Abstrakten Datentyps: die Sequentialisierung. Ich muss die Entnahme aus den Queues nach Round Robbin einschränken. Es darf nur entnommen werden, wenn eine Queue nicht gerade blockiert wird. Die Blockierung beginnt, wenn ein Worker aus einer unblockierten Queue ...
architektur testen
30.01.2012 | 87 0
7

TDD im Flow – Teil 2

Was bisher geschah: TDD im Flow – Teil 1 Test #2: Ein Worker entnimmt aus mehreren Queues Der dritte Test in meiner Planung bleibt sinnig. Er führt zu Änderungen am Produktionscode. Den Testcode zu zeigen, lohnt nicht. Er entspricht der Skizze im Bild. Aber hier der Produktionscode: internal class NotifyingMultiQueue{ List _queues new List
architektur testen
27.01.2012 | 105 0
11

TDD im Flow – Teil 1

Steht Flow-Design eigentlich im Gegensatz zu Test-Driven Design? Nein. Zwar bin ich überzeugt, dass TDD viel weniger wichtig ist, als viele Vertreter agiler Softwareentwicklung glauben, aber deshalb hat TDD doch seinen Platz. An einem Beispiel möchte ich das demonstrieren. Vor einiger Zeit habe ich Gedanken zu einer Flow Execution Engine geäußert. Die habe ich inzwischen ...
architektur testen
26.01.2012 | 127 0
6

Schätzungen auf dem Prüfstand

Kann man verlässlich schätzen, wie lange ein Team braucht, Anforderungen in einsetzbare Software zu übersetzen? Kann man das für einen Horizont von wenigen Wochen? Kann man das für Monate oder Jahre? Diese Frage führt immer wieder zu hitzigen Diskussionen. Eine der am besten besuchten Sessions auf der letztjährigen DevCon drehte sich auch um diese Frage. Das Interesse an ...
kritisch-gesehen vorgehen-bei-der-entwicklung
11.01.2012 | 82 0
7

Functions considered harmful

Bisher habe ich die "traditionelle" konzeptionelle Objektorientierung als eine der Ursachen für die heutigen Probleme mit der Wartbarkeit von Software gesehen. Inzwischen regt sich jedoch in mir der Verdacht, dass das Wurzelproblem tiefer liegt. Womöglich ist die Objektorientierung sogar zu loben, weil sie das irgendwie verstanden hatte und versucht zu helfen. Leider ...
clean-code-developer kritisch-gesehen
09.01.2012 | 63 0
9

Bei häufigem Kontakt mit Gift refaktorisieren

Graham Brooks bricht eine Lanze dafür, Code nicht mit der Gießkanne zu refaktorisieren, sondern den Aufwand dort zu treiben, wo es gerade besonders nutzt. Das hört sich sinnig an. Noch sinniger wird es, wenn Graham als Nützlichkeitsindikatoren Giftigkeit (Toxicity) und Unbeständigkeit (Volatility) angibt. Giftig (als Steigerung von schmutzig) ist der Code dort, wo ...
clean-code-developer
04.01.2012 | 376 0
10

Get real, Kanban!

Schöne Sache das Networked Kanban wie es Jurgen Appelo in seinem Blogbeitrag beschreibt - nur was ist denn daran wirklich neu? Jeder nicht triviale Produktionsprozess ist mehr als eine "Eimerkette". Und jeder Produktionsschritt arbeitet immer aus einer Warteschlange. Die ringelt sich auf dem Schreibtisch in Form einer Inbox, die besteht aus Post-It Notes am Monitor oder die ...
kritisch-gesehen vorgehen-bei-der-entwicklung
02.11.2011 | 98 0
11

Komponentenorientierung fürs Unternehmen

Kann Unternehmensorganisation von der Softwareentwicklung etwas lernen? Dass umgekehrt Softwareenwicklung von der Unternehmensorganisation lernen kann, zeigt ja in der letzten Zeit sehr schön Kanban. Das Vorgehensmodell überträgt erfolgreiche Organisationsmuster aus warenproduzierenden Unternehmen in die Programmierung Aber auch umgekehrt ist Lernen möglich. ...
vorgehen-bei-der-entwicklung
12.10.2011 | 99 0
1

Skalierbare Softwarebausteine - Teil 2

In meinem Traum sehen fundamentale Softwarebausteine ganz einfach aus, wie ich im ersten Teil dieser kleinen Artikelserie beschrieben habe: Es sind potenziell zustandsbehaftete und potenziell nebenläufige Funktionseinheiten auf beliebig vielen Abstraktionsebenen, die Input-Daten in Output-Daten transformieren. So einfach ist das :-) Dabei könnte ich nun ...
architektur software-als-system
06.10.2011 | 117 0
0

Skalierbare Softwarebausteine - Teil 1

Wie können wir Software mit evolvierbarer Struktur herstellen? Wie kann Software selbst so agil werden wie unsere Prozesse es schon geworden sind? Diese Frage treibt mich immer noch um. Die bisher angebotenen Lösungsansätze aus Richtung Clean Code finde ich noch nicht ausreichend. TDD und SOLID sind ganz gute Ansätze… nur fehlt ihnen aus meiner Sicht ein umfassender Blick auf ...
architektur software-als-system
05.10.2011 | 128 0
1

Digitale Erleichterung für den Schulalltag – oder: Kinder sind keine Scherpas

Wie wäre das, wenn Sie jeden Tag mit 25% Ihres Körpergewichts auf dem Rücken zur Arbeit gehen müssten? Für mich wären das ca. 17 kg, aber ich bin nicht groß. Für viele unter Ihnen wären das bestimmt 20 kg oder gar 25 kg. Ein Gewicht, dass Sie natürlich in einem Rucksack tragen können - nur wäre das jenseits dessen, was sie als bequem ansehen würden. Auf einen Sonntagswanderausflug ...
kritisch-gesehen
03.10.2011 | 109 0
0

Ungesunde Zahlungshemmung

Zahlen für Fortbildung? Gerade habe ich eine Folge von Uncle Bobs Videos gekauft. Dabei habe ich ein Zucken gespürt. "12 USD für ein Video? Lohnt sich das?" Trotz meiner Zweifel habe ich gezahlt... ...und als bei Paypal dann stand "8,96 EUR", habe ich gedacht: "Wie blöd bin ich eigentlich? Ich denke darüber nach, 8,96 EUR für meine Fortbildung auszugeben - aber ich zucke nicht, ...
kritisch-gesehen
01.10.2011 | 124 0
2

Spinning – Vorschlag für den Kern jedes Vorgehensmodells

Über eine Iterationslänge von 1 Tag habe ich ja schon öfter geschrieben. Dazu stehe ich weiterhin. Allerdings ist mir aufgefallen, dass sie nicht an erster Stelle stehen sollte. Deshalb versuche ich mal eine andere Formulierung: Im Kern von Scrum steht der Sprint von mehreren Wochen, d.h. ein fixes Auslieferungsdatum mit fixem Scope. Scrum ist damit fundamental ...
vorgehen-bei-der-entwicklung
13.09.2011 | 145 0
0

Softwareevolution in Vielfalt

In einem früheren Posting habe ich über Rahmenbedingungen für die Evolution von Software nachgedacht. Den dort genannten möchte ich nun noch eine hinzufügen: die Vielfalt. Ich glaube, dass Evolution eines Ganzen schwieriger ist, als die Evolution von Vielem, das eine Summe hat. Das Leben auf der Erde ist nicht ein Organismus (auch wenn es die Gaia-Hypothese gibt), sondern es ...
software-als-system
06.09.2011 | 123 0
0

Bausteine für die Softwareevolution

Wenn wir Software naturnah entwickeln wollen, also als evolvierbares System, wie sollte sie denn dann aufgebaut sein? In meinem vorherigen Artikel habe ich mir Gedanken über eher organisatorische Voraussetzungen für naturnahe Entwicklung gemacht. Diesmal will ich die technische Seite angehen. Oder besser: wieder angehen, denn vor Jahren schon hatte ich in diese Richtung ...
architektur software-als-system
06.09.2011 | 109 0
1

Voraussetzungen für sich entwickelnde Softwarestrukturen

Liegt die Zukunft der Softwarearchitektur in Emergent Architecture und Growing Software? Diese Frage wurde in zwei Open Space Gruppen auf der SoCraTes Konferenz 2011 behandelt. Das hat mir gefallen, da ich ja mit meinen Softwarezellen auch schon einmal eine naturnahe Metapher gewählt hatte. In den Diskussionen wurde ich das Gefühl jedoch nicht los, dass wir bei allem Appeal ...
architektur software-als-system
04.09.2011 | 240 0
2

Jenseits von SOLID

In einem hübschen Artikel hat Mark Nijhof ein Refactoring nach SOLID beschrieben. Dem ist nichts hinzuzufügen – wenn man denn bei SOLID stehen bleiben will. Ich sehe SOLID aber nicht als sakrosankt an; für mich darf Code gern noch “cleaner” werden. Hier zunächst die Code-Ausgangslage: Eine Klasse mit eine Menge Verantwortungen. Mark löst sie im Sinne des Single Responsibility ...
clean-code-developer kritisch-gesehen
25.08.2011 | 277 0
2

Mit dem Tapetenmesser gegen Verlagsträgheit

Buchhandel und Verlage sind nicht die Schnellsten, was neue Technologien angeht. Ideen aus meiner Sicht als Leser, was der stationäre Buchhandel tun kann, um nachzuziehen und sich zu erhalten, um für mich attraktiv zu bleiben, habe ich schon geäußert. Für die Verlage gibt es natürlich auch Ideen. Hier nur eine, wie ein cooles Buch 2.0 aussehen könnte. Das scheint mir Lesen auf ...
kritisch-gesehen tools
17.08.2011 | 320 0
2

Ideen für den Buchhandel

Wie könnte sich denn nun der Buchhandel auf eine neue Art von Leserschaft einstellen? Mit meinem vorherigen Blogartikel habe ich erstmal nur ein wenig aufrütteln wollen. Mir liegt etwas am Buchhandel oder besser: an Buchgalerien, in denen ich in pBooks stöbern kann und von deren Auswahl und Präsentation an Büchern ich mich inspieren lassen möchte. Deshalb wollte ich ihnen ...
kritisch-gesehen
03.08.2011 | 172 0
3

Nachricht an den Buchhandel

Wir werden immer mehr. Ich meine die Leser wie ich, die Bücher elektronisch konsumieren wollen. Vor einem Jahr war das für mich noch kein so großes Thema. Ja, da habe ich auch schon ab und an eBooks gelesen; doch seitdem ich iPad und iPhone habe, hat sich das Verhältnis umgekehrt. Heute lese ich 90% elektronisch und nur 10% auf Papier. Ein Papierbuch kommt mir nur noch in dein ...
kritisch-gesehen
26.07.2011 | 170 0
4

Design zur Diskussion gestellt

In der Software Craftsmanship Diskussionsgruppe geht es in einem Thread um die Frage, was denn Software Design sei oder Software Architecture. Die Antworten der Software Craftsmen sind für mich sehr überraschend. Hier ein Beispiel: George Dinwiddie hat auf meine Frage also geantwortet, für ihn sei alles Design, was mit Entscheidungen zu tun hat während der ...
kritisch-gesehen
18.07.2011 | 131 0
3

Begrenzte Qualität – aber zackig!

Uncle Bob hat “crap code” den Kampf angesagt: “Craftsmanship over Crap” – zünftige Handwerksleistung soll für mehr Qualität in der Softwareentwicklung sorgen. Dagegen hat Nicolai Josuttis vor einigen Jahren den Gedanken geäußert, wir sollten endlich lernen, uns mit “crap code” abzufinden; er sei nicht zu vermeiden: “So, when I say "Welcome Crappy Code", my point is not to ...
gesetze-der-softwareentwicklung kritisch-gesehen
10.07.2011 | 275 0
8

Architekturvision braucht Visualisierung

Über den Begriff Architektur vision bin ich in letzter Zeit ein paar Mal gestolpert. Zuletzt in der “Hauszeitschrift” Ausgabe August/2011 von it-agile. Es freut mich natürlich, dass das Thema Softwarearchitektur an Sichtbarkeit gewinnt. Doch irgendwie will mir nicht ganz schmecken, was da jetzt unter “Agile Softwarearchitektur” in Umlauf gebracht wird. In dem Topf wird ...
architektur kritisch-gesehen vorgehen-bei-der-entwicklung
09.07.2011 | 159 1
1

Test-Driven Unterstanding

Was ist es im Kern, das TDD ausmacht? Darüber habe ich anlässlich einer längeren Konversation mit Ron Jeffries in der Software Craftsmanship Google Group jetzt noch einmal nachgegrübelt. TDD hatte bescheiden angefangen als Test-Driven Development. Da ging es darum, Code in einer bestimmten Weise zu schreiben, um ihn von vornherein korrekt zu hinzukriegen. Doch dann wurde ...
kritisch-gesehen testen
08.07.2011 | 126 0
0

Tägliche Codeproduktionsquote

Wieviel Code produzieren Sie eigentlich? Wieviele LOC pro Tag, wieviele LOC davon Produktionscode? Schätzen Sie mal. Sind das 100, 500, 1000 Zeilen (ohne Kommentare, automatisch generierte using-Anweisungen und ohne Tests)? Habe gerade die Code-Review-Fibel von SmartBear gelesen. Darin ging es auch um LOC. Empfohlen wird nämlich, pro Peer Code Review nicht mehr als 200 ...
vorgehen-bei-der-entwicklung
26.06.2011 | 111 0
12