Cyril Plisko wrote:
> Hello
> 
> I have a question on ARC procedure:
> 
> What is the formal definition of case inception ?

The short answer is "an ARC meeting that is not intended to
result in a commitment vote".

Of course, there is a longer answer :-)

When projects feel ready to "talk about their architecture",
they schedule an ARC meeting.  The most common reasons
for meeting with the ARC are:

        P) We just want to talk - we need to know more
           about the ARCs and the ARCs need to know more
           about us.  We tend to call this kind of meeting
           a "pre-inception review"; typically they involve
           just the project submitter and the proposal
           that was submitted.  They rarely take more
           than 15 minutes.

        I) We have some specific questions and unknowns
           to hash out - we don't yet have a complete
           architectural spec, but hope that this meeting
           will get us closer to that point.  These
           types of meetings are called inception reviews,
           and a project can have as many as it needs.

        C) We believe we have a solid architecture, and
           want the ARC to review and approve it  This
           approval signifies a commitment by the project
           team that the architecture is suitable for reuse
           by the larger OS.o meta-community and a commitment
           by the ARC that it will manage the future
           evolution of that architecture in a way that is
           consistent with the expectations set by this
           project.  This commitment is needed because
           other parts of that community will begin to
           depend on this architecture; if it were to
           change incompatibly in the future, things will
           break.  For some reason we tend to call these
           "commitment reviews" :-)

All cases conceptually follow the normative path
     Pre-inception => Inception => Commitment,
though the quantity of meetings that are actually needed varies
with the experience of the project team and the familiarity the
ARC has with the subject matter.

A simple case brought by a project team with past ARC experience
may go directly to "C"ommitment, skipping any sort of inception.
(these are also known as "fasttracks")

A complex case, with an experienced team that is unclear about
the architectural impact of their efforts may need many
different interactions with the ARC:
        P => I => I => I => C => C
(This exhausting path is thankfully rare, but does happen)

Once a project team is ARC-savvy, the norm is I => C, which is
why we talk about the ARC process as having "an" Inception
review followed by "a" Commitment.


> It seems that not every case has it, so when one is needed ?

In the best of all worlds,

        Pre-inceptions happen immediately after a proposal
        has been submitted; the only materials needed are
        the proposal itself.  Many times it results in a
        project being re-routed as a fasttrack; infrequently
        it even results in commitment approval.

        Inceptions happen as the project team starts playing
        "what-if" with prototypes, customer feedback and the
        like.  It is important that the project be in a
        state where it can easily react to course corrections
        that result from a better understanding of the
        various constraints that exist.

        Commitments should happen well before "code-complete";
        the risk of delaying is that there may be some ARC-
        required changes that result in non-trivial rework
        and/or additional new work.  Ask yourself how much
        design and implementation effort you are willing to
        invest in an unproven/unapproved Architecture?

If your project's architectural impact is easy to articulate,
its scope is manageable, and you have been paying attention
to the systems-level impact of your actions, your only needed
ARC interaction may be with a Commitment review early in your
project's lifecycle.

> What deliverables are expected from project team by the
> time of inception ?

In some cases, the equivalent of a good block diagram with
named arrows (interfaces) between the blocks is sufficient.
So is an architectural level functional spec.  Whatever you
have produced for your own use should be reusable for the
ARC review - assuming you actually have something.

After reviewing hundreds (nay, thousands) of projects, certain
patterns become obvious.  Inwardly focused project teams tend
to ignore outwardly targeted behaviors - upgrade plans, support
for complex enterprise deployments, versioning, reuse etc are
things frequently overlooked in the push to create something that
simply compiles :-)  Over the years, the ARCs have collected a
list of these frequently overlooked systems-engineering questions;
at one point there were 20 of them, so the name "20 Questions"
stuck.  While some of the 20Q are things that can't be answered
until coding is nearly complete, many of them are applicable
to inception timeframe reviews.  In a sense, the 20Q document is
form of a Functional Spec.  At a minimum, the materials should
show that their author had perused the 20Q list and addressed
the applicable items found there.


> What are possible outcomes of inception ? There are cases
> marked "inception held", are there any other possible statuses
> after inception ?

The usual are

        Need another inception review
        Need new Spec before we can determine anything else
        Need to schedule a Commitment
        Withdrawn
        Approved

Most of the time, the next step is completely in the hands
of the project team - the goal is commitment, but is driven
by the set of "still unknown"s faced by the project team.


  -John


Reply via email to