| 

.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

0

Praktische Führung

Es wird ja viel über Führung und Management geschrieben. Die einen sind dafür, die anderen dagegen. Aber was ist eigentlich die Aufgabe von Führungspersonen? Eine sehr gute Erklärung liefert aus meiner Sicht Reinhard K. Sprengers Buch “Radikal führen”. Danach hat Führung fünf Kernaufgaben: Zusammenarbeit organisieren - Klar, das ist der Ausgangspunkt. Verschiedene ...
produktivitaet theory-of-constraints
vor 15h | 14 0
2

Hacker-Tool für Gedanken

Wie soll ich wissen, was ich denke, solange ich es nicht aufgeschrieben habe? So geht es mir oft. Deshalb schreibe ich Blog-Postings und Zeitschriftenartikel und auch Bücher. Das Schreiben hilft mir beim Denken. Aber welches Werkzeug benutzen für das Schreiben? Für den Zeitschriftenartikel ist MS Word der Standard. Aber muss das so sein? Wie könnten Redaktion und Autor ...
produktivitaet
vorgestern | 23 0
8

Wunderlist für Personal Kanban

Ein Tool ist kein Selbstzweck, sondern soll dienlich sein. Das trifft auf Software zu wie auf Methoden. Um meine Arbeit zu organisieren, wenn es mal wieder etwas mehr wird, habe ich vor einiger Zeit Personal Kanban eingeführt. Naja, “einführen” kann man da nicht viel ;-) Ich habe also angefangen, nicht nur eine Aufgabenliste zu führen, sondern die Aufgaben über ein Brett zu ...
produktivitaet tools
14.11.2014 | 41 0
8

Die vielen Gesichter des Product Ownership

Wie sollte, wie kann Product Ownership aussehen? Stefan Rook hat dazu einen Vortrag gehalten: Product Ownership hat also viele Gesichter. Diese Botschaft hat mir an dem Vortrag gefallen. Mir hat allerdings auch etwas gefehlt. Nämlich die Abstraktion. Was ist das Muster? Worum geht es im Kern? Mag sein, dass das schon allen klar ist. Meine Erfahrung ist jedoch, dass die meisten ...
theory-of-constraints vorgehen-bei-der-entwicklung
11.11.2014 | 30 0
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 | 44 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 | 51 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 | 36 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 | 45 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 | 55 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 | 84 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 | 62 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 | 82 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 | 80 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 | 105 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 | 89 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 | 86 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 | 113 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 | 87 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 | 93 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 | 141 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 | 312 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 | 125 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 | 131 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 | 129 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 | 167 0
12345...7