Scott's point that "executable architecture" shouldn't mean MDA is well
taken.  I think the mantra "prove it with code" goes a long way toward
expressing the importance of architecture as not being simply boxes and
arrows on an OpenUP project.

 

Maybe all the gurus on this list can help me make this point in a
concise and memorable way.  

 

We've all been on projects where "prove it with code" amounted to little
more than tinkering with some idea, pattern, or open source package
until it met the barest standards of quality and seemed to vaguely
demonstrate that "this might work."  The problem is that it doesn't
actually implement any of the project's requirements.  Inevitably, when
we try to actually integrate the new architectural mechanism or
component into the system and get it working as part of an end-to-end
requirement realization, all the unstated assumptions of the "proof of
concept" start coming out. 

 

I believe that the best approach to elaborating on the architecture is
to incrementally build working, tested requirement realizations that
implement the most architecturally risky parts of the solution first.  I
suspect that when Scott Ambler says "prove it with code," that's
shorthand for something more like "prove it by adding working, tested
code to the project's source base."  I want to be sure people don't
think that in OpenUP, architecture is a couple diagrams and some
disconnected code examples or proofs-of-concept.

 

Can anyone help me with a terse slogan to get this point across?

 

Thanks!
Nate Oster

 

________________________________

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Scott W. Ambler
Sent: Tuesday, November 28, 2006 9:34 PM
To: Eclipse Process Framework Project Developers List
Subject: Re: [epf-dev] OpenUP/Basic Architectural Approach

 

Architecture is a touchy subject in the agile community.  What I've
written about architecture, do a little bit of sketching on a whiteboard
up front to give you an initial vision and then move forward from there,
is seen as far too heavy.

 

4+1 is going to turn off a lot of people.  It already does in the RUP,
let alone OpenUP.  Maybe we should mention it in a guideline somewhere,
but I wouldn't have that in the main text.

 

With agile approaches we treat documentation like any other requirement
-- we prioritize it, estimate it, and put it on the stack along with
everything else.  The architecture should be documented only to the
extent that the stakeholders are willing to pay for it.  And, that
documentation is often written late in the project once things are
stabilized, typically based on the surviving diagrams on the team's
whiteboards.

 

I've worked on very complex systems where the architecture
"documentation" was a few whiteboard sketches until pretty much the end
of the project.  The PM also captured these diagrams in PPT to
communicate to senior mgmt, but that wasn't our official architecture
documentation.

 

Ana's comment that we should move a lot of this material into guidelines
is a good one.  This is true of a lot of stuff in OpenUP I suspect.

 

Nate's comment about executable architecture is good, but we need to
make sure that we're not talking about it in the MDA sense of the word.
The MDA approach is valid, but only for a very small portion of the
marketplace. In Agile Modeling we included the practice "Prove it with
Code" to get this point across.

 

- Scott
Scott W. Ambler
Practice Leader Agile Development, IBM
Senior Contributing Editor, Dr. Dobb's Journal
http://www-306.ibm.com/software/rational/bios/ambler.html

 

Every organization gets the process that it deserves.

        ----- Original Message ----- 

        From: Jim Ruehlin <mailto:[EMAIL PROTECTED]>  

        To: [email protected] 

        Sent: Tuesday, November 28, 2006 5:23 PM

        Subject: [epf-dev] OpenUP/Basic Architectural Approach

         

        One of the items we discussed in today's review of the OpenUP
Architecture package was changing the approach we take to Architecture
(see https://bugs.eclipse.org/bugs/show_bug.cgi?id=165258). There was
general agreement that we need to be more agile in this area than we are
now, although there's a lot of useful guidance now.

         

        Based on our discussion and some other thinking, I put together
some initial bullet points for discussion. The intent is to describe a
lighter-weight perspective for how architectures are created in
OpenUP/Basic. Comments are encouraged.

         

        Properties of OpenUP/Basic Architectural Approach

        *       It's more important in a small team to start building
and experimenting with architectural ideas early than to do lots of
up-front architectural analysis. This implies short iterations and rapid
adjustments during Elaboration. 
        *       The architecture is always important enough that it
needs to be documented, even if no other part of the design is
documented. It can be documented through one or a combination of the
following: 

                *       List of architectural decisions categorized by
viewpoints or other relevant taxonomy. 
                *       UML visual model using 4+1 architectural view. 
                *       List of interfaces that connect significant
parts of the system 
                *       Other simple templates...? 

        *       The bits of new architecture that are added during an
Iteration must be documented by the end of the iteration, or the
iteration hasn't ended. 
        *       Refactoring the architecture is an essential activity
for most Elaboration iterations so the final architecture is robust. 
        *       Tacit knowledge - an expert's perspective that delivers
useful insight and guidance - is an accepted architectural input. For
example, assume Mark is the acknowledged expert on some part of the
system. He may define a set of architectural decisions that are
difficult to justify directly, but his experience tells him it's the
right way to go. It shouldn't be necessary for Mark to provide detailed
justifications. He should only need to provide enough information to
gain the support of the team members. Justifications should be brief if
Mark has made good decisions in the past. 
        *       The architecture is verified through demonstration, not
documentation. 
        *       In general, the architecture is the least amount of the
design that can be documented that still illustrates the way in which
the system reifies a solution to the customer's problem. 

         

        - Jim

        ____________________

        Jim Ruehlin, IBM Rational

        RUP Content Developer

        Eclipse Process Framework (EPF) Committer www.eclipse.org/epf

        email:   [EMAIL PROTECTED]

        phone:  760.505.3232

        fax:      949.369.0720

         

        
________________________________


        _______________________________________________
        epf-dev mailing list
        [email protected]
        https://dev.eclipse.org/mailman/listinfo/epf-dev

_______________________________________________
epf-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/epf-dev

Reply via email to