A Vote for Transparency
Roger weighs in on the reasons behind the controversy surrounding Entity Framework.
Microsoft's traditional design process for Visual Studio has been tailored to a few beta releases, usually followed by a release candidate or two. VS 2008 added community technology previews (CTPs). CTPs are incremental technical releases between betas, which the SQL Server Group pioneered for SQL Server 2005, code-named "Yukon."
There was little or no opportunity for most VS and .NET users to participate in the design phase of .NET 3.0 and 3.5 or VS 2008 by suggesting new or improved features. Instead, betas and CTPs arrived with new or enhanced capabilities cast in concrete and offered for testing only. Recommendations for feature additions or modifications were met in Microsoft Connect posts with off-putting lines such as: "Your suggestion will be considered for a future version."
About a year ago, Pablo Castro, architect for the ADO.NET Data Services team, introduced the concept of "transparency in the design process" for Project "Astoria" in a July 20, 2007, blog post. The primary objective of transparent design, according to Castro, is to enable developers "to follow the design topics as we discuss them, and have the opportunity to provide feedback right during the time where we are actively discussing a certain aspect and haven't made a decision yet." Castro explained that the team would make its design process visible through blog posts, including "meeting notes from our design meetings." For the most part, the team followed its transparency mandate to interested parties' satisfaction, and Astoria will release to manufacturing with high marks for the design of a version 1 product.
Entity Framework (EF) version 1's design process followed the traditional pattern; its team developed the EF and Entity Data Model (EDM) architecture without early input from independent object/relational mapping (O/RM) tool users. This resulted in an initial confrontation at the March 2007 MVP Global Summit in Seattle with several high-visibility MVPs, who were proponents of the NHibernate O/RM tool. The primary issue was disregarding domain-driven design, test-driven development, and "persistence ignorance" principles. Despite the added development time contributed by moving EF v1's delivery vehicle from VS 2008 to Service Pack 1, EF v1 didn't overcome any of the alleged design deficiencies pointed out previously.
Program Manager Tim Mallalieu announced a transparent design exercise for ADO.NET EF v2 on June 23, 2008, along with a list of its high-priority features for v2, which included most of the MVPs' desires, and a copy-and-paste version of Castro's blog post. (This was Mallalieu's first post after taking over EF's project management in fall 2007.) An earlier post by the team's primary spokesperson, Daniel Simmons, announced the appointment of domain-architecture mavens Eric Evans, Stephen Forte, Martin Fowler, Pavel Hruby, and Jimmy Nilsson to a DP Advisory Council. EF Community Program Manager Elisa Flasko says that minutes of council meetings will be published in the EF Design blog.
On the same date as Mallalieu's post, an "ADO.NET Entity Framework Vote of No-Confidence" manifesto appeared on the Web citing a similar, but not identical, list of alleged deficiencies. It quickly garnered more than 400 signatories, was the subject of widespread commentary by .NET bloggers, and tarnished EF's credentials among VS developers. Mallalieu's reasoned reply the next day on his personal blog addressed most of the manifesto's points, but didn't calm the controversy. If the EF team had started its design process as a transparent design exercise, it probably would've assigned more resources to the issues initially raised by the MVPs, and corrected most -- if not all -- of the deficiencies.
SQL Server Data Services (SSDS) is in the early design stages now, and its team is holding the design cards for pre-release improvements close to its collective chest. It would behoove the SSDS team to take full advantage of its EF counterparts' experiences and commit to an equally transparent design exercise.