Archives

Archives / 2006
  • Quo vadis Fachzeitschriften?

    [Abstract: From looking at current issues of .NET developer magazines in Germany I get the impression, their current format is outdated. Publishing software development content primarily on paper does not really cater to the needs of developers anymore. That way not enough relevant topics can be covered in each issue to make most of the readers happy most of the time. I thus propose a shift of focus from offline to online. What we need are magazines (i.e. information filters) we can customize.] 

  • prio 2006 - Die erste Konzeptkonferenz war ein Erfolg

    [Abstract for English speaking readers: The prio .NET developer conference was a success. Its concept of setting an overall topic - this time "Software production process" - and looking for speakers to fill the predefined session topics to form a homogeneous whole was very well received by the attendees. Instead of a "mille fleurs" conference we termed it a "conceptual conference" and will keep this format for the prio 2007.]

  • Kaffeehauskonsultation - Consulting für die Softwareentwicklung einmal anders

    [To show the value of consulting in software development projects to more companies, I am going to start a series of consulting gigs in coffee bars around Germany and maybe Austria and Switzerland. Here´s the deal: On a certain date I will be available for free consulting sessions at a coffee bar in a particular city. Whoever is interested in my opinion on a certain problem in his or her project, may come by and we´ll try to solve the issue. Such a consulting session may last 90 minutes max and is free; no consulting fee to be payed! If a client wants to treat me to a hot chocolate, though, I won´t say no :-) Consulting sessions need to be arranged in adavance via email or phone.]

    Rat zu suchen und Rat zu geben, gehören zum Menschsein. Wir können unsere Probleme während der Softwareentwicklung (und auch sonst) einfach nicht immer allein lösen. Das ist keine Schwäche; es liegt vielmehr in der Natur der komplexen Sache. Dennoch haftet dem Ratsuchen immer noch ein unschöner Nimbus an, der Projektteams es schwer macht, es in Problemsituationen auch zu tun. Ratgeben oder Consulting ist zum einen durchaus durch die großen Consultingfirmen in Verruf geraten. Bilder von menschenverachtenden Rationalisierungen, der Entwicklung von Abhängigkeitsverhältnissen, letztlich nutzlosen Alibihandlungen oder die Schmach des Eingeständnisses eigener Ratlosigkeit mögen manchem vor dem geistigen Auge aufsteigen bei dem Gedanken an Consulting. Andererseits und falls es nicht solche Bilder sind, dann ruft oft der Geldbeutel "Das können wir uns nicht leisten! Außerdem bringt das sowieso nichts."

    Dass Ratsuchen jenseits des eigenen Systems - des eigenen Kopfes, Teams, Unternehmens - aber doch etwas bringen kann, dass daraus keine Abhängigkeiten erwachsen müssen, sondern Consulting Hilfe zur Selbsthilfe bedeutet, und dass Consulting auch nicht teuer sein muss - das möchte ich mit einer neuen Form des Consultings einer breiten Entwicklergemeinde zeigen. In Form eines Schnupper-Consultings sollen alle Interessierten - ob Profis oder Studenten/Auszubildende - unkompliziert und kostenlos erleben können, dass Ratsuchen immer nützt. Denn Ratsuchen, d.h. Fragen stellen, kann nicht nur konkrete Lösungen bringen, sondern liefert in jedem Fall ein besseres Verständnis des eigenen Problems und der eigenen Situation, ist für sich genommen also schon ein erster Schritt zur Selbsthilfe. Ratsuchen ist eine Form der Reflektion - und Reflektion gehört zu professioneller Wissensarbeit, wie es die Softwareentwicklung ist.

    Und so funktioniert das Schnupper-Consulting:
    • An einem bestimmten Tag bin ich in einem bestimmten Café in einer bestimmten Stadt und stehe für alle Anliegen in Sachen .NET-Softwareentwicklung zur Verfügung. Weil ich gern die Atmosphäre von Cafés genieße und es schöne Orte zum druckfreien Gespräch sind, habe ich mir gedacht, dieses Consulting-Angebot eben in Cafés anzubieten. Da lässt sich Angenehmes mit Nützlichem schön verbinden. Und einzigartig ist dieses Angebot auch noch, oder? Denn wer hätte schon von einer Kaffeehauskonsultation gehört? :-)
    • Wer Interesse hat, kommt einfach vorbei, schildert sein Problem (mit oder ohne Laptop oder Unterlagen; Skizzen machen wir mit Vision oder auf Papier) und ich versuche nach bestem Wissen und Gewissen Rat zu geben. Ich bin gewiss, dass wir uns im Dialog einer Lösung immer annähern werden.
    • Eine solche Sitzung ist kostenlos - eine Einladung zur heißen Schokolade schlage ich aber nicht aus :-)
    • Um möglichst vielen Interessenten die Gelegenheit zu geben, mich im Kaffeehaus zu konsultieren, ist die Sitzungsdauer zunächst einmal begrenzt auf 90 Minuten. Aber keine Angst, in 90 Minuten lässt sich oft schon einiges klären. Guter Rat hat ja viele Formen. Er kann in einer handfesten Lösung bestehen, aber auch in einem klärenden, reflektierenden Gespräch oder in einer Orientierung für das weitere Vorgehen. Guter Rat rückt vor allem den Wald wieder in den Blick, der in Problemsituationen oft beim Herumirren zwischen den Bäumen aus den Augen verloren wird.
    • Ratsuchende melden sich bitte vorher per Email an.
    Ist das ein interessantes Angebot? Wollen Sie einmal vorbeischauen zu einem entspannten Gespräch, um sich Ihrer Problemlösung näher bringen zu lassen? Hier sind die Termine und Orte:
    Guter Rat muss also nicht teuer sein. Im Gegenteil: Rat schnuppern ist jetzt kostenlos!

    Kommen Sie einfach vorbei zu einer Kaffeehauskonsultation. Ich freue mich auf Sie!


  • Neue Sprecher braucht das Land! - Rhetoriktraining speziell für Softwareprofis

    [Summary for English speaking blog readers: The Professional Developer College is offering a special training for software professionals to develop their speaker and presentation skills. Instead of attending yet another general presentation training, developers, architects, project leads or their manager can now an education focused on how to do technical presentations or product demonstrations before a developer audience. The training is honed for software professionals because their content and their audience are special. Doing a session at a developer conference like TechEd or DevWeek is different from doing a sales presentation or wedding speech. Ralf Westphal, experienced speaker at national and international developers events, and Renate Klein, experienced communication trainer, team up to deliver an intensive two day seminar where at the end, all attendees will do their final presentations before a large and realistic audience. Any developer can learn to become an inspiring speaker and show-off his technical expertise before a developer audience. It just needs some training.]

  • Easy .NET architecture analysis from within VS2005 - Visualizing your code dependencies with a Dependency Structure Matrix

    Constant software quality assessment might be deemed important by almost all developers. But it´s a long way from agreeing or preaching something to actually living it in your projects. It often needs good tools to make theory easy to implement in practice. NUnit, NMock, NAnt, ReSharper are examples of such tools which make testing, building, refining your code easier. And NDepend could be one such tool too for quality assessment - but at least in my view it tries to do too much to be easy to adopt while being under pressure in a tight project schedule.

  • .NET naked - More pictures, some clarifications

    I seem to have stumble upon something here with my look under the hood of the .NET Framework an other tools. Many readers where surprised and fascinated by what you can actually do with quality assessment tools like Lattix LDM or a simple concept like DSM (Dependency Structure Matrix) with its easy to understand and scalable depiction of the dependencies within a software.

  • .NET naked - See these hitherto unpublished pictures of the .NET Framework architecture

    Have you ever thought about the quality of your code? Well, I bet. Have you ever strived for a sound architecture of your software solutions? Well, I hope. Do you have a process in place to constantly monitor the quality of your software´s architecture and code? Well, you should. But not only should you. Every single software team should. Planning for quality and constant qualitiy monitoring should be the fundamental activities in any software project.

  • Applying theory to practice - Training students to use Software Cells, Contract-First-Design and a Microkernel

    The week before last Neno Loje and I did a workshop at the Computer Science department of the University of Hamburg, Germany, to verify a couple of our ideas on software development. We offered this workshop to the university for free, to give students of unfortunately notoriously underfinanced public educational institutions a chance to "get in touch with the real world". Their usual curriculum does not cover .NET much and their approach to software development is quite different from how real project teams work in the Microsoft universe. So we wanted to introduce them to .NET in general, but our focus was on working with a team according to how we think a software project should be approached. For that we had 5 days.

  • Dynamic component binding made easier - An easy to use Microkernel to help reap Contract-First-Design benefits in .NET programs

    If you like, you can download Ralf´s Microkernel here. It´s written in C# and comes with a couple of unit tests (NUnit style). Feel free to use the binary in your projects and play around with the source. Although it´s not much code, I hope you will be able to gain quite a bit from its essential Microkernel functions. Here is how it works...

  • Freeing Data From the Silos - A Relationistic Approach to Information Processing

    Current data processing is suffering from the bane of the many data silos. Data is locked up in a hierarchy of containers and can hardly be connected in new ways. Once data has been grouped into relational database tables or object oriented classes, it’s difficult to regroup it or set up new relations. Regrouping would either break existing code or mean duplication of data. New relations would entail schema changes and be limited to connections between containers on only a few levels of abstraction. Products like Microsoft’s WinFS, dynamic languages and database refactoring tools are trying to overcome this lamentable state of data processing while having their own perspective on it.

  • dotnetpro.tv: WCF aka Indigo im Video-Interview mit Christian Weyer

    Die dotnetpro hat auf Bitten von Clemens "unser Mannes bei Microsoft" Vasters :-), der in Redmond für die WCF Community zuständig ist, die aktuelle Episode meiner Video-Entwicklerserie dotnetpro.tv online gestellt: Christian Weyer führt darin ausführlich und anschaulich und wie immer eloquent kurzweilig in die Grundlagen von WCF ein und benutzt sogar bis dato nie gesehene, also quasi einzigartige Darstellungen am Flipchart :-)

  • How partial classes can help Unit Testing

    Testing a class for correctness using Unit Tests means to exercise all methods of a class. This is especially easy for public methods. You can freely choose where to locate your test code, it always has access to public methods of the class. But how about internal/friend methods for example? They are only visible to test code located in the same project/assembly as the class to be tested. And how about private methods? And how about methods without any "directly visible effect", i.e. methods which change only the private state of an object of the class to be tested?

  • The Original Pile Engine Demystified

    If you´ve followed my postings on associative/relationalistic approaches to information representation and were interested in implementations of the Pile concepts (see [1] and [2] for words from the horse´s mouth) you might also have stumbled across a C implementation of a so called Pile Engine at the sourceforge site of the project. (You can find my implementation there, too. But it´s in C#.)

  • Coordination structures beat RPC - or: How to keep your mental health while working on distributed software

    I received a couple of comments on my posting on how bad RPC can be for your mental health. Although the feedback was positive and agreed with my statements, some expressed concern as to what an alternative to RPC-syntax could be. I thus feel encouraged to elaborate on how I think any software developer can avoid damage to his/her mental health ;-)

  • Is there life beyond WCF? - or: Communication always is about shared data structures

    While pondering about how to get a grip on software architecture, I now and again of course stumble upon questions on communication between distributed software parts. WCF then springs up as the state-of-the-art technology to answer those questions. But more and more I´m asking myself: Is WCF all there is we need to know about communication in distributed software? Is it the holy grail with its beautiful abstraction over SOAP, WSDL, COM+, HTTP, MSMQ etc.?

  • A C# Set class based on enums - You don´t want to be without it when constructing a compiler ;-)

    To refresh myself from obscure information models like Pile and restless thinking about software architecture I decided to pick up a new hobby: compiler construction ;-) Or rather I decided to apply my long time interest in this topic to a good cause: When I talked to Niklaus Wirth - the father of Pascal - in November at the iX conference he told me, he was about to release an updated version of his book "Compiler Construction" (read the complete book here: [PDF]) - which happens to be one of my all time favorite computer text books.

  • Software as a poly-hierarchical mesh

    I fired a little too fast when I did my previous posting. Although I wouldn´t say what I wrote is wrong, I´d say it´s not in proper shape yet. There are quite some aspects (sic!) to take into account concerning software design and I´m not yet satisfied with what I have. Software Cells and Software Universe was a good starting point, they help a lot in practice - but still they are limiting and need to be refocused. So for the moment you should forget about the "Classifyiing bubbles" part of the previous posting, where I introduced very concrete levels of abstraction for software. They are not entirely wrong, but I´d like to present them differently in the future. However, I´m still content with the new emphasis I put on edges! They will become even more important today.