I’m not a real world developer

I made the mistake recently of reading some of the responses to the ‘Entity Framework Vote of No Confidence’ letter which I’m sure you’ve heard about already.  Granted, I haven’t read them all, but so far only one has been of any real value: The one from the EF team themselves. In fact, they even set up a whole web site to be more open about how they’re designing EF.  This helps to address one of the major underlying problems that many of us have with EF (e.g. It was seemingly designed in a back room somewhere without considering some already well-established best practices that have been use in “in the wild” in production for at least 5 years). This doesn’t let the EF team off the hook though, but at least their response was positive, constructive, and sincere.

Protecting the Castle

However, the real point of this post was to discuss some of the — let’s be honest — downright insulting responses to the letter from noted luminaries in the greater Microsoft developer community space. Consider, for example, Kathleen Dollard’s response.  So far all the responses I’ve read – of which Kathleen’s is representative – the arguments basically boil down to:

  1. Entity/DDD/PI/TDD/etc design is too hard for the rank-and-file .NET developer. EF will be nice, warm, and cozy for them. Please don’t upset the plebs. I have a book coming out in the fall and I don’t want this to affect my sales or I have a successful consulting firm built around MDA/ADO.NET DataSet generation with sprocs, and EF fits this better than DDD.
  2. [Some moral relativistic equivocation about how my old way of doing things which costs my company/customers way too much is just fine 'FOR ME' and how TDD/PI/DDD/whatever isn't 'real world' or 'practical' or 'realistic']
  3. The petitioners are not ‘real world’ developers, they live in some sort of magical fantasy candy-land and they’re ‘dogmatic’ and trying to tell ME that the earth is round MDA might not be the best way of doing things anymore.
  4. All you petitioners: hush up. Please let the EF team continue to do things the old way and crank out old-think tools that look just like all the other old-think tools we’ve had for 15 years [which somehow never seem to improve the state of things, but we'll keep trying!].  I have speaking engagements, articles, and book deals based on my stagnant knowledge of old-think and I’m nice and comfortable. Don’t rock the boat here!

Frankly, I find these arguments terribly insulting — especially the insinuation that what I’ve been doing for the past 3-4 years is not ‘real world’ development.  Presumably the thousands of tests I’ve written in a TDD or mostly-TDD fashion were all imaginary and also the millions of dollars of value I’ve helped create for my employers must also be imaginary or some kind of fluke.

Conclusion

In conclusion, I’d like to reiterate what I said above: Despite all the other intellectually dishonest and personally insulting responses to the letter, the only people who have seemed to have taken it seriously and appear to be working towards positive, constructive resolution are Microsoft and, more precisely, the EF team.  This, of course, was the desired effect of the letter.  I think you can call it a success. Noted luminaries in the .NET space alerted MS customers to a potential problem and advised Microsoft of a resolution and Microsoft responded constructively and positively and the issues will likely be addressed to some degree of satisfaction in v2.  What more could we hope for?

Thank you EF team for responding appropriately and thank you for trying to worked towards better practices and helping to elevate the level of discussion in the .NET space.

Related Articles:

Post Footer automatically generated by Add Post Footer Plugin for wordpress.

About Chad Myers

Chad Myers is the Director of Development for Dovetail Software, in Austin, TX, where he leads a premiere software team building complex enterprise software products. Chad is a .NET software developer specializing in enterprise software designs and architectures. He has over 12 years of software development experience and a proven track record of Agile, test-driven project leadership using both Microsoft and open source tools. He is a community leader who speaks at the Austin .NET User's Group, the ADNUG Code Camp, and participates in various development communities and open source projects.
This entry was posted in Misc. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller

    Now that I know you’re not a real developer, I think we need to talk about finding your replacement.

  • This is so silly

    Noted .NET luminaries?! Man, you are full of yourself! There are some smart people on the list, but many of the “luminaries” are only legends in their own mind.

    But, if you are going to use that as a measure then you should consider an even greater number of .NET luminaries who have spoken out against “No Confidence” or who refused to sign. You can’t have it both ways. If you want to bring majority rules into this then you can’t complain when the majority rules against you.

    You completely misinterpreted Kathleen’s comments. What she said was that you don’t accurately reflect the community. That is correct. What she said is that you are trying to get your way by screaming the loudest. That is correct. The “luminaries” have had plenty of opportunity over the last couple of years to influence EF, but because of your uncivil, unprofessional, bullying behavior you lost any chance to influence things. The true “luminaries” have been working with Microsoft on EF since Day 1.

  • http://altinoren.com Gokhan

    @This is so silly,

    By saying majority, we are talking about people trying to use typed datasets in a 100 KLOC application, aren’t we?

    This is not a democracy. This is innovation.

    @Chad,

    Well said. I have a similar post here: http://altinoren.com/PermaLink,guid,c86e4ceb-756f-4be2-a1da-3a55f28fef30.aspx

  • http://www.sullivansoftdev.com/blog Brian Sullivan

    @Chad,

    I think it’s great that the EF team has responded in this way. More openness from MS in the area of tool development is always a good thing, and should result in better tools.

    That said, I think what many people may object to is not the content of the ALT.NET crowd’s message, but the presentation of that message and the tone of the discussion around it. For me personally, that has always been a sticking point regarding the ALT.NET community. Consider your example of Kathleen’s blog entry. Mr. Bellware’s comments seemed significantly more insulting to me than anything Kathleen had written in her post. To say that someone is not as interested learning as you because they have not come to the same conclusions that you have just doesn’t fly.

    The message and motive of the active members of the ALT.NET community are valid and admirable, but frequently the proponents sound arrogant or even downright crazy with anger. I think a dose of humility and better attention to presentation would help the community realize its goals more quickly. When it comes right down to it, you’re dealing with people, and people are generally more likely to do what you want if you’re nice to them, even if you don’t agree with them. Righteous anger, though it may feel good, won’t get you very far.

  • This is so silly

    @Gokhan,

    The discussion is not about typed datasets vs. something else. It is about much, much more. The fact that you try to categorize everyone else in such a silly way shows how narrow-minded you are. Discounting people in this manner can only lead to you becoming irrelevant.

    Be careful about not wanting a democracy because the only thing that will come from that is that you will have less of a say in things than you currently do. Microsoft and other companies and gradually evolving and opening up. If you want to do nothing but pick fights you may get the result that you don’t want.

  • http://chadmyers.lostechies.com Chad Myers

    @’silly’:

    I really have no idea what you’re talking about. If you’re taking hits at Bellware on my blog, that’s pretty sad.

    Other than that, you seemed to have made my point for me: People like you seem to just want the EF detractors to shut up and just take it and accept whatever we’re given.

    You say ‘narrow-minded’, but that’s my point about the Responders to the EF letter: They seem to just want to dismiss us as not living in the ‘real world’ and how they’re so much more in touch with the community and ‘real world’ than we are.

    All I’m saying is that I’m real world, I’m using NHibernate and TDD and PI and having great success with it, so don’t just dismiss these technologies and practices out-of-hand.

    I’m also specifically questioning the credibility of many of the EF Letter responders/retorters as having conflicts of interest since several of them have built up lucrative speaking, book-writing, and consulting careers around perpetuating the MDA/DB-first style architecture that is usually harmful every time it’s tried. They also dismiss TDD/PI/DDD out of hand even though they clearly have demonstrated they have no idea what they’re talking about.

    And then they have the gaul to accuse people who use TDD/PI/DDD of being ‘dogmatic’. Who are the real ones being dogmatic and stodgy? They are!

  • http://factored-software.com/iimplement/ (not altnetprsefight)

    Dude, you sound just like alt.net purse fight. I think he/she had a problem with book deals too.

    Seriously though, well said.

  • This is so silly

    @Chad,

    I didn’t mention Bellware. He is not part of this discussion.

    I don’t think anyone has a problem with EF detractors. What everyone is having a problem with is your style of communication.

    Everyone lives in the ‘real world’, but the ‘real world’ isn’t as black-and-white as either sides portrays it. They are no more in touch with the community than anyone else. Neither side has no moral high ground here. The problem with “No Confidence” is that the authors pretend to speak for the majority when they only represent a very small minority. Yes, there are problems with EF. Do the “No Confidence” authors have a plan of attack to address the issues? No! They want to sit down and create one. Show the world your action plan or some draft of it now. Don’t talk about features. That isn’t an action plan. I will guarantee you that any acceptable action is far more complex than you can imagine.

    You have no basis for questioning anyone’s credibility. You have no information at all to show that these people aren’t credible or have a conflict of interest. What qualifies you to judge people you don’t know? Why are you so upset when one of them questions your credibility? Try sticking to the facts and then it will be possible to have a reasonable discussion.

  • Lucas Goodwin

    I don’t understand the vehement anger and arrogance coming from all sides on all the “New MS Framework” controversy (insert appropriate framework).

    Seriously, MS is a framework/tool-provider to us. There are many others out there (free and commercial). The argument that if it isn’t MS it won’t fly just doesn’t hold water in the real world either. The customer only really cares about getting a working product with a low cost of ownership, not EF, NHibernate, ASP.NET MVC, MonoRail, etc, in the implementation (ignoring the question of hiring difficulty of course, but that’s part of cost of ownership).

    Chad is right. Some civility needs to be returned here and people need to stop defending their Castles against innovation. The Windows world already has enough of that baked in without developers adding to it.

  • http://www.scottcreynolds.com Scott

    @silly

    concerns about the questioning of credibility ring very hollow when coming from one who refuses to be identified and will only take his moral stand from a position of anonymity.

    The EF no confidence people have been trying for a very long time to be heard, both in communications directly with the EF team, and communication and open dialogue in the wider community. The responses (yours included) have come largely from a position of closed-mindedness and defensiveness.

    Majority or minority, the point is that EF is being called out for not doing what many in the community consider to be the right thing. The negative reaction to this latest communication is at best backlash because people don’t like to be called on the carpet in an open forum, but if the response to concerns about EF had been different in the last year and a half, the letter would not have been necessary.

    As an aside, Chad did not call himself or any signer of the letter a luminary, so your character assassination in that vein is misplaced.

  • http://chadmyers.lostechies.com Chad Myers

    @Silly:
    (NOTE: Your next post needs to be non-anonymous or I’ll delete your comments. I mentioned in previous blog posts that I’ll delete anonymous non-contributory BlogBile comments. I’ve made an exception for you since you have raised some decent issues, but it’s unfair to the community that you can rant without any personal responsibility behind it)

    Stay focused, you’re all over the place it’s hard to follow.

    The Retorters basically dismissed the “EF Warning” letter as worthless and dismissed people who think EF is harmful as some sort of fringe with no clue and not worth thinking about.

    I absolutely have every reason to question their credibility because the facts addressed in the letter, not to mention common sense best practices and design patterns that have been around for 20 years are being summarily dismissed by the Retorters without so much as a passing glance. This is either from ignorance or malice (conflicted interests).

    Either way, it’s embarrassing for them to not already know these things, not to mention harmful to the greater community who attend their talks and buy their books.

  • http://www.e-Crescendo.com jdn

    @Chad

    While it is certainly entertaining to try and decide who is more insulting than whom, I guess I’d rather ask a side question.

    “I have a book coming out in the fall and I don’t want this to affect my sales.”

    You certainly aren’t the first one from the alt.net group to raise this sort of criticism, and I think it is rather silly.

    Regardless of what I think, are you now going to say that about Ayende everytime he mentions Boo? Isn’t Jeremy writing a book also about Windows Forms development or something, so are you going to discount anything he says in his blog?

    Questioning the intentions of people who disagree with you is fun and all, and in some cases, probably appropriate, but I think it distracts from the message.

    When we disagree on the alt.net mailing list, I don’t question your intentions. Since I’ve met you, I can honestly say that you are practically dripping with sincerity (that’s a compliment). I just think there are times when you are completely friggin’ wrong (and lordy knows, I know you think the same, though on more than one occasion you’ve slipped in a questioning of intentions…which is fine, it’s a mailing list).

    But, that’s just off the top of my head.

  • http://chadmyers.lostechies.com Chad Myers

    @jdn: I try to give people the benefit of the doubt and not question their motives until such time that they prove that they are not worth the benefit of the doubt and that they either have conflicts of interest or are purposely stoking flames without any real point.

    The difference between Ayende/Jeremy and the Retorters is that Ayende and Jeremy aren’t actively seeking to hold the state of the art back. Ayende’s book will be about exploring DSL’s in all forms. Jeremy’s would be about building composite applications and applying tried and true patterns to new technology and creating maintainable solutions.

    Neither of them is compromised or cashing in while holding the community back on known-harmful architectures.

    OTOH, it should be noted that several of the Retorters have whole SERIES of books on old-think architectures and practices. In one case, one has a consulting company that makes, among other things, old-think ‘data access layers’ (code-generated sproc calls). They haven’t advanced the art very much and are applying Windows DNA-era architectures to a modern .NET world and helping contribute to the stagnation of .NET as a community and dumbing down of her members.

    If you can’t see the stark comparisons between these two classes of people, I don’t know what to tell you. On one hand, you have people encouraging code reuse, reversibility, testability, fast feedback (saving money), participation in the community, learning as a lifestyle, etc.

    On the other hand, you have a group of people encouraging you to stay with the same-old tools because you’re (all of us) not smart enough to handle these complicated concepts. Basically, they’re saying that you and I are too dense to grasp DDD, so we might as well stick with the comfy designers that MS is going to put out for us.

    I think they absolutely need to get called to the carpet for this and how they’re not really helping to elevate people, they’re just teaching/writing/speaking about the same techniques we were using in VB6 and ASP 7-8 years ago.

  • Mike Lasseter


    All I’m saying is that I’m real world, I’m using NHibernate and TDD and PI and having great success with it, so don’t just dismiss these technologies and practices out-of-hand.

    I don’t think anyone is dismissing these practices as out of hand, but they don’t need/have to be used on every project. You do realize that there are companies that are using datasets, stored procedures, or code generation with great success? I think its very naive of you to think that TDD/DDD is the only one way to develop software. I’m sure that silver bullet is rolling around here somewhere…

  • http://chadmyers.lostechies.com Chad Myers

    @Mike:

    “are using datasets, stored procedures, or code generation with great success”

    There is the problem, I believe. We define success differently. There is no good way to automate the testing of stored procedures. DataSets require a lot of overhead and dancing and extra code to work with regularly. Code generation, in this context, is only necessary due to the faults of the other two parts of the equation.

    So if by success you mean ‘it’s working in production, we think’ then yes, I guess that’s true.

    But I define success as ‘not a lot of code, up and running fast with clear code instead of miles of XML tucked away in a designer file somewhere with all sorts of embedded assumptions and logic that can’t easily be tested, fully automated and repeatable tests that fail fast, logic in code, persistence in the database (without bleeding concerns between them), sustainability of change over the entire life of the project not just the first 3 months, and ability to roll in and out developers in short periods of time with high sharing of knowledge and shared code ownership to prevent heroes or demi-god developers which are critical path” etc, etc, etc.

    I have a higher standard of success. I have seen many (dozens) of these dataset vs. sproc ‘successes’ and they are all maintainability nightmares. Their sustainability is very low and they almost always have *zero* tests.

    Code without tests is a ticking timebomb of cost waiting to be exploded upon unsuspecting business users/stakeholders who will get sucker punched by a huge price tag in 6 months when they request a change and the dev team tells them that the app has to be re-written.

    I’m sorry, I don’t define this as ‘success’. Getting the app into production is 20% of the success, IMHO.

    Also, I never said that TDD/DDD is the only way to develop software, but so far I have yet to see any other techniques that come close to beating them for long term sustainable success and business value in software development.

    The thing is, I’ve done software development the way that you/they’re talking about and I’ve done TDD/DDD. From what I can tell, they’ve only done it their way. They just don’t know and they’re speaking from ignorance which wouldn’t be so bad if they also weren’t so insulting and condescending when they did it.

  • http://www.e-Crescendo.com jdn

    “On the other hand, you have a group of people encouraging you to stay with the same-old tools because you’re (all of us) not smart enough to handle these complicated concepts. Basically, they’re saying that you and I are too dense to grasp DDD, so we might as well stick with the comfy designers that MS is going to put out for us.”

    It’s statements like this, as well as using a generic label like ‘Retorters’, that seems to me to mis-characterize things quite a bit. And it seems to me that it stokes an ‘us vs. them’ mentality to the whole thing.

    But YMMV. If you think I’m “purposely stoking flames without any real point” either here or on the list, I’ll try to elaborate.

    Cheers.

  • http://chadmyers.lostechies.com Chad Myers

    @jdn:

    No, I didn’t mean to say you were stoking the flames (at least in this thread ;)). I was specifically referring to @silly there in this context.

    ‘us vs them’ – except there literally is an us vs. them. There’s a finite list of people who have posted retorts to the EF letter (several people have collected lists). I do not use the term ‘Retorters’ pejoratively, I just mean ‘the finite list of people who have posted negative replies to the EF letter’.

    And the ‘us’ is basically everyone in the .NET space. Every single one of the EF retorts I read basically summed up to say that it’s going to get big and the .NET rank and file (i.e. you and me) are too dumb to grasp NHibernate, so why fight the inevitable. This, coming from people who posture themselves as leaders. And so I think it’s wholly appropriate to question their motives by rejecting change and rejecting best practices and not even attempting to learn what we’re talking about. They’re dismissing it out of hand without really having tried any of it.

  • http://www.e-Crescendo.com jdn

    @Chad

    “No, I didn’t mean to say you were stoking the flames (at least in this thread ”

    LOL. Seriously, that’s a nice line.

    “Every single one of the EF retorts I read basically summed up to say that it’s going to get big and the .NET rank and file (i.e. you and me) are too dumb to grasp NHibernate, so why fight the inevitable.”

    Have you looked at the list at OakLeaf for commentaries on the no confidence? That’s a good list for the retorts. As a side note, I don’t know why one of my posts showed up there. I haven’t signed the petition (and wont’, not because the petition is evil or wrong, but beause I think it is weird), but regardless, I don’t think that everyone that has reacted less positive to the petition thinks people are too dumb to grasp NHibernate.

    So, when you say things like that, I think you are a little bit off-base.

    jdn

  • joe mort

    I know, anonymous posts are bad, sorry, at least I made it apparent ;)

    I have some VERY small businesses as clients (I write the stuff that would have been written in MS Access by the secretary had I not screamed “Noooo!”) so one of my requirements in these cases is something along the lines of “make sure the designer works so cousin joe’s room mate can update the app in a year or two”.

    Typically this means sticking with MS blessed technologies. Further still it normally means FREE MS blessed technologies (e.g. VS Express has to be able to edit my deliverable). Unfortunately for me I LOVE TDD. I love it soo much I found ways to do it when datasets were involved, or winforms were involved, or used whole hog integration tests where I had to, even if some of my approaches would certainly ‘smell’ in some of the reader’s here opinions.

    My software meets most of the criteria for your definition of success (all the ones I feel are important anyways :O ), but more importantly it meets my customers definition of success which is the only true measure.

    Aside from the perceived tone of the ‘no confidence’ letter my concern is this will hamper EF’s progress so a few people can feel good about getting something they’re never going to (willingly) use changed. Given a choice of Implementing IPOCO and having “cool feature X” in a year or making it possible to be PI and losing “cool feature X” I’m almost always going to side with IPOCO and “cool feature X”, as I’ll actually NEED “cool feature X” some day.

    Sorry, this is kind of long and rambly but unlike the most of the net there’s actually a semi sane discussion going on here.

    PS I really am a mort, I read the alt.net list and know how far ahead you all are compared to me. ;)

  • Mike Lasseter

    @Chad


    I’m sorry, I don’t define this as ‘success’. Getting the app into production is 20% of the success, IMHO.

    I don’t think I ever said getting the application into production made it a success, besides the only TRUE measure of success is how the customer perceives the application throughout its lifetime. Just because an application is testable doesn’t necessarily mean it solved the customers needs (which is the most important measure of success).


    Code without tests is a ticking timebomb of cost waiting to be exploded upon unsuspecting business users/stakeholders who will get sucker punched by a huge price tag in 6 months when they request a change and the dev team tells them that the app has to be re-written

    I think you are missing something here. I have worked with several applications without tests and they were easy to maintain and enhance. If the application is written correctly it shouldn’t need to be rewritten with or without test. Just because the application has tests doesn’t mean it is easy to maintain (although it does help).


    The thing is, I’ve done software development the way that you/they’re talking about and I’ve done TDD/DDD. From what I can tell, they’ve only done it their way. They just don’t know and they’re speaking from ignorance which wouldn’t be so bad if they also weren’t so insulting and condescending when they did it.

    Its funny you say this. I being an outsider in this discussion (who is using/learning TDD), I perceive it to be the other way around.

  • http://chadmyers.lostechies.com Chad Myers

    @Joe Mort:

    That’s great, I’m glad to hear that you’ve found a solution that you can deliver real success and you found the right combination of practices, tools, etc to drive it there. One thing we all should be asking ourselves is: Can I do it even better? Maybe you can, maybe you can’t. Anyhow, good job and thank you for sharing (that sounds sarcastic, but I really am sincere here).

    I don’t necessarily object to designers and EF, etc as a whole. I realize that in several situations, they are appropriate or at least not evil.

    The point here is: You’re aware of some of the concerns and you have made an INFORMED, CONSCIOUS decision to go that route. You are ENGAGED and ACTIVE in the community (judged by the fact that you read blogs and mailing lists and post to them).

  • http://chadmyers.lostechies.com Chad Myers

    @Mike:

    Maintaining without proper test coverage is extremely risky and tends to encourage hero-coding and/or the Tower of Knowledge anti-pattern (where one person holds the key to most of the working knowledge of the system).

    While you may find it ‘easy’, you may be actually harming your employer/customer because you haven’t left them plans for maintaining the software in your absence. Sure, you may have reams of documentation, but the only TRUE measure of maintainability are tests because they’re the only thing and that adequately identify when a new maintainer has made mistakes (mistakes that the customer may not be made aware of for many weeks or months).

    RE: ‘other way around’: Interesting. I don’t know anyone of the big .NET Agile/TDD folks who doesn’t have at least 4-5 years doing things the old way (i.e. waterfall, big database schema with lotsa DBA’s, 1,000 sprocs, typed datasets, etc).

  • http://www.davetheninja.net Dave The Ninja

    @This is so silly:

    Why are you a) posting as anonymous, and b) coming onto here almost personally insulting each developer who has raised there hand in concern to the EF?

    I think its totally unacceptable trying to switch this around and blaming us, the concerned, for something that we are raising valid points for, and trying to provoke a “fight” – if you can call it that – on someones web blog?

    Get a grip man, or at least come forward and reveal who your real self is.

    David

  • Mike Lasseter

    Just to clarify not the ignorance, but the insulting and condescending. Although, I think this is starting to change…

  • http://elegantcode.com Jan Van Ryswyck
  • http://scottic.us Scott Bellware

    Microsoft culture: the land that continuous improvement forgot. Hopefully we can change this going forward. For now, folks have a hard time accepting the radical improvements that can be made to their effectiveness, and it’s this counter-intuitive quality and the unlikeliness of the claims of the kaizen culture in .NET that make the message acceptable. Once upon a time, the Earth was flat, was the center of the universe, and Galileo was tried as a heretic.

  • jlockwood

    LOL! God forbid that the technical proletariat might have the audacity to question the wisdom of the ruling class!

    Well said Scott.

  • JV

    These kind of posts are the reason why ALT.NET is failing. They are failing to see the point that the majority of developers don’t care (or need to care) about TDD, DDD, etc. You are the real world, but so are they! And they are in the majority, which normally gets what they want (The power of democracy).

    If you really want to make a difference, start educating the community which you aren’t reaching on blogs, etc.. (Actually that’s probally 99% of the .NET developers). That will cause a chance in the market, which will cause MS to choose a different more better approach, the one advocated through ALT.NET instead of just making petitions and blogs about how great it is and what it should be…

    I agree with most points in the petition, but I didn’t sign it.. Why? Because the v1 of the EF is great for the majority, but not for me (us). It’s not the wrong road, it’s a (very) standard road, which needs to be extended to fit more advanced needs when you want to use TDD, DDD etc..

    Something which should be advocated by MS also and what they slowly are moving towards (MVC, StyleCop etc..).

    Luckily the reaction of the petition is great and hopefully that opens an discussion, but stop whining how insulted you are… You are not alone on this planet and people have different views about it. Be constructive so that you later can tell all your grandchildren who start developing that you made the .NET world a better place!

  • http://jimmybogard.lostechies.com Jimmy Bogard

    @JV

    Talking to developers in other communities, Java and Rails, they just laugh when I describe EF. “Standard road”…whose standard? Certainly not the rest of the developer world.

    I think if anything, ALT.NET needs to open the .NET developers’ eyes that the developer world is much, much larger than the MS space.