Continuous thinking: CQRS explained to a 10-year old

by Tom 28. November 2011 03:20

Introduction

The concept behind CQRS is neat: detach your domain implementation completely from your representation requirements. I even wrote a framework for it as a learning tool, so somebody without any prior experience should be able to boot a CQRS app in a few minutes.

The main idea behind this framework is providing developers new to CQRS an operating room where they can compose their own little CQRS Frankenstein app.

The whole framework is constructed in a way that it forces you to make your domain implementation completely persistence ignorant, respecting typical AR/transactional boundaries.

Scritchy is not "the framework to write CQRS apps"; Scritchy is a framework that tries to provide you a learning platform where you can start grasping the basic principles, advantages and disadvantages in using CQRS.

Once you understand the basic principles behind the CQRS setup, and why everything is setup the way it is, I would advise anybody to gradually replace parts of the framework and just opt for whatever approach you like, using proper message busses, pub/sub/... 

If you write your app following the conventions Scritchy dictates, the only thing you need to change to remove the Scritchy dependency is the base object your Aggregate Root inherits from; that is the only dependency that is ever necessary in you app implementation. This was by design,to make future migrations as easy as possible.

I wrote this framework to enable a dev new to CQRS to get his app up and running in a few minutes... But apparently that is not enough....

More...

Pragmatic CQRS: Verifying username uniqueness when registering a new user

by Tom 15. November 2011 03:19

Introduction

Most people who get started with CQRS have issues with this classical example: "how do we verify username uniqueness when a new user registers ?".

While user authentication is something that has been implemented numerous amounts of times before, and one should usually not reinvent the wheel but use an existing software library for this particular case, the problem in itself is rather interesting, and happens quite a lot in a domain.

In this small article I will show you a simple proper way to resolve the issue respecting CQRS/DDD principles.

More...

Quick tip: How to do TDD/BDD and debug unit tests with Visual Studio Express editions

by Tom 25. October 2011 07:47

Introduction

This article will show you how you can do TDD/BDD with Visual Studio Express editions. While most people say it is not possible, it is actually pretty easy.

Prerequisites

How do you do it ?

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: Essential business books shortlist: 3 business books everyone should have read

by Tom 30. December 2010 06:31

Introduction

I like to read books, lots of them. Some I read only once (very fast, usually in a few hours, to get the main picture), and the good ones I read over and over again, or at a slower pace.

In case of non-fiction, I either read books about physics, economics or business methodologies.

While I read a lot of books, and some books gradually bring me a bit closer to the essential knowledge on a business level, I finally think I have a shortlist of 3 essential books one should read in order to acquire the basics.

I am not saying that this list is the only one possible, but it should give you enough universal business knowledge to get started. For every single book I mention, there will probably be umphteen alternatives providing similar content.

The list does not cover any specific techniques or methodologies, just universal approaches.

If you do have any suggestions or alternatives, do not hesitate to let me know.

(FYI I usually read the Dutch version, but I post the links to the original ones)

 

1. "Skills for new managers" - McGraw-Hill

(link on amazon)

Looks like he could use some skills

I know the title says "managers", but in my opinion this book can be used as a guidance for business in general.

This is the first on my list for a very good reason: it is packed with essential knowledge and touches the most important aspects of working in a company/dealing with collegues:

  • What makes a manager succesful ?
  • Management myths - things you should avoid
  • How to give a good first impression
  • How to manage by listening
  • How to talk like a manager
  • How to motivate
  • How to criticize
  • How to sanctionize
  • How to be efficient/time management
  • How to delegate
  • How to handle your boss
  • How to build a network

It is written in a very down to earth style, and the book is full of examples and pragmatic guidelines. In my opinion one can apply these tips in a much broader context then just being a manager.

I reread this every few years, since it brings you back to the most essential things one should do.

 

 

"How to Connect in Business in 90 Seconds or Less" - Nicholas Boothman

(Link on amazon)

One can never have enough connections

Since building a network and interacting with people is in my opinion one of the most important aspects in business, this needs a little special attention.

This book offers a very entertaining review of techniques one should apply in order to extend your business network and talk to customers/personel/bosses in general. It offers a very down-to-earth approach on how to improve your communication skills.

Unfortunately I can not recall who I lended this book to the last time (I lended it to numerous people), so if the person who has it reads this, please give it back, since I would like to read it again to refresh my memory.

 

