Transparency in the design process

Published 20 July 07 10:40 AM | dpblogs 

We have been looking at various options to ensure that the design of Astoria truly reflects the requirements of the day to day challenges that our developer community faces when building real-world web applications and services. We would like to start by being as transparent as possible in the design process. I wanted to briefly describe how we’ll go about it so you know exactly what you are looking at when reading one of our design-related posts.

How did we get here? We shipped the first Astoria  CTP last May 2007. That CTP was the result of an incubation effort. During the incubation phase we typically focus on the vision, and the actual implementation details are secondary. We built something that was good enough to illustrate our thinking and get feedback from both internal and external sources. Now that we have gotten strong support from the development community we have decided to fund the Astoria project as a full-on project, not an incubation effort anymore.

Where are we now? The Astoria team is staffed and the engineering effort to build the real product has been kicked-off. What this means in practice is that we have a team with developers, testers, program managers, etc., that we have regular design meetings, and that we have a timeline (or more accurately, that we’re required to have a timeline but we’re still working on it :).

Transparency in the design? Over the years Microsoft has been opening up the engineering processes incrementally. Long ago there were only betas, and that was the only chance to see and give feedback about a product before it shipped. Then we started to do Community Tech Previews (CTPs). CTPs enabled us to provide bits more often and gather feedback frequently. The goal with increasing the transparency of design is to take this one step further: we would like to enable folks that are interested in Astoria 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.

What exactly would we make visible? In short, our design process. To be more concrete, I’m not talking about some fancy set of specifications. What I mean is that as we go through the detailed design of the various aspects of Astoria, we would post in this blog a) the meeting notes from our design meetings (the Astoria team has a design meeting twice a week, plus a lot of impromptu hallway chats), and b) deeper write-ups of specific design challenges where we’d like folks to understand how we’re seeing a problem and provide a channel for deep, detailed feedback.

How transparent is transparent? I want to be completely clear about the scope of the information we are sharing. One of the things we need to learn both from the Microsoft side and from the community side is whether the model works within a practical set of restrictions. We would post as much of our discussions as it is practically possible. However, we have to make sure we don’t compromise the interests of Microsoft as a company. There are certain things that can range from ideas to specific implementation details that we could consider trade secrets, high-value Microsoft intellectual property or something along those lines. It *will* happen that in some cases we will not discuss a topic publicly, either for a certain term (e.g. until a proper IP protection mechanism is in place) or until we ship or ever. This is nothing new, but I haven’t seen folks from large companies discuss this explicitly before, so I wanted to make sure it is clear here.

About your feedback: We would love to hear your thoughts, be it comments, suggestions, ideas or anything else. However, in the end we are designing a commercial Microsoft product. So we’ll happily take your feedback but you need to understand that by providing us feedback in any form you are agreeing that we may use it to develop our product, that others may use it in connection with the product and that you will not be compensated for any of these things. We may incorporate ideas or make changes based on comments you make, or we may make changes to the product that are indirectly influenced by discussions that we have with you and other folks in the community. Again, this is nothing new, but instead of having some fancy statement written in legal lingo I wanted to be upfront about this here in this first post on the topic. Of course our legal folks looked at this, and they were cool enough to understand that the informal nature of the process is what makes it work, and they let us get away with this statement in which I think we clearly delineate what will happen with whatever feedback you send our way.

So, what do folks think? Is this a good idea? Does it sound useful/practical? We will start posting design notes and challenges soon and tweak the process as we go.

Pablo Castro
Technical Lead
Microsoft Corporation

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# Pablo Castro's blog said on July 20, 2007 3:32 PM:

The technology and needs in the web space are broad and move fast. As we are building technology for

# jamiet said on July 21, 2007 12:59 PM:

Pablo,

Great news. Transparency like this is indicative of a new approach from Microsoft. I look forward to seeing your design meeting output.

Regards

Jamie

# Marcelo's WebLog said on July 24, 2007 1:06 PM:

Yes, I've finished my transition from the ADO.NET Entity Framework to Project Astoria. The team blog

# David Sleeckx said on July 25, 2007 4:47 AM:

This is some great news, I'm really looking forward to those design meeting notes as well. Together with constructive feedback, this should be one of the biggest steps forward in the way we access data from now on.

# Project Astoria Team Blog said on September 10, 2007 12:49 AM:

The goal of Astoria is to make data available to loosely coupled systems for querying and manipulation.

# Project Astoria Team Blog said on September 21, 2007 12:30 PM:

Deciding on something that becomes a public interface of a developer-oriented technology is a tricky

# Project Astoria Team Blog said on September 27, 2007 9:02 PM:

The question is: what data sources should Astoria support as inputs? Should we allow ADO.NET Entity Framework

# Noticias externas said on September 27, 2007 9:22 PM:

