Friday, November 6, 2009
Tough discussions
Of course, from time to time discussions can get tough, really tough! Its not just me (I hope), comes with the job.
In many cases, unfortunately not all, what really works for me, is when I take a step back, go back to common ground, return to what we both agree on and from there slowly, with full understanding of the other parties point of view, move forward. I will try, really thoroughly try, to understand his point of view and their pros and cons. Then, and only then, when you really both feel that you understand his point of view move to your's, open mindedly and try to compare the two scenario's and see why not what your differences are about.
Try it! Sounds easy, it's not!
I bet you guys are just having not the same (background) information or have a different meaning of the same word or jumping to conclusions to quickly.
In short: focus on what you have in common, first!
Have a look at my comedian 'George Carlin' about 'common things we share'.
Focus on what is the same not on the small things that are different, to start with!
Happy debating!
Thursday, October 15, 2009
Know Your Business Forces (Architecture, Modeling, Strategy)
The architecture of your business, information systems and it infrastructure is the result of the company's dynamics. Explicitly or implictly they are related!
Any architect, but particularly a consultant needs to quickly understand the dynamics.
For me, one of the easiest ways to understand the company dynamics is to understand Porter's five strategic forces:

May the (5) forces be with you!
Effective Communication (Business vs IT)
Particularly appealing to both Business and IT is challenging.
Searching for insights and ideas I found the movie below.
Not only does he perfectly explain why communication is not just a matter of telling your message. He also demonstrates this while sharing message. He sure does gethis his message across!
The main answer: frame of reference!
Particularly architects when talking with business people and technicians need to be aware of the different Frames of Reference.
Enjoy and COMMUNicate :)
Monday, October 5, 2009
Business Rules Rule!!! (Modeling)

- Because detailing can be postponed so you can focus on the important stuff;
- Because they are heavilly subject to change. You should always seperate what will stay the same from what will vary. The only way to cope and manage change; Both in your IT solutions and business documents.
- They are subject to discussion; therefore identifying them allows you to focus on the important stuff, get your work done and make results.
- Any formal technique makes the distinction (bpmn, uml. etc.)
- either, a business rule makes a Classification;
- or, a business rule does a Computation;
- or, a business rule does a Comparison;
- or, a business rule do Control; (think of if statements);
- Basically a business rule is something that lets you make a business decision.
- Identify your business decisions and continue don't focus on rules to start with!
- Separate your rules from your other main business process flows and code.
Thursday, October 1, 2009
Master Data Management (SOA)
Sunday, September 27, 2009
Business Process Redesign Principles (SOA)
From this I can conclude that the nice thing - I actually have to say the only way - about SOA-project is the business oriented approach to be taken.
Then when you take a good look at the current business processes you *will* notice that the process needs to change either because:
- the process is not inline (anymore) with the current business strategy;
- with S.O.A. comes workfow and integrated systems that will definitely impact and change the business process for the better.
When improving business processes its usefull to have your principles for change ready.
Here is my current list of principles that I try to apply:
- Redesign the process first, then automate it;
Bring downstream information needs upstream;
Capture information once at the source and share it widely;
Ensure 100% quality at the beginning of the process; - Provide a single point of contact for customers and suppliers whenever possible
- Consider every handoff as an opportunity for error. Have as few people as possible involved in the performance of a process;
- Ensure a continuous flow of the "main sequence" (those activities that directly add value to the customer- nothing should slow the value-added steps)
- Look for places to use or create a "generalist" instead of multiple specialists;
- Push decision-making down to the lowest levels that make sense;
- Use simulation, practice, or role play to test new process designs risk free
Happy Redesigning!
Porter's Valuechain And Primary Processes (Modeling, SOA)
But, when a process spans multiple departments, you need to transcend to a common inter-department process level to start redesigning the business processes.
For me, again particularly with a SOA project, this is Porter's Value chain. From a priority's perspective I tend to start with the Primary Operations to always be followed by describing the primary processes per primary activity and interlinking them.
"Wouldn't it be interesting to combine the primary activities with the main processes?" I was thinking for a while.
Though Today it was time for action! Although its only a draft (my precious Sunday is already over) the draft version fictitious below does make clear what I had in mind.
To summarize what this fictitious model tries adds apart from a true classical Porter's Value Chain:
- its shows the main processes per primary activity;
- its shows the main relationships;
- its shows intuitively the activity's size (the bigger in the picture the bigger (budget?) in the company);
- its shows the main responsibilities: for example sales manages the contracts as well!
- it shows the main processes goals.
The model really is a mix and match of other models (for example Business Process Modeling Notation). However, I really feel this model meets its goal: high-level displaying primary activities and their relationships.
What do you think? Useful for (SOA) projects or not? (Click to enlarge)

