*Ranting ahead*

yelling

I've been at Microsoft a little over a year and a half. I'm very excited about a number of the new technologies that are here and on the coming roadmap. Microsoft is at a point where it's more open than it's ever been. The level of community involvement in projects like the ASP.NET MVC framework, IronRuby and much more has been historic.

I get that it could always be better.

I get that many people in the community want to be contributing source back to some of these projects.
I get that many people want to be more involved and want their specific feedback in every product.
I get that many people are frustrated by the rate of change even if they recognize that there is change.
I get that many people are angry about this feature or that feature in some product.
I get that.

I FEEL THE SAME WAY! I'm trying to get into some of the TAPs (Technology Adoption Program) so that I can get closer to the product teams and give them all of my feedback in a more direct fashion. I'm shouting internally about all of my feedback on the various products and technologies. I'm shouting internally about all of my feedback on the messaging, direction and overall strategies.

As many of the ALT.NET leadership know - I'm firmly in their camp. I want the best practices of agile software development and the best tools that can be brought to the table to lead in the industry and shape the future. I'm first in line to say that the drag and drop/voodoo/snippet driven demos that show a product rather than train the audience are crap and need to go. I'm trying desperately to change that and raise the bar on all presentations done at Microsoft.

What I don't get is that just because someone fits into one of the frustrations or rants above, that they feel that they can say that all of Microsoft sucks or that a particular product sucks just because it doesn't fit their exact need or hasn't incorporated their exact feedback.

What brought on this rant is the Vote of No Confidence on the Entity Framework. That's the nuclear option. It's not perfect so kill it. This is in a long line of bombastic statements that I've been on the receiving end of. It's not a new thing. I've got a tough skin. But it's getting old.

I'm reminded of one of my kids when they wanted something and I asked them what the magic word was and they said "NOW". I put them in a corner and they didn't get the thing that they were asking for.

I'm reminded of another of my kids whose favorite lunch meat is Louis Rich Turkey Cotto Salami and he won't eat ANY other lunch meat. He'll go hungry rather than eat normal Cotto Salami or even another brand of Turkey Cotto Salami.