"The Management Myth: Debunking Modern Business Philosophy" - Matthew Stewart

(Link on amazon)

"The big giant head" from "Third rock under the sun" ?

While I read numerous books on methodologies and techniques on how to do business, this book points out what it is all about: techniques and methodolgies are there to help you, not to worship them.

I just recently (fast-) read this book a few days ago (in about 6 hours or so, so not very thoroughly), and while reading it, I was thinking "Now my list of essential business books is complete, I need to write a blog post on this".

I still have to read it a few times or take the time to read it through in a slower pace, but the key point here is that this book points out the major flaws in preferring methodologies over common sense.

Every time I read a new book ("Good to great" - Jim Collins, "Die hohe Kunst der Überzeuging" - Hans Christian Altmann, "The 80/20 Principle: The Secret to Achieving More with Less" - Richard Koch, "The 4-Hour Workweek: Escape 9-5, Live Anywhere, and Join the New Rich" - Timothy Ferris, ...) I am really thinking this is the next big thing. This book is there to remind me to be a little bit more suspicious on the next silver bullet.

 

Conclusion

I'm not there yet, but I am making progress ;-)

There you have it, this is my shortlist. The books on the list offer you a very broad amount of universal tips, techniques and methodologies one can use in business. The first one is there to give you a general idea, the second one specializes in a very important aspect of doing business/management, and finally the last one reminds you of the fact that one has to be a little bit conservative when reading in on "The next big thing™".

I hope you enjoyed the post, and if you think the list can be improved (taking into consideration you can only have 3 books), please leave your suggestions in the comments !!

Bookmark and Share

Motivating people

by Tom 13. December 2010 07:43

Bookmark and Share

Tags:

Development | Howto

Override interface mappings and creata a generic entity version filter

by Tom 20. April 2010 15:02

Introduction

For one of my customers I needed to have some kind of versioning for a whole bunch of entities on my database. Since I use my very own MvcExtensions framework, I wanted to include a functionality which would automatically filter all entities based on this interface :


    public interface IVersionAware
    {
        string Version { get; set; }
    }

In short, I only want to get the entities of the current version through my repository. This interface would then automaticly imply that all data could be filtered by setting a version filter.

I took me quite some time, but spending a weekend at the Dutch coast cleared my mind a bit, and after the weekend I managed to get it working...

The void (tm)

More...

"Var keyword is for JavaScript" - about using the var keyword & other coding guidelines

by Tom 31. March 2010 04:28

Introduction

Today I was reading an article on Codeproject, and I was really astounded by the way some people rate articles and give comments...

It was an article about someone who had implemented a simple service locator which contained the following code sample :


using System;
using CuttingEdge.ServiceLocation;
using Microsoft.Practices.ServiceLocation;

public class Global : System.Web.HttpApplication
{
  protected void Application_Start(object sender, EventArgs e)
  {
     // 1. Create a new Simple Service Locator container
     var container = new SimpleServiceLocator();

     // 2. Configure the container

     // Register a delegate that will create a new
     // instance on each call to GetInstance.
     container.Register<ISamurai(() =>
     {
        var weapon = ServiceLocator.Current .GetInstance();
        return new Samurai(weapon);
      });

      // Register a single object instance that always
      // be returned (must be thread-safe).
      container.RegisterSingle(new Katana());

      // 3. Register the container to the Common Locator
      ServiceLocator.SetLocatorProvider(() => container);
    }
}

Which seems quite obvious to me. Since I noticed a comment titled 'my vote of 2', I was curious why this article would be voted such a low score (2 out of 5). I checked the comment and I was astounded:

Please note: the keyword "var" is supposed to be used with anonymous types. You should not use it for anything else. Otherweise please start
programming java script

More...

Screencast: Build an Asp.net MVC application quickly using MVCExtensions

by Tom 29. January 2010 20:16

Introduction

This is my first screencast for my MVCExtensions project, it shows you how to get started and build a simple tasklist.

PS: This is the direct link to the powerpoint used:
http://docs.google.com/present/view?id=dgt3mk3c_6fmhrd9c5

Some background info

This was my first screencast, and it took me about 7 attempts to finally get it to a point where it was more or less acceptable. For my sixth and seventh attempt I finally found some good screencap software : BBFlashback Express.

Anyway, this has been an interesting experience, and now enjoy mvcextensions !!!

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...

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