User:Zha Ewry/Proposed AWG Process

From Second Life Wiki
Jump to navigation Jump to search

Proposed process

This is a very tentative proposed process, based on an attempt to sum up discussion at the AWgroupies informal meeting on October 16. Please note that this is deeply a open, collaborative, collegial process, see IEEE 1471 for some perspective on the overall approach we are trying to pursue. - Zha October 16, 2007 12:05 PM, PDT

Please comment on this, a shared, consensual view on this is really important!

The overall flow of the effort is roughly: in parallel:

  • Enumerate use cases
  • Coalesce into Viewpoint Advocacy Groups
  • Lay out common formats for various work products such as use cases
  • Examine and, informed by code and analysis, validate the architectural assumptions and overall approach proposed in High Level Architecture proposed by Linden Lab
  • Enumerate and describe all the current services within SL
  • Enumerate key crosscutting concerns such as performance, security, scalability, possibly via a VAG, or as a side effect of one or more VAGs

Once we have coalesced, the VAGs will, in parallel work through the following steps

  • Work to get a set of use cases, in a common agreed format, with enough detail to drive design discussions
  • Propose basic approaches in enough detail to drive the next major steps
  • Surface concerns to other VAGs and the overall community
  • Code sample implementations of illustrative designs

Ideally, at this point, we will have:

  • A validated set of architectural assumptions
  • A large set of proposed solutions, tied to use cases by the VAGs
  • A core group of people advocating the various viewpoints
  • An enumeration of the current SL services
  • A set of key crosscutting concerns to be used when looking at our work
  • Working code samples to help validate designs and raise concerns


From this, we will need to forge a broad consensus on the overall approach, informed by the work in the first step. The broad consensus would permit us to move into a more detailed round of design, again driven by VAGs.

  • Define the full set of formal entities in the architecture
  • Define the full set of services, protocols, workflows and any other implementable components in the architecture
  • Produce sample implementations of key services and components (Broader, larger efforts than in the first phase)

At this point.. in theory.. we have the simple task of

  • Define each service in sufficient detail to allow an implementation to be built
  • Define each protocol in sufficient detail to allow messages to be constructed and parsed
  • Define each interaction pattern in sufficient detail to allow complete interactions to be tested
  • Define any profiles/subsets in sufficient detail to permit the profiles to be implemented
  • Describe any other materials we identify which would be necessary to allow the creation of conorming components, and

oh yes and "Code it all and test it"