I can say un-abashedly (and I'm positive that the product team would agree with me) that the Entity Framework is not perfect. Neither is any software out there in the world. It was created by humans therefore it's not perfect. Additionally, even if it's an exact fit in a given context, it's not going to work for someone else in a different context. That's why there's a ton of unit testing frameworks, ORMs, scaffolding frameworks, AJAX frameworks, CSS frameworks, text editors and the like. It's not that any one of them suck - they are all good in some form or fashion. Each of them was created to work a given context. There are some that are broader than others. But that doesn't make one better than the others. That just means that they are more generalized and kinda fit more situations.

All of that being put out there, I actually agree with most of the points in that the vote of no confidence brings up - so does the product team! You can read their response here. I'm also fine with a petition. It's a solid way to point out that there are a group of people that are united.

What I disagree with is the way in which it's presented. The language of "Vote of No Confidence" is intended to start a fight and is long hand for "You suck". That's very disheartening to anyone who hears it regardless of how thick their skin is.

I'm not upset that people are giving feedback. I want them to give feedback. But here's the deal - do it in a grown up way. My way or the highway doesn't sit well with anyone on the receiving end. There's a WIDE path between being constructively critical and downright offensive.

The product team has to be more politically correct than I have been here but damn it - give them some credit. They are smart guys weighing a lot of different variables, concerns, customers, other product teams and a ton more. No, they are not perfect. But give them some credit. Every decision and feature represents a lot of time in dev, testing, translations and compromising timelines and other features.

It took me a while to realize, the "vote of no confidence" style tactics are the reason that it's so hard for Microsoft to release anything. Every tiny crappy little utility that would take you a week to crack out in your basement that Microsoft releases has to be available in 88 languages, completely accessible by anyone with any disability, bullet proof, hacker proof and walk on water or it's going to leveraged as a way to say that Microsoft sucks. There is no other software in the world that is held to this standard.

So what's the solution? I'm definitely not saying to lower the bar. But I'm saying let's look at some realities through the possible solutions.

Don't do Entity Framework because we haven't gotten those 5 things right?
If we don't, Microsoft is not providing a full framework and will get dinged for that.

Wait until we get those 5 things right?
If we do, Microsoft is taking too long to get something out and we get dinged for that and 5 more things will pop up. This design by committee idea is a lose-lose because there are too many compromises. That's how we ended up with XML Schemas, SOAP and WS-* (or WS-Death* as some call it) which are also things that the same people rail against.

Adopt one of the other open source projects as official?
Even if we could by legal means, we'd pick the wrong one according to someone regardless of which one we chose. And we would be cast as not being innovative and dinged twice.

Release it as is?
Well - we are obviously already under attack as it is so why not since no other solution is going to make everyone happy anyway?

heaven under constructionMicrosoft will provide a robust and quality solution. It might or might not be close enough for you on your particular project to use. But it will satisfy a wide swath of the projects that are out there. It's already something that other projects are starting to build on top of very successfully. It's a huge step forward from ADO.NET Datasets which, while some don't agree, better than the previous generations and so on and so forth.

ALT.NET is about having alternatives in .NET - right? This is a choice. It's a good one in most respects. The fact that it's not perfect does not mean that it's crap. It means that there's room for improvement. Notice the difference in the vocabulary there? The fact that it's not perfect means that you should point out what's right and what's not right about it and move on.

Just do so in a constructive manner.

  #  kick it on DotNetKicks.com   Comments [24]

« My Daily TED | Main | Solid Error Messages »

Thursday, June 26, 2008 7:32:33 PM (GMT Daylight Time, UTC+01:00)
I think you hit the nail on the head with this post. Feedback and critisism is good, but only if done in a constructive manner.

My perception is that there is a vocal group that believes the weight of the software development world is on their shoulders and their shoulders alone. Without their guidance, it is impossible to write good software. Unfortunately, the only way the seem to be able to communicate is by telling people they suck. :-\

I would also like to point out that the people who started / signed that petition don't fully and accurately represent the community.
Thursday, June 26, 2008 7:41:40 PM (GMT Daylight Time, UTC+01:00)
The jist of the VoNC document to which you refer is, IMO, basically this: "We urge Microsoft customers who will be considering entity architectures for their software application projects to be aware of the following unresolved issues with the impending first release of the ADO .NET Entity Framework"

'The language of "Vote of No Confidence" is intended to start a fight and is long hand for "You suck".'

I strongly disagree. Even stretching things a bit, at most it might imply "EF v1.0 sucks", but says nothing about you or about Microsoft sucking. And it is not intended to start a fight but to start a change.

'As many of the ALT.NET leadership know - I'm firmly in their camp.'

So, why not add some of the ALT.NET leaders blogs to your blogroll?

'Just do so in a constructive manner.'

I'm sure the ALT.NET community would also in turn appreciate some constructive feedback as to how to be constructively critical when they clearly feel EF is out of touch with their opinion of "best practicies". Sprinkling in compliments about small things that ALT.NET feels EF got right is, IMO, very disingenuous. It's not like ALT.NET is firing out VoNC's left and right about multiple MS products. They obviously feel that EF is a huge misguidance since it spawned the first VoNC.

- Troy
Thursday, June 26, 2008 7:55:12 PM (GMT Daylight Time, UTC+01:00)
As I said on Frans Bouma's blog, one of the great benefits of Microsoft offering a solution - good or bad - is that Microsoft will automatically validate the need for such a solution in the minds of many CIOs/CTOs/Managers. Microsoft will spend millions marketing the need and usefulness of DDD and O/RM solutions. Regardless of what you think of the actual solution provided, this raising of the awareness of the vast developer community provides tremendous value. Go look at adoption rates for NUnit, MBUnit and the like - they all went up after Microsoft released MSTest. DotNetNuke adoption skyrocketed after all the "portal" features were introduced in ASP.Net 2.0. I will guarantee you that adoption of other O/RM solutions will also increase after the release of EF. What really kills me is that many who are complaining about Microsoft's solution are pointing at Spring and Hibernate as great solutions. Great. Go use them and take your holier than thou attitude with you because, like Josh, I am sick of hearing it.
Thursday, June 26, 2008 8:04:07 PM (GMT Daylight Time, UTC+01:00)
@troy - good call on the blogroll. I'm going to agree to disagree with you on some of your other feedback - as I stated in my post.
Thursday, June 26, 2008 8:16:02 PM (GMT Daylight Time, UTC+01:00)
I will agree that positive feedback is definitely integral to the success of the community. Microsoft has a ridiculous amount of undeserved criticism when they release a product -- It's a popular thing to be against Microsoft. That being said, I think that the VoNC document is more positive than is being represented here. The title is slightly edgy but honestly, what do you think gets more page views 'Constructive Feedback on Entity Framework' or the current title?
Thursday, June 26, 2008 8:29:08 PM (GMT Daylight Time, UTC+01:00)
Spot on. I first commented on it at Steve's blog and I'm glad to see others frowning on this "No Confidence" approach: here and here.

I'm all for helping to educate and inform the community and customers of EF pros/cons but in the end, we don't need "saved". Let's have some faith in the community that we'll evaluate these pros/cons in our own environments and situations and make resolute decisions about EF's likely success.

I also strongly believe software doesn't truly become great until its been rev'ed a few times. A software house (not just Redmond) is typically an insular environment. They don't know [precisely] what will gel until actual customers work with it for a few months. Was Hibernate great software v1.0 in 2002? No. It evolved. People provided feedback. It got better.

Informing potential users about the pros/cons of EF and the history of OR/M tools is fantastic. Torpedoing a technology release because the vendor didn't institute your requested features...not so much.
Thursday, June 26, 2008 8:31:32 PM (GMT Daylight Time, UTC+01:00)
@ryan I understand the intent. I said in my post that I'm in favor of the points being made and even the petition. What I'm not in favor of is the delivery.

Perception is reality and the way that it's percieved is very antagonistic verses constructive. That's the whole point of what I'm trying to say.
Thursday, June 26, 2008 8:51:40 PM (GMT Daylight Time, UTC+01:00)
@Jeff I don't see how it's torpedoing a technology. Stating "we respectfully submit a Vote of No Confidence for the ADO .NET Entity Framework in its current state" does not say "please cancel the project and give up". There are some brilliant people working on the project and I'm sure it's incredibly difficult to implement a solution that fits for everyone. Voicing potential concerns early on only helps to make the end result that much better -- at least for me, that was my intent in signing the petition.

Thursday, June 26, 2008 9:04:01 PM (GMT Daylight Time, UTC+01:00)
I for one give you and others in roles like you for Microsoft kudos. There is no right or wrong there is this larger than life entity progressing forward and its the middle man who helps make that progression move in a positive direction. I for one have submitted my perspectives on various isses, but I have also seen results over time. The key is over time. Keep your head up, and keep up the good work. Its people in your shoes that make progress for people like me.
Thursday, June 26, 2008 9:28:14 PM (GMT Daylight Time, UTC+01:00)
@corey - Well said! And Thank you!
Thursday, June 26, 2008 9:50:06 PM (GMT Daylight Time, UTC+01:00)
Nice post Josh, and I can agree with the majority of what you’ve written here.

There are upsides and downsides to transparency that we are all learning to live with. There is a lot of transparency in open source or community releases of frameworks. On a smaller scale, working on Agile projects gives unprecedented transparency with clients and customers. In the vast majority of instances this transparency helps people to communicate early and often and to avoid big mistakes – or if there is a mismatch between expectations and reality, that can be seen and the project can be delayed or scrapped before very long. But sometimes, when feedback goes unheard or is ignored, things can be even worse than when projects were developed in a vacuum – because there was a forum and that discussion can seem to have been actively ignored.

Sometimes well-meaning people disagree, and sometimes they disagree fundamentally. Let’s take drilling for oil in some wildlife refuge as an example. Some say we need the oil, others say it is not worth the risks to the environment. To say one of these sides should go "in a corner" and eat their "Salami" is not helpful. To tell the friends-of-the-forest that drilling for oil "is not perfect" will just get them more upset. If they then stage a rally, press conference or tie themselves to a tree is this then acting in a "not grown up way".

Even if oil companies could devise a way to drill for oil without any impact on the surrounding area, there would be people who believe strongly about their opposition and would continue to vocally and actively oppose this move. And welcome to America and the 1st Amendment.

I agree that the "vote of no confidence" is more about negative public relations than about actually expecting a change. But in that sense the document has already succeeded because dialogue like this blog post is happening, and because people will now think twice before choosing to implement the Entity Framework, and know there are other options out there.

It’d be interesting to see if the "two sides" would be willing to enter into a public debate of sorts – a point / counter-point dialogue of the main issues that divide them. I know this is going on informally in different blogs, but it would be interesting if a neutral party could moderate and keep the discussion going.
Thursday, June 26, 2008 10:23:10 PM (GMT Daylight Time, UTC+01:00)
"If you want to bring down an empire, follow Gandhi not Osama Bin Laden." - me on IRC

I agree with the points of the letter, but not the tone. I think the major failing of the EF team has been to build EF in a non agile manner. The one model to rule them all is always a mistake. I was taken in by EF initially, and became quickly disillusioned.

I'm curious, is EF being built in DevDiv?

++Alan
Friday, June 27, 2008 12:23:54 AM (GMT Daylight Time, UTC+01:00)
In regard to the "Perception is Reality" comment... I know you don't mean this but some of your analogies make it sound like Microsoft is the parent that knows best and everyone who has a different opinion is a disobedient child.

Hopefully people will try to get to the meaning of what is said rather than the way it was delivered.
Anonymous
Friday, June 27, 2008 1:42:46 AM (GMT Daylight Time, UTC+01:00)
I object to the VONC's tone and gist. It's an unhelpful effort despite some good intentions by a few of the folks behind it. (And some of the folks behind it are doing it for no reason other than to hear their own voices ranting...)

It's odd how the folks who are behind the VONC effort are on one hand such proponents of voting with their feet yet aren't doing it in this case.

Those points said, the folks at the EF team have been exceedingly tone-deaf to input from the community. I realize they've taken on the chin by a small group of obnoxious, rabid folks, but the EF team is still missing the ball.

I have a horror story I often relate of an EF team member at the MVP summit repeatedly asking the same question over and over because the answer given to him by folks working in the real world weren't giving him the answer he wanted to hear. The answer given him was pointing out a direction that would have taken more effort to implement, and more effort to get across to the community -- but it was the absolute correct answer for solid development practices.

To paraphrase Twitterspeak, Epic Leadership Fail.

Contrast the EF team's lack of responsiveness to the community with the amazing response by the MVC and Visual Studio teams. They're two teams (among many others) at Microsoft who are getting it *RIGHT*.
Friday, June 27, 2008 1:58:23 AM (GMT Daylight Time, UTC+01:00)
Josh, you suck!

OK, just kidding. I agree with you 100% that it is the absolutist aspect of this debate that is frustrating. In fact, I would even take issue with some of what you've said that comes across that way:

"I'm first in line to say that the drag and drop/voodoo/snippet driven demos that show a product rather than train the audience are crap and need to go."

I'll just make myself unpopular among the purists right now in saying that sometimes drag and drop is *exactly* the right answer. Should all demos be drag & drop extravaganzas? Nope. But not every demo needs to be a 400-level architectural masterpiece either.

I think the more important thing that we need to focus on is tailoring content to the audience. If we're not doing that, then we need to step it up. But I do think there's room for demos of easy building-block stuff, as well as higher-level geeking out. :-)
Friday, June 27, 2008 3:11:17 AM (GMT Daylight Time, UTC+01:00)
Fantastic response. Josh, I think most of us realize the points you make about how hard it really is for MSFT to actually bring a product, even the simplest, to market. There is such a tiny, tiny marketplace that the Entity Framework could not work for from what I have seen. It is just a shame those folks are crying the loudest. Normal devs would just sit in one of their sessions and probably use the law of two feet and go to a session they could use in their day job anyway.
Friday, June 27, 2008 6:20:40 AM (GMT Daylight Time, UTC+01:00)
Great post Josh!

