Search the web
Sign In
New User? Sign Up
scrumdevelopment · Scrum Users
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Real people. Real stories. See how Yahoo! Groups impacts members worldwide.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
Why Traceability? Can it be Agile?   Message List  
Reply | Forward Message #2946 of 42773 |
I was reading a book review of "Practical Software Engineering"
at www.therationaledge.com and it said something about the
"importance of traceability":

[begin excerpt]

Emphasizes the importance of traceability
-----------------------------------------
Throughout the book, Manassis discusses the importance of
requirements traceability. The last chapter, “Traceability at
Work,” demonstrates how traceability helps to keep projects
on track and on schedule. The greatest practical function
of traceability, he claims, is that it facilitates impact
analysis. It allows you to predict and identify what will
change if you modify the system at any level.

For example, with traceability you can:

* Identify the source of inputs for each artifact.
* Include traceability information as part of an artifact
where appropriate (e.g., in many UML model diagrams).
* Use techniques that help you link two artifacts to each other.
For example, you can see how to link the .NET role-based
security attributes in code with the UML use-case model,
actor diagram, and sequence diagrams, through the role-based
security matrix.
* Whenever you make a code change, identify all artifacts you
need to change, and understand how to make those changes.

[end of excerpt]

In the past, I've mention the three main uses/needs for traceability:
1. Assist change impact analysis (and hence estimation accuracy)
2. Ensure conformance to specs
3. Mandated (by legal/contractual obligation or market industry)

Most of the time it comes up on this list, people use or assume
the 2nd item above and claim its not needed in XP/Agile when I
can show that all my tests pass and all my tests are easily
traceable to the corresponding story (I think part of this is
also not calling a development task "done" until it passes
the tests). I also think that is largely true!

As I look at the impact-analysis use of traceability as described
above, one of the first things that strikes me is that its very
"up front" thinking instead of adaptive. It tries to predict what
will/might happen instead of using feedback upon executable results
to see what does happen.

I think a more adaptive approach would say: create or simulate
the change in an isolated environment, observe see what happens,
then respond to it. If I could do such a "simulation" - would
traceability for the purpose of impact analysis be obsolete?
(do I really need to know which artifacts/entities are touched
if I know what the effects are? Is it still useful for estimation?)

What might be a TDD-way of doing such an executable impact
analysis that didn't take significantly more time to do than to
simply "mock up" all or part of the requested change? (or to
help me find out all the areas of code that would be touched?)

How could I answer the question "what physical [files/classes] and
functional [stories] characteristics are impacted if I add/change
this story or part of a story?" and how can I answer that in an
agile fashion with small and tight rapid-feedback loops that gave
me back an answer without adding too much additional time to my
estimation activity? [I can see how a really nice MDD environment
could be helpful here]