The question is: what data sources should Astoria support as inputs? Should we allow ADO.NET Entity Framework

# Project Astoria Team Blog said on December 10, 2007 10:25 PM:

Note: This post refers to the CTP available here . When building frameworks to expose and consume data

# Noticias externas said on December 10, 2007 10:43 PM:

Note: This post refers to the CTP available here . When building frameworks to expose and consume data

# Project Astoria Team Blog said on December 21, 2007 5:00 PM:

Problem statement Today in Astoria if you have two entity types that are functionally in a containment

# Noticias externas said on December 21, 2007 5:31 PM:

Problem statement Today in Astoria if you have two entity types that are functionally in a containment

# Marcelo's WebLog said on January 8, 2008 10:55 PM:

This post talks a bit about updates from the last post on the URI format . In that post, we discussed

# Noticias externas said on January 8, 2008 11:50 PM:

This post talks a bit about updates from the last post on the URI format . In that post, we discussed

# Marcelo's WebLog said on January 11, 2008 12:43 AM:

Let's say that we have a data service exposing all of Northwind. We can get all customers in the database

# Noticias externas said on January 11, 2008 1:30 AM:

Let's say that we have a data service exposing all of Northwind. We can get all customers in the

# Marcelo's WebLog said on January 12, 2008 4:07 AM:

So, as per the announcement on this team blog post , there is now a library you can use from a Silverlight

# Noticias externas said on January 12, 2008 4:26 AM:

So, as per the announcement on this team blog post , there is now a library you can use from a Silverlight

# Marcelo's WebLog said on January 15, 2008 8:10 PM:

While the syntax described for filter in the previous post allows you to do some nifty things, there

# Noticias externas said on January 15, 2008 8:29 PM:

While the syntax described for filter in the previous post allows you to do some nifty things, there

# Marcelo's WebLog said on January 22, 2008 2:21 AM:

One way in which you can expose additional resources from your ADO.NET Data Service is to implement "service

# Noticias externas said on January 22, 2008 2:46 AM:

One way in which you can expose additional resources from your ADO.NET Data Service is to implement "service

# Marcelo's WebLog said on February 1, 2008 7:26 PM:

In the last post , I discussed what happened with regular exceptions, "unrecoverable" exceptions and

# Project Astoria Team Blog said on February 14, 2008 2:07 AM:

We have been looking for the last few months at adding first-class support for AtomPub to Project Astoria

# Noticias externas said on February 14, 2008 2:44 AM:

We have been looking for the last few months at adding first-class support for AtomPub to Project Astoria

# Project Astoria Team Blog said on February 19, 2008 1:04 AM:

While going through application scenarios for the ADO.NET Data Services Framework (Project Astoria) one

# Noticias externas said on February 19, 2008 1:13 AM:

While going through application scenarios for the ADO.NET Data Services Framework (Project Astoria) one

# Project Astoria Team Blog said on March 31, 2008 4:58 PM:

Contents: (sorry, tricky problem -> long write-up) One of the few things pending in the server library

# Project Astoria Team Blog said on April 7, 2008 1:24 AM:

We have received a fair amount of feedback regarding a number of use cases where it would be beneficial

# Project Astoria Team Blog said on April 10, 2008 5:40 PM:

Astoria service allows reading/querying of data via the already-established IQueryable interface – this

# Project Astoria Team Blog said on April 22, 2008 6:09 PM:

Different applications have different requirements around consistency and how concurrent modifications

# Pablo Castro's blog said on August 20, 2008 8:28 PM:

It's amazing how much information is there in our email archives. Now that we've shipped the thing, I

# Project Astoria Team Blog said on September 28, 2008 6:18 PM:

The goal of Astoria in V1 is to easily expose a data source using the REST approach to the web (with

# Pablo Castro's blog said on September 28, 2008 6:32 PM:

During the design of Data Services (Astoria) v1 we did the transparent design thing. We're quite happy

# Project Astoria Team Blog said on October 22, 2008 9:32 PM:

We mentioned that we were doing some early thinking of “Astoria Offline” back in Mix 2008,

# Project Astoria Team Blog said on November 3, 2008 6:02 PM:

As we already discussed in a previous blog post , one of the problem spaces related to data services

# Project Astoria Team Blog said on December 15, 2008 4:18 PM:

One of the scenarios we have heard feedback around is the ability for the a client of a data service

# Project Astoria Team Blog said on March 1, 2009 6:24 PM:

It's been a little while since we've written about the future direction of data services, so this post

# ADO.NET Data Services Team Blog said on April 23, 2009 6:00 PM:

So far Astoria has used “merge” semantics for update. That is, an “update” operation (an HTTP PUT request)

Leave a Comment

(required) 
(optional)
(required) 

  
Enter Code Here: Required

Search

This Blog

Syndication

Page view tracker