EF has a ton of potential and even with the v1 release, there is a lot that we can do with it better than without it. The problems it has are well documented and discussed. The Data Team is very aware of the desires of the community at large for an improved EF and for the most part I beleive they agree with the comments. I recently started a wish list for features in the EF forums and there were a ton of positive responses. Some really great stuff.

The problem I have with the "vote" is the way it is presented. Its the same problem I have with many who trash EF because it lacks X, Y, or Z or because Microsoft "don't get it". You have to look at the possible motivation of people who do this. Do they really think that this approach is going to make people say "wow, I am so wrong and you are so right. please crap all over me again!". No, of course not.

Is EF flawed. Yes. Is anyone trying to fool or trick anyone? No. Is there a constructive way to communicate? Absolutely.

I am tired of the rantings and it pains me to see attacks again good people who work hard. Attack the philosphy if you disagree with it. But do it in a constructive manner. And for ^%!@# sakes, leave the personal attacks out of it (that last part is focused on a small minority of detractors making a lot of noise).

Friday, June 27, 2008 6:42:01 AM (GMT Daylight Time, UTC+01:00)
I think one of the reasons that people are upset about EF is that everyone was getting so excited about the concepts and the idea of using a fully Linq enabled ORM. The crashing disappointment when we realised that EF repeated mistakes Java made ages ago with JavaBeans was quite intense. Simply put, the EF team delivered a product more suited to the state of ORMs 5 years ago.

