Viewpoint Advocacy Groups
(This is an early draft document, created for feedback purposes. It does not reflect a consensus recommendation, or statement of policy at this time.)
Stakeholders in the Architecture have various agendas, goals, and viewpoints. These views are critical to the design of the new grid. This proposal is to create groups to focus on specific requirements. The list of Viewpoint Advocacy Groups may grow and shrink during the course of this project. The idea here is to provide a framework to address specific concerns in a systematic way.
"Membership" in a group is not exclusive. Anyone can participate in as many or few groups as they deem appropriate. Participation in a Advocacy Group does not imply lack of participation in the core AWG, which is merely an umbrella for all working subgroups.
Organizational structure for Viewpoint Advocacy Groups
Proposed organizational structures and definitions of VAGs is under discussion on the Talk page. All contributions welcome. Here is the organizational layout of the VAGs:
Here is a conceptual layout of the VAGs:
- The above picture places areas of concern into separate boxes, and then defines groups which cross-cut over one or more of them. This makes it topologically identical to the structure of our existing VAGs, except for the fact that the layout of the boxes (which may have been only for simplicity) is flawed because it shows the areas of concern as disjoint, which they most certainly are not. In contrast, the existing VAGs reflect the reality that concerns are intertwined in extraordinarily complex ways in any non-trivial system like SL. --Morgaine Dinova 18:07, 18 October 2007 (PDT)
- It's easy to demonstrate how the existing VAGs achieve exactly what you want but without the incorrect disjointness in the model. The Scalability VAG highlighted right from the start that further subgrouping was expected, so I'll do that for you now as an illustration. Event scalability is exactly the kind of user-oriented concern which you advocate, so it now has its own Event Scalability VAG. -- DONE --Morgaine Dinova 20:37, 18 October 2007 (PDT)
- The benefit of having an umbrella parent is immediately apparent, since only the new and more specific concerns of the new sub-VAG need to be defined, and everything else can be inherited. What's more, the more technical working group of the parent can supply the traceable documents/views required by the sub-VAG, even if this is beyond the competence of the (possibly non-technical) members of the latter. I see a lot of benefits to this structure. --Morgaine Dinova 19:47, 18 October 2007 (PDT)
- So you'll have Event Scalability sub-VAG, Event Security sub-VAG, Event Physics Sub-VAG... Since event people have concerns in all those areas. My proposal is to just have "Events VAG", and they will touch on all the issues. Gigs Taggart 22:28, 18 October 2007 (PDT)
- Oh, I'm all for an Events VAG, since that reflects a particular viewpoint. However, that is such a colossal area that it will split very rapidly into Mass Events VAG (focus on crowd packing), Interactive Events VAG (focus on speed and control), Spectator Sports VAG (focus on non-interactive events in stadiums), Observer Mode VAG (Use_Cases#SecondlifeTube) and many others, mostly referenced to their parent for sanity. And that's precisely the structure I set up for the scalability-oriented VAGs, so no disagreement there, except for the matter of disjointness of architectural areas which is simply incorrect. --Morgaine Dinova 04:34, 19 October 2007 (PDT)
Note these groups are just examples of what a group might be. Notice that high level architectural issues are not VAGs, rather, all VAGs will consider high level architectural issues from their unique viewpoints. For example, "Security" is not a viewpoint, so a "Security" VAG would make no sense. All viewpoints will consider security in their own unique way, and provide input.
- It's precisely to avoid the "everyone considers everything in the architecture" problem that we have subgroups. We actually started off without subgroups, you may recall, and there was a huge amount of heat verging on warfare because the different viewpoints of different people prevented collaboration --- this is why we defined VAGs with cohesive interest sets in the first place. It wasn't out of our love for paperwork. We found a desperate need for isolation of concerns. --Morgaine Dinova 18:07, 18 October 2007 (PDT)
- This isn't "Everyone considers everything", it's "Everyone considers all the parts of the architecture that are relevant to their stake, from the point of view of that stakeholder." It's a subtle but important difference. Gigs Taggart 22:37, 18 October 2007 (PDT)
- Which of course defines the existing 4 VAGs very nicely. :-) --Morgaine Dinova 04:43, 19 October 2007 (PDT)
VAGs can be a way to bring less technical people into the fold and get their valuable input. You do not need to understand the technical issues to provide input into a VAG. The VAG delegates, however, should understand the technical issues involved in fulfilling the architectural requirements of a viewpoint, as this will be required in their participation in the core AWG.
- I'm fine with that, although the hierarchy implied by "delegates" admitted to the inner sanctum of "core" isn't helpful. I would expect the flatness of a VAGs-only model to work better in our non-corporate workgroup. I don't fee strongly enough about it to object though. My other two points above are much more fundamantal. --Morgaine Dinova 18:07, 18 October 2007 (PDT)
- Gigs - thanks for putting this together. I like the VAG being more "user" oriented than "programmer" oriented. In my mind we ultimately need clear set of use cases. I would see each VAG responsible for defining these use cases and synthesizing them into something the architects can use. So, in theory, having a "Builder" VAG seems closer to the user than a "Geometry and Physics" VAG. Now here is where I start to have a harder time because there are so many builders with very little in common. We have prim builders using the SL tools, numerous Sculpted Prim tools, people using Maya and blender, people wanting to "build" by exporting from other tools (i.e mechanical CAD), people wanting to build from different viewers, and people eventually wanting to import from other VWs. You would also have viewpoints from programmers wanting to do this with an API and users wanting better UI. So really, you would need a number of VAGs for building and probably a couple more for other types of creation (maybe that is ok). Maybe being a programmer, I can't separate myself so completely from the architecture. Its hard not to think from the stand point that we have a geometry sub-system and what are the use cases for interacting with it. --Burhops Piccard 20:12, 18 October 2007 (PDT)
- Well, in my vision, you'd have to decide what level of granularity is appropriate there. The VAGs aren't going to be without internal differences of viewpoint, but in the end the stake should be the same: You all want to do "foo", where "foo" is whatever the VAG is about. You'll still have to consider all the use cases to accomplish "foo" that you are aware of, even if no one in the group does it ("it" being that particular use case to accomplish "foo") personally. Gigs Taggart 22:31, 18 October 2007 (PDT)
Purpose of Viewpoint Advocacy
The core goals of the AWG are as follows:
- Document rationale for architectural decisions.
- Integrate the requirements of each viewpoint group.
- Negotiate and document conflicts between each viewpoint.
- Integrate feedback from the various viewpoint advocacy groups.
- Produce a coherent architecture.
A successful Viewpoint Advocacy Group requires:
- To present a set of related concerns about the system in the form of a clear viewpoint.
- To document architectural specifications that stem from this viewpoint.
- To consider the architectural needs of likely implementations that fulfill the specifications.
- To operate in a way that allows for alternate implementations that satisfy the viewpoint.
- To work with the core goals to document views and requirements that conflict or are inconsistent.
- To review the core goals against the work output to ensure that the view's requirements are met.
- The end result of the above is an architectural description which reveals the architecture from this viewpoint.
Defining a Viewpoint
A good viewpoint might include the following elements: (borrowing freely from Emery):
- Required:
- Name of the viewpoint
- List of stakeholders holding this viewpoint
- List of concerns addressed by this viewpoint
- Language, modeling techniques, representation method or tools used within this viewpoint
- Source for the viewpoint
- Use Cases
- Optional:
- Consistency/completeness tests for the viewpoint
- Evaluation/analysis techniques
- Heuristics, patterns, other guidelines
- Estimation of associated cost in resources