| 

.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
.net agile architektur asynchronizitaet ausbildung ccd-school clean-code-developer coding-dojo csharp ddd einfacher-programmieren english-postings event-based-components event-sourcing flow-design gastbeitrag gesetze-der-softwareentwicklung intuitives-datenmodell kritisch-gesehen lean produktivitaet publikationen samples software-als-system softwarearchitektur softwareentwurf softwarephilosophie testen theory-of-constraints tools video vorgehen-bei-der-entwicklung zum-lesen-empfohlen
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

11

Regelmäßiges Lernen - Meine Retrospektive

Ende Juni 2014 hatte ich versprochen, ich würde nun auch noch expliziter das Lernen in meine Arbeitszeit einbauen. Zwar besteht mein Job als Berater, Trainer, Autor zu einem großen Teil ohnehin aus Lernen, doch das hat eine andere Qualität als das, was ich meinen Seminarteilnehmern und Kunden nahelege. Mein Job ist Lernen, deren Job ist es nicht.1 Wenn ich Softwareentwickler ...
ausbildung ccd-school
03.10.2014 | 32 0
7

Responsibilities zählen

Das Single Responsibility Principle (SRP) ist eine Säule sauberer Softwareentwicklung für hohe Wandelbarkeit. Nicht umsonst macht es auch den Anfang bei den SOLID Prinzipien, würde ich sagen. Aber: Wie finden Sie denn heraus, wieviele Responsibilities (Verantwortlichkeiten) eine Methode oder Klasse hat? "Naja, das sieht man halt", scheint mir ein zu schwammiges ...
clean-code-developer
02.10.2014 | 37 0
11

Von Startup-Krautern lernen

Crowdfunfing ist in. Ich habe auch schon mehrfach gesponsort, gefundet, gespendet. Es ist einfach schön, motivierten Menschen unkompliziert ein bisschen helfen zu können - wenn mich die Idee begeistert. So war es auch bei den Krautreportern. Ihre Vision hat mir in Zeiten des hypebasierten Einheitsjournalismus und der undurchsichtigen Verbindungen zwischen ...
kritisch-gesehen vorgehen-bei-der-entwicklung
28.09.2014 | 30 0
5

Vom Problemtrichter zum Lösungsbaum

Software soll doch einfach nur laufen. Das wünscht sich der Kunde und meint damit, dass sie ein bestimmtes Verhalten zeigen soll. Sie soll gewünschte Funktionalität in bestimmter Qualität bieten, also z.B. rechnen, aber schnell, oder überweisen, aber sicher, oder Videos zeigen, aber für Millionen Benutzer gleichzeitig. Verhalten wird hergestellt durch Logik. So nenne ich ...
vorgehen-bei-der-entwicklung
20.09.2014 | 38 0
10

Konstruktivistische Softwareentwicklung für mehr Wandelbarkeit

Code sei ein Mittel, um die Realität abzubilden. Zumindest scheint mir das ein wesentlicher Antrieb hinter der Objektorientierung zu sein. Mit Objekten sollte es endlich möglich sein, Dinge und Verhältnisse der Welt möglichst 1:1 in Code zu fassen. Das ist eine platonische Sichtweise der Welt. Sie geht davon aus, dass es etwas unabhängig von Code gibt, das irgendwie ist. Und ...
architektur event-sourcing softwarephilosophie
20.08.2014 | 45 0
5

Warnung vor dem Microservice – Versuch einer Definition

Services sind wieder im Trend. Jetzt unter der Bezeichnung Microservice oder kurz: µService. Das empfinde ich grundsätzlich als Fortschritt. Schon vor einer “Moore-Periode” :-) (also 18 Monaten) habe ich das als konsequente Entwicklung beschrieben unter dem Titel “Software als Web of Services”. Und noch weiter zurück, im Jahr 2005, hatte ich mir in einer Artikelserie unter ...
.net agile csharp lean softwarearchitektur
17.08.2014 | 71 0
8

Software systematisch wachsen lassen

Mir gefällt die Metapher von der “wachsenden Software”. Ein schöner bildlicher Gegenentwurf zur Hausbaumetapher. Aber bisher hat mir dabei immer etwas gefehlt. Wie funktioniert denn das mit dem Wachsen genau? Software wächst ja nicht von allein, sondern durch unseren Eingriff von außen. Das Buch “Growing Object-Oriented Software Guided by Tests” (GOOS) hat versucht, ...
architektur vorgehen-bei-der-entwicklung
14.08.2014 | 50 0
7

Zeitmanagement für Softwareentwickler

Warum kommt Clean Code oft gar nicht oder nur mit Mühe im Tagesgeschäft von Entwicklerteams an? Warum fühlen sich Entwickler oft überlastet? Abgesehen von fachlichen Problemen liegt das, so scheint mir, häufig an einer gut gemeinten, aber unsystematischen Arbeitsweise. Selbst wo man schon an Agilität geschnuppert hat, ist das persönliche Zeitmanagement weithin ...
produktivitaet
21.07.2014 | 74 0
9