The utterly ignored Spring and NHibernate, incredbly successful products which do NOT have the numerous failings of the EF. It seems like all the EF team did was skim a little literature on ORMs and then wander off thinking they knoew it all.

The hubris is astounding, and they're rightly being hammered for it.

I did not originally sign the petition, but having read this post I've decided to add my name. A Vote Of No Confidence in a technology designed around outdated and discredited principles IS constructive, especially given the dismissive attitude of the EF team.
Friday, June 27, 2008 1:03:31 PM (GMT Daylight Time, UTC+01:00)
Its not that suprising that people are unhappy. Microsoft touted this framework as a solution for the domain model.

I remember clearly everyone complained when Linq to SQL came out in .NET 3.0. MS even agreed, and said that a conceptual model would come in the next version in the shape of the EF.

So it would appear Microsoft set out to build a conceptual/domain model/business object framework and ended up with a data centric framework suitable for the data tier only. Thats like planning to build building and ending up with a tunnel. Of course people are upset because they were promised something else.

Me thinks the guilty culprits are the Microsoft NIH attitude and the bloat within the company. Way way too many products going on while the flagship products have fallen by the wayside.

I myself no longer do Microsoft stuff, moved to Linux after 8 years of .NET. Its just sad to see the whole thing crash and burn. I really enjoyed programming .NET in the early days. I got the first preview at pdc, in those days the framework was very simple - you could know almost every class in every public namespace. When I see new crap like DependancyProperty in WPF and ExecutionContext in WF I cringe. .NET has gradually turned into a reincarnation of COM.