What I was basically missing in Porter's model is how the activities relate and in what portion they add to the margin.
What I have basically done is merge the primary processes of porters Value Chain with the primary activities identified.
Happy Modeling!
Thursday, August 6, 2009
Team Foundation Server Requirements Management (tf30224 Exception)

For my current client, I want to use Team Foundation Server.
Sunday, July 12, 2009
Doen als een architect
Career building for nerds: improve your posture
- How our message is received has a lot to do with our posture (how we move, posture is not something static); Think about a presenter looking at the ground, looking like a nerd or looking like a true leader facing the crowd...
- How our message is received has a lot to do with our voice, and of course that has a lot to do with how we breath.
- How our message is received has a lot to do with the willingness of the other person. Typically a competitor is listening completely different to your story than a colleague would. The part that you can influence your audience is what I call 'Group Dynamics'.
- The last year I have learned that multiple friends of mine are really into yoga. Not recently but actually already for years and years. Yoga has a lot to do with posture (and breathing or course);
- I know a few physiotherapist (mainly via my girlfriend who studied to be one);
- I think my posture can and should be really improved;
Monday, July 6, 2009
Yourdon is back, alive and kicking! (Modelling)

If you have been studying Software Engineering in the 90's like me you cannot have missed Yourdon's Structured Analysis.
Sunday, June 7, 2009
Cern, Darwin and Creationism
Today, I had an interesting discussion about the Beliefs.
Apparent subjects passed: Darwin, Creationism and the Cern project. Subjects that for some reason go well together.
I am a big fan of Middas Dekker. Nobody seems to be able to make things clear and simple in a humorous way like he does. You can see him (part1, part2) in action on YouTube: "Creationist Ark Builder vs Atheist Biologist" (don't forget to enjoy FatBoy-Slim!)
Can't emagine you have not heard about the Cern project. If so, its an unbelievable complex and big project trying to simulate the construction of the earth mostly based on the theories of Einstein, as I understand. As it seems, one of the foundations of this experiement is that you can have matter created from light under perfect and extreme conditions.
There is a twelf part introduction to the Cern project, again, on YouTube. The style is typicle American but the answers given by the professor are really clear and subtle and concrete enough to enjoy. Brainfood! You can find the 'The CERN Experiments, Science & Fusion' series here.
Did you know, atleast that is what the professor teaches us, we don't now how gravity works? Enough information about gravity on WikiPedia but the point does make me curious.
Perhaps you will enjoy!
Saturday, June 6, 2009
VMWare: Increase Extend Harddisk Size
VMWare just beats Microsoft's Virtual PC in so many ways...
When I started using Virtual Machines I limited the virtual size of my harddisks. Something I don't do any more: I just give every Virtual Machine a virtual 200 gigabyte maximum size so I never have to increate it.
Ofcourse, when you least need to you run out of space. In that case you can do two things:
- Use the command-line
- Use VMWare Converter (use google), my tool of choice (use simple install)!

I Have A Dream (UAZ - 469)
One of my dreams is to experience traveling the world with a Russian UAZ 469 Jeep, that is:
- Buy new in russia ($9000) and drive back n to Holland to keep in my Garage; Most easy but expensive and less fun! I knew that garage would come in usefull sometime (apart from storing my girlfriend stuff!)
- Buy a used one in Russia and drive to Holland to keep i my Garage; To haggle in Russia and make sure I get good price and quality I need somebody who speeks Russia and who I can trust; Need to have knowledge about the car in advance;
- Have the car register in a country outside Holland (since I will use it only abrought);
- Have an excellent insurance;
- I have seen a really cool complementary trailer I really want to use;
- Perhaps there is a oldtimer-society somehere who specializes in these type of vehicles?
- There is a new verion 'the hunter' which I have come across, but from the outside I don't like it as much as the original, yet;
- Have my girlfriend design and paint a happy look, don't want to get in trouble because it looks militairy and its more fun!
Open brief aan de SP
Visual Studio Database Edition is improving! (DataDude)
- it was really had to regenerate the database from your code (this is what I do for integration tests where I want to have the same starting point, that is: empty, latest version, database filled with testdata according to the same logic each time;
- No easy way to distribute your database model as part of your setup-project;
- You needed a local database instance for runtime-verification (can't move it somewhere else easily -without a proxy workaround-);
- SQL Server 2008 was not supported;
- There was no dependency viewer and refactoring was very limited;
- Unit-testing of stored procedures was supported but had room for improvement;
Finally the moment is there, the final version of the Visual Studio Team System 2008 Database Edition GDR has been released to the web.
Although the name "GDR", which stands for "General Redistribution Release", implies otherwise, this really is a complete new release, based on a new architecture. We have taken the architectural changes from the Rosario project (Visual Studio Team System 2010) and rolled them forward in time. Rolling forward these changes help us align the GDR release with the upcoming Visual Studio Team System 2010 release and provide numerous new features and extensibility points in this release. If you would compare the GDR release with the "Visual Studio 2005 Team Edition for Database Professionals" or "Visual Studio Team System 2008 Database Edition" you will agree this is a completely new product!
The key architectural changes
- Model based architecture - Everything underneath the covers is based on a true model representation of the SQL Server schema. This facilitates a true offline declarative database development system where the source code defines the shapes of the schema objects.
- Models are implemented by Database Schema Providers, DSP's for short. - The introduction of a provider model enables multiple things at once. First of all the decoupling of release vehicles. For example when SQL Server will release a new version or adds new functionality in a service pack, like they did in SQL Server 2005 SP2 when adding "vardecimal" support, we can simply update an existing provider or provide a new one in case of a new SQL Server release. Overtime we will go to a model where the SQL Server providers will be an integral part of the SQL Server release. The provider model is also a key extensibility point, allowing 3rd parties to extend database project ecosystem and add support for other database platforms in Visual Studio Team System 2010.
- Tool extensibility - In this release external tool writers have full access to the T-SQL parsers (for SQL Server 2000, 2005 and 2008), the SQL Script DOM and the schema model (when inside Visual Studio). This adds on top of the ability to write extend the tools inside the platform. You can extend T-SQL refactoring by writing your own refactoring types (operations) and refactoring targets; add T-SQL Static Code Analysis rules, data generators, data distributions and test conditions. Database Projects (.dbproj) now provide a truly extensible declarative database development platform.
- Separation of BUILD and DEPLOY. - The separation of build & deploy makes it possible to deploy the output of your database project to many different targets and different points in time. Build now produces a single artifact file hat describes the schema inside your database, called a .DBSCHEMA file. This file is used by the deployment engine to deploy your schema.
- Standalone Deployment Engine. - The inclusion of a standalone and redistributable deployment engine makes it possible to deploy the output of your database projects (.DBSCHEMA files) to a target database without the need of having Visual Studio Team System Database Edition installed. This enables key scenarios like the inclusion of database schema deployment as part of your application installation.
All these architectural changes enable many new usage scenarios and interesting new features. So lets walk through the list of new features and major changes.
Feature list
- Project System
- Full support for SQL Server 2000, SQL Server 2005 and SQL Server 2008 support.
- All database objects are now modeled, therefore they are compared and part of deployment. The side-effect of this is that there are no more objects that need to be stored in pre- and post-deployment scripts.
- Server vs. Database projects
- This change allows you to model the different behavior of shared and server level objects inside SQL Server vs. user database level objects.
- Partial projects
- Partial project allow you to share implementation between projects, with a single definition of the code
- Composite projects
- Composite projects extend database references, allowing you to add objects from other project to the name database schema namespace. So you can compose your database from other projects and/or DBSCHEMA file references
- Database references using literals, in addition to SQLCMD token support
- The addition of literal support facilitates that you do not have to change your code of 3-part names, when do do not require the flexibility of name independent deployment
- Reference support for XML Schema Collections to include .XSD files
- Enables single sourcing of XML Schema Collections from an .XSD file which itself can be used by other developers or tools.
- Reference support of SQL-CLR projects and / or SQL-CLR assemblies
- Enables the inclusion of a SQL-CLR project or a binary, to represent a SQL-CLR assembly. Like XSD references, the goal is single sourcing of artifacts inside the development environment
- Import Schema and Import Script is now available through DTE
- This allows the creation of macros or programmatic add-in to drive these common tasks.
- No more "DesignDB"
- The change to a fully model driven implementation makes the need for a local SQL Server database instance obsolete. Having a sandbox for your development environment is still am advised practice though, so you can test the changes independently and in an isolated environment.
- Build
- Build validates the consistency of the schema model and produces all the files that you need to deploy the database
- Deploy
- Deploy takes the output from the build stage and deploys this information based on the settings supplied
- Deployment settings are now isolated in to the .SQLDEPLOYMENT file, which allows you to standardize and re-use the deployment settings
- Most of the "Schema Compare" comparison options are now available as the deployment options, to increase the symmetry between the two
- VSDBCMD.EXE, is a command line deployment tool, which enables the standalone deployment of Database Project
- Schema Compare:
- Compares any combination of live databases, Database Projects and .DBSCHEMA files
- Session level option support, which can be persisted and re-used
- Object type level filtering allow you to exclude object types from the comparison
- You can now quickly navigate back and forward between difference via the toolbar and optionally configurable keyboard shortcuts
- Substitution of SQLCMD variables, allows for the comparison of projects that rely on the use of SQLCMD variables
- Schema Compare can now be executed through DTE
- Data Compare
- Support for SQL Server 2008 data types
- Data Compare can now be executed through DTE
- Refactoring:
- New refactoring types: Expand Wildcards and Fully-qualify Names (in addition to Rename, Move Schema and 3/4 part name refactoring)
- The patented "preservation of intend" functionality makes is possible that the Deployment Engine will deploy renames and move schema operations as actual renames and move schema operations, instead of a DROP / ADD operation.
- Extensibility enables the creation of your own refactoring types (operations) and refactoring targets.
- Database Unit Testing
- Added support for SQL Server 2008
- Data Generation
- BulkCopy based inserts in addition to the existing INSERT data sync
- Sequential Databound Generator is now included in the product
- T-SQL Static Code Analysis
- Execute analysis using MS Build and/or as part of the VS IDE build process
- Including the ability to write you own T-SQL Static Code Analysis rules
- Extensibility
- Public full fidelity .NET based T-SQL parser for SQL Server 2000, 2005 and 2008.
- Public .NET based SQL Script DOM, for programmatically generation of SQL code (equivalent to the Code DOM in .NET)
- Access to the Schema Model from within Visual Studio, this enables for example ability to write code generators based on the schema model.
- Feature extensibility:
- T-SQL Static Code Analysis rules
- Refactoring types, these are the refactoring operations
- Refactoring targets, these are the sources that you want to update as part of a refactoring operation
- Data Generators
- Data Distributions
- Test Conditions
Wednesday, May 27, 2009
Workflow 4.0 State Machine (StateMachine)
First impresson: I don't like it at all !
They have to be kidding! This looks more like a hack to me !!!
Not the kind of code that I would like to show to my boss at the end of the day!
They seem to have 'hacked' it with a 'pick' activity (basically an if statement) that you can have handle a sequential workflow (so far so good) but you have to build the transitions yourself! This feels really really wrong! For me a reason not to use it because this is really unusable!
Look for yourself, I might be overlooking something....
You can find the sample which is part of the 'Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4.0 Beta 1' in the folder: "\WF\Scenario\StateMachineWithPick"
What do you think?
According to MSFT: "Roman is right that a brand new State Machine is not included in WF4. However, we also believe that with the new Flowchart modeling style that lets you model your processes with loops, that common scenarios where people had to resort to State Machine in WF3.x should now be covered with Flowchart. " (see: http://social.msdn.microsoft.com/Forums/en-US/wfprerelease/thread/d4ff73d8-ed3f-4615-b9ac-47094cbc3b9c)
I don't want a loop, its soo different!
Let me know what you think....
Saturday, May 16, 2009
WCF 4 Disappointments
Just learned that excactly the two things I was looking forward to the most, will not make it to the RTM of WCF version 4.
That is:
- Local Channel: We won’t be able to deliver the high-performant in-AppDomain channel in time for .NET 4. The beginning of a local (also known as 'in-proc') channel shows up in the Beta 1, but it’s in its early stages and unfinished; given resources and timing, the local channel capability will be removed in .NET 4 and won’t be present in the RTM bits.
- Durable Service Host Extensions: WorkflowServiceHost provides an extensibility mechanism called DurableServiceHostExtension that allows host application developers to receive notifications for state changes of the service instance and perform control operations specific to the service instance. This general extensibility mechanism will likely go away in .NET 4 RTM in exchange for a more scoped, but robust, functionality.
Luckally, there is plenty of improvements to look forward to, however.
Tuesday, May 12, 2009
Application Facade

Today, I have been reading the 'Service Architecture Pocket Guide' again but more closely.
According to him (I quote): The application facade class is responsible for talking to the domain model and getting the information to the presentation class in exactly the form that thepresentation class requires. In this way the presentation class needs to know nothing about what is going on inthe model, it only handles the UI work.
But how in the world would your Business Layer know your Application Requirements?
I would implement an Application Facade as part of my Application and make a Business Facade part of my Business Layer.
Friday, May 8, 2009
Quote about understanding
Show me and I will remember
Involve me and I will understand
- Confucius -
I found this quote on the blog of the problem solver.
See: http://msmvps.com/blogs/theproblemsolver