Erfolgreich in der Unvorhersagbarkeit, oder: Softwareglück ohne Schätzungen

Bahnfahren erinnert mich an Softwareentwicklung: Regelmäßig werden Versprechen nicht eingehalten. Der ICE von Hamburg nach Wien hat schon beim Start 6 Minuten Verspätung. Daraus werden 10 bis Würzburg. Das sind ca. 5% Verzug und hört sich nicht viel an. Nur verpasse ich dadurch meinen Anschlusszug. Ich muss 45 Minuten warten - und komme mit 60 Minuten Verspätung am Ziel an. Der ...
.net agile csharp lean softwarearchitektur
09.07.2014 | 71 0
11

Regelmäßiges Lernen - Mein Commitment

Gute Softwareentwicklung gibt es nicht ohne regelmäßiges Lernen. Technologisch bleibt man sonst immer weiter zurück. Aber auch neue Methoden können sonst nicht wirklich eingeführt werden. TDD, Clean Code, NoSql, Reactive Programming, F# oder was sich sonst noch nützlich auf die Softwareproduktion auswirken könnte, kann man nicht im Kopf anschalten. Dafür braucht es ...
.net agile csharp lean softwarearchitektur
28.06.2014 | 94 0
5

Die wichtigste Rolle in der Softwareentwicklung

Natürlich ist Softwareentwicklung eine Tätigkeit, an der viele beteiligt sind. Alle Rollen sind wichtig. Und doch… ich glaube, es gibt eine Rolle, die ist wichtiger als andere. Sozusagen erste unter gleichen. Das ist die Rolle des Product Owner (PO). Nicht die Programmierer sind die Wichtigsten, nicht die Qualitätssicherer, sondern der PO. Das stürzt hoffentlich niemanden ...
kritisch-gesehen vorgehen-bei-der-entwicklung
09.06.2014 | 80 0
6

Klein ist ökonomisch

Es kommt auf die Größe an – zumindest bei der Wartbarkeit (oder besser: Evolvierbarkeit). Über Helge Nowaks Präsentation bin ich auf diesen Text gestoßen und darüber dann auf einen Video-Vortrag: Viktigste faktorer for a redusere teknisk gjeld - Dag Sjøberg from Smidigkonferansen on Vimeo. Keine Angst, Sie müssen nun nicht Ihr Norwegisch abstauben. Ich denke, interessante ...
architektur
03.06.2014 | 77 0
6

Zuschauen beim Softwareentwurf

Konzepte, Notationen, Methoden auf Papier sind geduldig. Darüber zu lesen, ist eine Sache. Sie dann aber anzuwenden, auch mit dem besten Willen, eine andere. Was im Artikel oder im Buch noch verständlich war und einfach aussah, erweist sich in der Praxis schnell als knifflig. Der Transfer fällt schwer – und dann lässt man es einfach sein und macht weiter wie bisher. Dem möchten ...
architektur vorgehen-bei-der-entwicklung zum-lesen-empfohlen
18.05.2014 | 100 0
6

Wichtiges verlässlich erledigt kriegen

Erledigt wird nur, was dringend ist. Ich denke, darin stimmen wir überein. Aber es gibt Wichtiges und es gibt Dringendes. Beides muss erledigt werden – nur schiebt sich das Dringende scheinbar oft, allzu oft vor das Wichtige. Das Wichtige Das ist misslich und früher oder später gefährlich, denn das Wichtige ist ja das, was getan werden muss. Das macht seine Definition aus: Was bei ...
produktivitaet
09.04.2014 | 78 0
7

Arbeitszeiteinteilung für Veränderung

Der Wunsch, irgendwie besser Software zu entwickeln, ist weit verbreitet. Irgendwas stört in jedem Projekt. Irgendwie hakt es in jedem Team. Viele leiden unter der Last von Legacy Code. Andere kämpfen mit Qualitätsproblemen oder unzuverlässiger Lieferung. Zur Verbesserung der Situation lässt sich dann natürlich allerlei raten. Mehr Clean Code, konsequentere Agilität, ...
kritisch-gesehen produktivitaet
07.04.2014 | 85 0
13

Attrappen gestütztes Nachdenken

Wie viel Design vor dem Codieren darf es denn sein? Diese Frage erhitzt immer wieder die Gemüter. Neulich auch das von Robert C. Martin. Der reagierte nämlich sehr barsch auf einen Blogartikel von Justin Searl. Martin sieht nun einen Unterschied in der Notwendigkeit zu entwerfen zwischen größeren Strukturen und kleineren. Für die einen sollte man explizit entwerfen, für die ...
softwareentwurf testen
10.03.2014 | 132 0
14

Vertragsstrafe einmal anders

