Scritchy: CQRS without plumbing - a preview

by Tom 21. October 2011 17:02

Introduction

CQRS is one of my architectural pet peeves, as you might have noticed from the numerous amount of blog posts I made on this subject. However, I noticed the concept is complicated and hard to grasp for newcomers to CQRS. I have been spiking numerous attempts of a framework that makes CQRS both more manageable and understandable, failed hundreds of times, and even published a few of my acceptable attempts as gists over at github...

A few days ago I was messing around with SignalR trying to setup again another CQRS attempt, and failed miserably.... However, 2 nights after that approach I had an ephiphany which had been lingering around in my head ever since.

Today I decided to get back to business, so this afternoon I started spiking a proof of concept (POC).

I think you will be happy to see that I managed to get most of the annoyance out of CQRS with this simple concept.

More...

Continuous thinking: How your MBTI type can help you

by Tom 6. October 2011 02:38

Introduction

I just finished commenting someone's opinion on the MBTI personality type in a linkedin status update.

As you might have read in my previous post regarding "The secret sauce of great leadership - IMO ;)" I am an avid fan of determining your own personality type in order to improve yourself.

Because this person had seen a presentation by Patrick Vermeren on the myth of MBTI, he retweeted the following:

I wish there was a test to take to find out how much you hate Meyers-Briggs (MBTI). I'd score off the charts.

Since I most certainly do not agree, I commented some things on the linkedin thread. As I think the comment might have some value for my blog readers as well, I decided to post it here as well:

More...

Continuous thinking: Essay: "The secret sauce of great leadership - IMO ;) -"

by Tom 21. September 2011 03:27

Introduction

What MBTI personality type are are you ? If you do not know, I would suggest you find it out (I did it here, it only takes a few minutes).

I did it, and it was an epiphany. Apparently, I am an ENTP. For years, I felt like I did not know anybody who had a personality similar to mine. Now I do, and I found some great online discussion groups all populated with aligned personalities.

In one of those threads, we had a great discussion on how your personality influences your professional life.

Enough off-topic blahblahblah™, time to get to the subject. In the mentioned discussion thread, I gave away my "secret sauce of great leadership - IMO ;) -", just like that, for free... As I received some great comments, I was thinking: "Maybe posting this to my blog might be helpfull for some readers as well". So I did.

Unlike most of the stuff the Oracles out there are spreading, it is not some kind of a magic formula, on the contrary: it is hard work. It is also small and coincise; there is no need to overcomplicate things.. This is my personal approach. I use it all the time, and it works for me. 

So without further ado, here we go; this is my personal ...

 

"Secret sauce of great leadership - IMO ;) -"

 

More...

Continuous thinking: why a 4GL should be avoided to start a new app

by Tom 30. May 2011 05:14

Introduction

As an avid member of the DDD/CQRS discussion group, somebody asked me what I meant with the following sentence:

it looks a lot like a 4GL, and I assume we all know what that means...

Since I tend to think my answer formulated my ideas pretty well, I decided to post it on my blog too; I hope this might help some of you to avoid the 4GL pitfall...

 

Why should a business avoid writing apps in a 4GL ?

This was my answer:

WARNING: This might be a bit off-topic here, but I do want to clarify my **PERSONAL** opinion on 4GLs.

[AD MODE]As an independent consultant one of my key specializations is brownfield migrations (together with non-communicating teams).[/AD MODE]

Having seen numerous examples, I think most of these homegrown x-year old+ MSAccess or similar applications are usually the perfect example of why one should respect the SOLID principles.

Here a typical evolution of a 4GL app:
There is a business need for a small piece of software (think CRUD client list), which does not need to do a lot. So someone drags and drops a CRUD app together in a few hours/days/weeks depending on the scope... Everybody is thrilled and excited about the custom piece of software, which was developed in a fraction of the time, it is custom built,cheaper,[Add the obvious here],....