The second question (which really should be the first question)
is, do I really need to answer the "impact" question in the
first place? How much does it help me and my customer to be
able to do that? How much would it improve my estimates, my
team's velocity, our ability to collaborate, and give rapid
executable feedback to our customer if I could do this thing?
[I don't have any ready answers for this - am interested in
opinions from those who actually have or had had this ability
in previous projects (agile or otherwise) and how much their
agile project's would truly benefit from it (or not).

Functionally speaking - why is impact an issue at all? I think
its because it presumably reveals key insights as to the cost
of making the change. But what if my code is maximally well
factored AT ALL TIMES? What if my functional architecture
(e.g., classes, interfaces, packages) my physical architecture
(e.g., files, directories, headers) could:
- maximize encapsulation and localization
- easily correlate my abstractions (e.g., domain objects)
with their corresponding stories/use-cases (as opposed
to trying to trace at the finer-grained level of
line-item requirements and routines/lines of code)
and hence to their corresponding tests

If I aggressively manage and minimize dependencies thru
refactoring and encapsulation, and if I worry about tracing
only at a more coarse-grained level of stories (features)
to abstractions (classes/interfaces), might that not be
enough? Might that be "barely sufficient" to meet most
mandatory/obligatory requirements for formal traceability?

And in the cases where it didn't, how might I take a
simulation/TDD-based approach to impact analysis and
effort estimation for a requested change?

I gave a presentation on "Agile SCM" last week, and several
in the audience asked be about "traceability", and how
to meet mandated traceability in an "agile" fashion (especially
now that things like Sarbanes-Oxley are prompting increasingly
more shops to mandate - a phenomenon which several in the
audience seemed to agree has already started and is growing).

I suggested that agile projects address concerns of traceability
by doing things like:
- Having tests directly traceable to stories (sometimes even
on the same card)
- Minimizing the number of artifacts produce (fewer items means
fewer items and fewer inter-relationships to track and manage)
- Knowing which stories (features) each "commit" is for, and being
able to associate them in the version-control tool if necessary
in order to automate code-level traceability (e.g., a checkin comment)
- Aggressively managing dependencies with (encapsulation/refactoring)
- Using concepts of domain-driven design to ensure the easy correlation
between stories and objects.
- Managing traceability at the level of stories (feature or use-case)
and objects instead of individual line-item requirements and
lines of code (something which good encapsulation makes possible
because low-coupling and high-cohesion increase the odds that
few other objects will be impacted, but the few that are might
impacted throughout)

At the time I said that, I hadn't yet pondered the simulation/TDD-based
approach for traceability hinted at above (nor of the applicability of
Mock-Objects and even AOP to ease t he ability to do so comprehensively).
I would be very interested in hearing if others have done it, or of
how it might be done.

--
Brad Appleton <brad@...> www.bradapp.net
Software CM Patterns (www.scmpatterns.com)
Effective Teamwork, Practical Integration
"And miles to go before I sleep." -- Robert Frost



Wed Mar 10, 2004 8:20 pm

bradapp1
Offline Offline
Send Email Send Email

Forward
Message #2946 of 42773 |
Expand Messages Author Sort by Date

I was reading a book review of "Practical Software Engineering" at www.therationaledge.com and it said something about the "importance of traceability": [begin...
Brad Appleton
bradapp1
Offline Send Email
Mar 10, 2004
8:20 pm

I have to say I have always found traceability to be a waste of money. On one project (corporate IT context), we deliberately studied the cost for both...
acockburn@...
aacockburn
Offline Send Email
Mar 10, 2004
8:30 pm

... Unless of course it saves you money (or penalties) by virtue of having done it, if it no one uses it other than to check-off somewhere on a checklist that...
Brad Appleton
bradapp1
Offline Send Email
Mar 10, 2004
9:59 pm

... Make the change, see what tests break? And if impact analysis is needed ... what does that tell us about modularity? Ron Jeffries www.XProgramming.com ...
Ron Jeffries
RonaldEJeffries
Offline Send Email
Mar 10, 2004
9:05 pm

... So then, as I stated later in the post, if it can't be done without making the change, it can't really help with the estimating of how much effort it will...
Brad Appleton
bradapp1
Offline Send Email
Mar 10, 2004
9:35 pm

... Yes. I'm agreeing and emphasizing. Ron Jeffries www.XProgramming.com The central "e" in "Jeffries" is silent ... and invisible....
Ron Jeffries
RonaldEJeffries
Offline Send Email
Mar 10, 2004
9:53 pm

From: Ron Jeffries [mailto:ronjeffries@...] Sent: Wednesday, March 10, 2004 4:05 PM ... Hmm. What if the change is at a level where many apps...
Tiseo, Paul
alphadog4
Offline Send Email
Mar 11, 2004
3:37 pm

... What if the tests are automated and run in ten minutes or overnight? Please tell us a story of actually using a t matrix and getting benefit from it. ... ...
Ron Jeffries
RonaldEJeffries
Offline Send Email
Mar 11, 2004
4:28 pm

... I spent some time in the mid '90's trying to understand how "traceability" and the tools people were using at the time, (RDD-100?) would help me understand...
Doug Swartz
gruverguy
Offline Send Email
Mar 11, 2004
5:25 pm

Doug, Imagine it's not just you. It's 3rd parties, its complete strangers, its legacy systems. It's potential poorly motivated competing systems. In our little...
Alleman, Glen B.
gballeman2000
Offline Send Email
Mar 11, 2004
5:34 pm

... Traceability doesn't take the place of someone sitting down and figuring it out. Traceability is supposed to help the person that has to sit down and do...
Brad Appleton
bradapp1
Offline Send Email
Mar 11, 2004
6:41 pm

Brad: 1. The UML/RUP way One the big problems with traceability and/or reversibility requirements in RUP/UML, is that in software traceable models are not...
Mike Beedle
beedlem
Offline Send Email
Mar 10, 2004
10:00 pm

... So are stories, and features, and change-requests. Pick a coarse-grained representation and get on with it. Nothing is going to be perfect. Do the best you...
Brad Appleton
bradapp1
Offline Send Email
Mar 10, 2004
10:39 pm

... ? (something which most certainly can and often does correspond ... Brad: But what good is to "map to a class". A class at what level? Is the class at the...
Mike Beedle
beedlem
Offline Send Email
Mar 11, 2004
12:52 am

... I have an observation, almost entirely serious, regarding this recurring topic. I read often things like "With traceability /you can/ ..." assist change...
Ron Jeffries
RonaldEJeffries
Offline Send Email
Mar 11, 2004
3:15 am

... Ron: Like you, I heard this for 15 years now, and I haven't seen it, or heard that worked for others even _once_. I think it is possible to make software...
Mike Beedle
beedlem
Offline Send Email
Mar 11, 2004
9:34 am

... Brad: I would like to see a couple of working example to really assess its value. Please don't misunderstand me, I like the idea of doing: just plain old...
Mike Beedle
beedlem
Offline Send Email
Mar 11, 2004
10:44 pm

... Brad: I would like to see a couple of working examples to really assess their value. Please don't misunderstand me, I like the idea of doing: just plain...
Mike Beedle
beedlem
Offline Send Email
Mar 11, 2004
11:58 pm

(responding to Brad) (I don't know which forum is the main thread, so apologies to folk who get 3 copies) ... Last time this question came up on a forum, I...
PaulOldfield1@...
pauloldfield1
Offline Send Email
Mar 11, 2004
8:25 am

Paul, Such an approach is used on "mission critical" software systems here in the DOE. Starting the use cases derived from the requirements, test cases are...
Alleman, Glen B.
gballeman2000
Offline Send Email
Mar 11, 2004
2:25 pm

From: acockburn@... [mailto:acockburn@...] Sent: Wednesday, March 10, 2004 3:30 PM ... [trimmed] ... I'm assuming you also don't carry life insurance?...
Tiseo, Paul
alphadog4
Offline Send Email
Mar 11, 2004
3:37 pm

... I know people who have died, though I don't plan to join them. I don't know anyone who collected on their traceability. Can you or others tell us some...
Ron Jeffries
RonaldEJeffries
Offline Send Email
Mar 11, 2004
4:27 pm

Ron, Here's a story from this mornings plan of the day. Two DB applications - both poorly formed database applications that have had numerous contractors...
Alleman, Glen B.
gballeman2000
Offline Send Email
Mar 11, 2004
4:49 pm

In a message dated 3/11/2004 7:27:30 AM Mountain Standard Time, glen.alleman@... writes: Starting the use cases derived from the requirements, test cases...
acockburn@...
aacockburn
Offline Send Email
Mar 11, 2004
5:09 pm

... use ... tests line up to ... class(es) implementing a ... Unless you are using the same IntentionRevealingNames in the requirements, tests, and code... Dan...
Dan Rawsthorne
drawstho
Offline Send Email
Mar 11, 2004
7:24 pm

Not related to life insurance (which I have, not that it's relevant). Traceability matrix is not an insurance policy. I repeat, I have, in 30 years in the...
acockburn@...
aacockburn
Offline Send Email
Mar 11, 2004
5:13 pm

From: acockburn@... [mailto:acockburn@...] Sent: Thursday, March 11, 2004 12:13 PM ... Not meaning to be hostile, but the truth of the matter is that...
Tiseo, Paul
alphadog4
Offline Send Email
Mar 11, 2004
6:50 pm

... No, but it is adding to a very rapidly growing pile of evidence. Ron Jeffries www.XProgramming.com Replacing an on-site customer with some use cases is...
Ron Jeffries
RonaldEJeffries
Offline Send Email
Mar 11, 2004
7:43 pm

Paul, From your address and firm name you may examples like ours. My examples has shown up on my desktop but is on web mail so we're falling behind the mail...
Alleman, Glen B.
gballeman2000
Offline Send Email
Mar 11, 2004
7:09 pm
First  | < Prev  |  Last 
Advanced

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help