Wer einen Vertrag verletzt, der wird bestraft – auf die eine oder andere Weise. Ohne Konsequenzen wären Verträge so nützlich, wie elterliche Ermahnungen an schreiende Kinder vor dem Süßigkeitenregal im Supermarkt, wenn am Ende doch der Schokoriegel gekauft wird, damit endlich, endlich Ruhe ist. Ob Verträge schriftlich sind oder nicht, ist unerheblich. Sie entstehen schon ...
kritisch-gesehen
01.03.2014 | 303 0
10

Rekursive Produktivität

Das drängendste Problem der Softwareentwicklung heute scheint mir Unzuverlässigkeit. Darin unterscheidet sie sich nicht von der Deutschen Bahn. Nicht Performance oder Skalierbarkeit oder Sicherheit oder Usability oder ein Mangel an Kunststücken sind das Problem. Allermeistens kann Technologie das, was gebraucht wird, um die nicht-funktionalen Anforderungen zu ...
theory-of-constraints vorgehen-bei-der-entwicklung
13.01.2014 | 116 0
6

Eklektische Programmierung

Jetzt hab ich genug. Mir hängt das ganze Gerede über Für und Wider von Objektorientierter Programmierung (OOP) und Funktionaler Programmierung (FP) zum Hals raus. Ich mag nicht mehr. Es ist zwar nicht egal, ob OOP oder FP. Der eine Ansatz hat für manche Szenarien Stärken, der andere Ansatz für manche Szenarien Stärken. Und? Warum sollte ich mich deshalb entscheiden müssen? ...
kritisch-gesehen
03.01.2014 | 122 0
8

Unordnung muss sein

Neulich habe ich mit meiner Freundin geheimwerkert. Sie wollte ihr Wohnzimmer mit einigen Fotos in selbstgebastelten Bilderrahmen anreichern. Holzprofile zuschneiden und zusammensetzen zu Rahmen, war eine Sache. Eine andere, die Bilderleiste im Wohnzimmer anzubringen, an der die Rahmen aufgehängt werden können. (Eine Bilderleiste statt Nägeln in der Wand für jeden ...
clean-code-developer
01.01.2014 | 117 0
7

Was ist Zug?

Druck ist unökonomisch auf längere Sicht. Druck ist in den meisten Fällen kontraproduktiv. Der Schaden, den Druck erzeugt, besteht in Halden, die Kapital binden oder gar verbrennen, und in Verformungen von Ressourcen, die deren Leistungsfähigkeit schrittweise reduzieren. Darüber habe ich im vorherigen Posting geschrieben. Bewegung in Richtung eines Ziels kann aber ...
.net agile csharp lean softwarearchitektur
28.12.2013 | 158 0
8

Was ist Druck?

Zug ist ökonomischer als Druck. Davon bin ich überzeugt. Aber was ist denn Zug? Wie kann man Zug (pull) von Druck (push) unterscheiden? Die Antwort bin ich noch Kommentator Mike M schuldig. Bisher schien es mir einfach, Zug zu erkennen. Liegt der denn nicht auf der Hand, wenn er vorhanden ist? Aber Mikes Nachfrage hat mich widererwarten ein bisschen ins Schwitzen gebracht. “Ich ...
.net agile csharp lean softwarearchitektur
23.12.2013 | 150 0
6

Vergleich von Flow-Designs für Kata Ordered Jobs

So unterschiedlich können Flow-Design s sein. Ich hatte es schon geahnt, doch nun ... es öffentlich. Am 1.11.2013 hatte ich ermuntert, Flow-Design s für die Kata Ordered Jobs “einzureichen”. Auslöser dahinter war ein Flow-Design , dass Entwickler eines Kunden von mir in einem ... sich erarbeitet hatten. Sie wollten einfach Flow-Design üben. Das sah so aus, als sie mich schließlich ...
flow-design
10.12.2013 | 130 0
9

Bitte raustreten für besseren Fluss

Am Flughafen kann man lernen, Fluss herzustellen. So geschehen, als ich gestern von Hamburg nach Köln geflogen bin. Und gleich wird es wohl wieder geschehen, wenn ich zurückfliege. Beim Boarding sollen ja in kürzester Zeit hunderte Passagiere durch ein Nadelöhr in die Maschine fließen. Da Nadelöhr ist die Prüfung der Bordkarte. Heute passiert das durch assistiertes Scannen. ...
vorgehen-bei-der-entwicklung
07.12.2013 | 137 0
3

Zug ist ökonomischer

Dieses Arrangement fand sich neulich auf dem Wohnzimmertisch meiner Freundin. Noch nicht weihnachtlich – es ist ja erst Mitte November – aber trotzdem hübsch und Gemütlichkeit verbreitend so mit den Kerzen und ein bisschen Obst. Nur leider war es mir im Weg. Ich wollte an dem Tisch mit meinem ebenfalls hübschen und vor allem ungemein praktischen neuen MacBook Pro nämlich ...
vorgehen-bei-der-entwicklung
29.11.2013 | 140 0
12345...7