We started using WCF in our project recently.
The vision (read architecture) was good when people (the likes of Don Box) were speaking about WCF.
However after using it and getting my hands dirty, I really doubt if the implementation really lives up the expectation set by the vision.
There has been a quite a few issues with WCF, but the one I ran into yesterday was proof that Microsoft has compromised on people aspects (atleast at the developer level). The vision still seems to be good. People like myself are getting into Microsoft development teams (Core teams, I believe WCF is one of the core elements of the Framework). This is what I saw yesterday.
I wanted to write my own ServiceHost so as to apply the WCF configuration myself. I was rather wild when I learned that configSource attribute is not supported on any of the WCF configuration sections. And if I really had to load the configuration from an external source I had to reinvent the whole WCF configuration approach myself. Source: http://blogs.msdn.com/drnick/archive/2006/12/04/overriding-the-default-configuration-file.aspx. Well that’s not what I wanted to blog about.
The ServiceHost class contructor (or one of it’s base class’s) call ApplyConfiguration which happens to be a virtual method. Oops, constructors calling virtual methods, I thought that was not encouraged. I decided to google on this and found that I was right. The good folks from Microsoft have written about this here and here. In fact they found it reasonable to include it as a FxCop rule as said here. But only for folks outside of Microsoft may be. They went ahead and violated their own rule. The irony is that it slipped out of the design, design reviews, development, development reviews and testing. ServiceHost happens to be one of the core classes of WCF.
The bottomline is that Microsoft is compromising on the process (the fact that this one slipped thru all the reviews and testing) for getting stuff out early, as well as people. Not so good news.
Recently, Prakash went in for the ISO 9001:2000 periodic surveillance audit.
The audit (as I understood from Prakash) has been just the opposite of the wisdom laid out here.
"Somehow the customer has been neglected in our eagerness to predict and control software development." Metrics have taken precedence over the customer.
You know The bottomline has been compromised when the auditor wants a metric in place and answers "So What!" to the point that "Customer is happy! (Even without the metric and you not heading anywhere towards The Goal with the metric)". Any metric which doesn’t give a measure of The Goal is just a waste of your precious time. Any process which doesn’t enable development and becomes a hindrance (You know this, when you have to do somethings for the heck of It – Mainly to shut the process folks) should be seriously thought about.
I feel that Organization wide process groups (call them SEPG, OPG or whatever and whichever organization you worked with must have had one) are beginning to miss a point, they must enable the teams to achieve ‘The Goal’ and not come in as a hindrance. The moment this happens they are more of a pain point than anything else.
Focus – "If you chase two rabbits, both will escape." – Anonymous
Think! – "The happiest people are not the people without problems, but the people who know how to solve their problems." – Robert Seashore
See the opportunities – "Opportunity’s favorite disguise is trouble." – Frank Tyger
Develop good work habits and attitudes – "Motivation is what gets you started. Habit is what keeps you going." – Jim Ryun
Don’t let criticism crush you – "Critics are like eunuchs in a harem: they know how it’s done, they’ve seen it done every day, but they’re unable to do it themselves." – Brendan Behan
Don’t make the mistake of figuring out how to do something after you get a customer who wants the service – "Don’t learn the tricks of the trade… learn the trade." – Anonymous
Never forget why you’re doing this – "He who has a why to live can bear almost any how." – Friedrich Nietzsche
Be willing to take calculated risks – "Don’t be afraid to take a big step if one is indicated. You can’t cross a chasm in two small jumps." – David Lloyd George
Start even when you don’t have complete information – "If all difficulties were known at the outset of a long journey, most of us would never start out at all." – Dan Rather with Peter Wyden
Focus on your strengths, not your weaknesses – "Do not let what you cannot do interfere with what you can do." – John Wooden
Ask for business – "Ask and it shall be given you; seek and ye shall find; knock and it shall be opened unto you." – Bible, Matthew 7:7
Don’t be afraid to make mistakes – "Good judgment comes from experience and…experience comes from bad judgment." – Anonymous
If you discover you’ve been wrong, stop the damage immediately – "No matter how far you have gone on a wrong road, turn back." – Turkish Proverb
Persist – "A chicken doesn’t stop scratching just because worms are scarce." – Anonymous
Be open to changing the way you work – "If you do the things you’ve always done, you’ll get the results you’ve always gotten." – Anonymous
Keep pushing, even in good items – "Even if you’re on the right track, you’ll get run over if you just sit there." – Will Rogers
Compiled from http://www.dietsoftware.org/habits.shtml. Go ahead read the full article.
We (I and Sendhil) conducted a 5 day Agile Software Development Session in our Organization last week. As part of the Agile design session, Sendhil had a slide "Empty your cup". Unless someone agrees to iterative design and development, Agile design is a very controversial topic and to make sure people are ready to listen, Sendhil talked about the Zen story.
Story: "You cannot learn anything if you already feel that you know."
There was an American professor who had made a lifetime’s study of the Japanese tea ceremony. He was the western expert. He heard there was an old man living in Japan who was a master of the tea ceremony. So he made a special trip to Japan to see him. He found the master living in a small house on the outskirts of Tokyo and they sat down to have tea together. The professor immediately started talking about the tea ceremony, his study, all he knew about it and how he was looking forward to sharing his learning with the old man. The old man said nothing, but started to pour tea into the professor’s cup.
While the professor talked, the old man continued to pour the tea, the cup filled and the old man kept pouring. The tea split down the sides of the cup in a stream onto the floor, yet the old man did not stop. “Stop!” said the professor. “You are crazy. You can’t fit any more tea in that cup. It’s full.”
“I was just practicing,” replied the old man, “for the task of attempting to pass learning to a mind that is already full.”