The era of static dominance is over the dynamic era has begun.
Josh N
Friday, June 27, 2008 1:58:33 PM (GMT Daylight Time, UTC+01:00)
Except Vi of course; Vi was created without error and is true perfection of mind, body, and soul. Those that disagree merely have failed to achieve enlightenment.
Friday, June 27, 2008 5:02:58 PM (GMT Daylight Time, UTC+01:00)
Well let's not forget here that ALT.NET is pretty much akin to religious zealotry. It's their way or death.

They really really need to get over themselves.

Pfff...
JosephK
Friday, June 27, 2008 5:06:29 PM (GMT Daylight Time, UTC+01:00)
Oh, and go use whatever you want if you don't like EF. Geesh... you're already using NHibernate anyway. I mean really, were you going to change to EF soon or ever? I mean that would be like just so anti ALT.NET to what the man hands out.

Get real...
JosephK
Friday, June 27, 2008 7:00:51 PM (GMT Daylight Time, UTC+01:00)
Joseph - if you look at how Microsoft added testing to Visual Studio 2008, you will see a very different model than with EF. With testing they looked at some of the best ALT.NET/open source projects out there (i.e. nUnit) and followed much the same model (didn't they hire one of the nUnit dudes) so that best practices and proven patterns made it into Visual Studio's implementation.

Look at how MVC is being developed. It is any wonder MVC for ASP.NET looks close to RoR and Monorail. They are taking best practices and proven methods and moving it into a supported and extended Microsoft framework.

EF has seemingly taken a different model and gone out on their own to develop things that have been considered, discounted, and moved on from.

Everyone has their opinion, but EF has been handled and developed in a different and unfortuate way than many other recent MS offerings.
Scott
Friday, July 04, 2008 5:45:05 PM (GMT Daylight Time, UTC+01:00)
When I read all of this I just fell on the floor laughing...

Why? Microsoft, welcome to the club of trying to solve something that you should not be solving...

Seriously. There are things that are just not worth the effort to solve. For example Object Broker, Control Containers (a'la Spring), etc. The reason is because you can't come up with a single solution that fits all. I actually think on these points Java got it right. They don't have one or two solutions they have dozens! And people can choose from their dozens of solutions.

Microsoft needs to get out of developing some software and into the certification business. Seriously, think about it. People want choice and they get it in Java and a host of other open source languages. Java from a language and execution perspective is completely inferior to C# and .NET. Yet Java is alive as a can be. BECAUSE people can choose what they want and how they want.

Imagine if Microsoft decided to say, "hey we will certify that certain pieces of software work certain ways." Then when somebody buys a piece of software and it is Microsoft certified people might think, "ok I guess this software will work."

The certification will not be free and will not be easy. But those companies that want their products to work will do it. And those customers that want quality will want it.
Christian Gross
Comments are closed.
Recent Posts
<March 2010>
SunMonTueWedThuFriSat
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910

Popular Items
Categories
Blogroll

Powered by: newtelligence dasBlog 2.3.9074.18820

Legal

The content of this site are my own personal opinions and do not represent my employer's view in anyway.

Disclaimer: These postings are provided "AS IS" with no warranties, and confers no rights.
Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License.

First time here? Please leave a comment, ask a question and consider subscribing to the latest posts via RSS or email. Thank you for visiting! (hide this)