Unfortunately, an app is bound to grow more complicated as the business is evolving, f.e. "Could you add products/quotes/","except for this and that this should do that", ...
After some time, such an app is also bound to have "user hacks" (i.e. changing a field's meaning to work around a limitation for example, because it would cost to much to implement the change), so when this specific coworker is on holiday nobody knows how to work with the app...
Educating new users/software devs might also become quite a steep hill to climb.

I usually get consulted by the time the app has been growing for about 3 to 10 years into an unmaintainable behemoth with a massive amount of implicit business knowledge in it, where a single change might break everything or take numerous days to implement,

Unfortunately, there is no nearby river available to clean this kind of Augeas stable.
I do not intend to describe the whole process we need to go through, but I can assure you it takes a lot of time/effort/resources, and requires quite a lot of engagement from both the management and the software team.
A business in this kind of situation needs to handle this problem, better sooner then later, because it is bound to constrain the business growth/evolution sooner or later.

[sarcastic mode]
If you do decide to implement an app in a 4GL, please send me your coordinates, and I will give you a call in about a year or 3
[/sarcastic mode]


Conclusion

In my honest opinion, a 4GL should never be used to implement business logic; if you do break this rule, you are bound to get into problematic situations sooner or later; in case you do decide on using a 4GL, I would stongly advise to use it only for the front-end, and respect the SOLID principles.

Bookmark and Share

Einstein's theories explained in 5 minutes: (special) relativity

by Tom 14. January 2010 15:36

Introduction

In the past I have noticed a lot of people talk about (special) relativity and other physics theories, but when you ask them a few questions, they do not seem to grasp the concept....

In this series of blog posts I will try to explain you some of his concepts the way I understand them...

The inspiration for this series has been one of Einstein's quotes :

"Make everything as simple as possible, but not simpler"

I am no physicist by any means, nor a good mathematician, so you should never ask me any questions about the proof or maths about something, since I simply do not know. If you ask most people about these theories they usually start making it way too complicated for one of the two following reasons :

  • They do not understand it, so they try to blow you away with complicated things they heard about it, so you would stop asking questions about it...
  • They do understand it, but their explanation assumes you know the "language of physicists" - which you do not - so it seems like they are talking Jibberish all the way...

We will start with a very popular concept : the theory of special relativity.

More...

Tab/Akkoorden en songtekst van "Zottegem Blues" (Miele, 1974)

by Tom 5. January 2010 12:57

Omdat ik dit wel een goed nummertje vind, en ik nergens de akkoorden en de songtekst vond, heb ik hem even zelf getabbed:

Dit is de link op youtube: http://www.youtube.com/watch?v=0ufXnKAsJC0

More...

Tags:

Tom's blog

2009 retrospective: .Net technologies and lessons learned

by Tom 2. January 2010 03:02

my pride & joy

Introduction

 

In December 2008 I was doing my job as a freelance technical analyst for a big company. While it was a very interesting job in several ways, I felt that a burn-out was coming up. I had no idea whether this was due to the job, or due to my personal merits ( a newborn and a one-year old son, lots of tasks and chores on my to-do list for our house, a busy social life, ...) Instead of waiting for the man with the hammer, I decided to be proactive about it, so I decided to quit the job and reinvent myself during 2009.

It has been both an interesting, very challenging and enriching year for me, with both high peaks and low valleys.

I decided to write this blog post in order to evaluate myself, and I am hoping that other people might find some inspiration in this as well.

 

 

 

 

 

More...

Civilian's manifest against a ridiculous tax : we now need to pay extra taxes on usb-sticks/external hard discs because we MIGHT copy music/video on it

by Tom 30. December 2009 03:34

Introduction : "Oh my God"

The Belgian government managed to do it again; starting from February we have to pay taxes on portable storage, because we MIGHT copy some music on it.

This is utter failure in the biggest possible way; I can accept that our dear Minister Q. has had some really strange track records, but this is really his 'best' realisation ever !!!

As you might or might not know, similar to other countries, we already have to pay a certain amount of taxes for blank DVD's/CD's. In my personal opinion this was really ridiculous, but since I use about 1 CD/DVD per month, I never really bothered...

I assume that people probably stopped buying DVD's/CD's, and as a compensation our government needed to find an alternative. And now they found it !!

Here is an English (google translated) excerpt from an article on tweakers.net about it :

Thus, as from February 1 for an iPod Touch with 64GB of flash storage paid 3 euros extra. A set-top box with a 500GB hard drive is responsible for 10.75 euros, while an external hard drive 1TB or larger to yield 9 Euro. 
Also, a distinction is made between different types of storage devices with the same: an MP3 player with 16GB flash memory has a Auvibel fee of 3 Euro, while a USB stick with an identical capacity to 1.35 Euro copying levy to be paid.

More...

Howto+why using a prototype & bdd for a project estimate + personal rant

by Tom 22. December 2009 13:57

Introduction

As you might or might not now, estimating the budget for a project can be very hard sometimes. In order to get started on a project we first need a real estimate of what the client will need, and the client should know what I am going to deliver to him/her.
What I personally learned from the past is that one can never be fine-grained enough, since there will always be mismatches somewhere.

We can however try to offer the client something that he/she can both understand and work with, next to a description of what everything should do (from a business point of view).

How can we do this, while investing as little work as possible ?

 

Unfortunately one can not correctly estimate projects without doing some work

As straightforward as this might seem, most people do not seem to be able to grasp this ( do not be ashamed; I have been guilty as well ).

In order to give a correct estimate, you have to INVEST a decent amount of TIME.

More...

The Quest for the perfect ASP.Net MVC code : v0.3

by Tom 7. December 2009 20:26

You can download the full source here using (msys)git:
     http://github.com/ToJans/MVCExtensions


// The quest for perfect asp.net MVC code - v0.3
//
// For a while I have been looking for the perfect ASP.Net MVC code.
// This is the cleanest code I have been able to write.
// I would like to challenge everyone to do better !!!
//
// By this I mean creating a better controller/views if possible codewise.
// The focus is not on the layout stuff, but having it might be a plus.
//
// The scope : a very rudimentary Task list (KISS)
//
// You can download the full source here using (msys)git:
//     http://github.com/ToJans/MVCExtensions
//
// You will see it is very easy to alter, just fetch it with git and press F5
//
// Please do let me know what you think about my approach as well,
// and whether you could do better: ToJans@twitter
// Send this link to as much fellow coders as possible, so we can see lots of alternatives
//
// PS: you can also leave a comment @ my website (look at my twitter account for the url)
//
// Edit: this is my third version, and I am still looking for improvements
//
// Some noteworthy facts :
// - In the MVCapp, there only DLL directly referenced is the ViewModel DLL,
//   so the views do NOT reference the controllers anywhere
// - The controller contains only logic & domain model objects => VERY CLEAN Controller
// - The resulting controller action model is mapped to the ViewModel using
//   IMapper.Map<source,ViewModel>(s,vm)
// - The viewmodel should include everything that should be visible on the screen, so not only
//   data but also the actionlinks one can use
// - The actionlinks for the viewpages are defined in the IMapper, and automaticly passed on to
//   the view => you can see/alter the program flow in the mapping definitions
// - Stubbing the controller should be a piece of cake using this code, so you could use this
//   design to easily develop application mockups that are ready to be implemented once the client
//   approves, so first build your viewmodels and views, show it to the client, and upon agreement
//   start development on the controller.... In fact I am going to test this method on my next project
//
// Kind regards,
// Tom Janssens

More...

About Tom

Tom Janssens op LinkedIn

Tom Janssens op twitter

Core bvba RSS

 

Tom Janssens is an independent freelance ICT consultant that has been "into computers" ever since the age of 7.

Typing source code from a book evolved into exploring the limits of coding in procedural, assembly and object-oriented languages.
As he matured in software coding, he started focussing on the problems surrounding software development, and learned that software development is usually about people and interactions first, and about technology second.

Due to his diverse track record he gained insights in a lot of aspects of the software development process. Currently his main focus is on strategic ICT advice, lean product/project development and improving the software development process and architecture.

He avoids ivory-tower-approaches by applying and verifying the applicability of the latest tech buzz in software experiments.

He is also the founder of the following LinkedIn groups:

CQRS Professional
BDD Professional
Asp.Net MVC professional

More info about Tom and his company...


Advertisement

Forget all your SCRUM -, Kanban - and other Agile and Lean certificates

Here is the only true AGILE and LEAN certificate you will ever need:

The Creative Recursive Analysis Process Certificate
(CRAP Certificate for short)

More info can be found at the official CRAP certificate website:
http://bit.ly/CRAPCertificate