Use Case... advocacy

L

Luca

I'm teaching UML to a group of "old fashioned" developers.

I convinced them of the importance of Activity diagrams,

but they seems hard in uderstanding the GREAT importance of Use Cases.

I told them
- UC and actors identificationit's an easy way to start,
- that UC can be used as test cases,
- etc,

any other great motives in favour of UC ?

Thank you !
 
W

Wesley Hall

Luca said:
I'm teaching UML to a group of "old fashioned" developers.

I convinced them of the importance of Activity diagrams,

but they seems hard in uderstanding the GREAT importance of Use Cases.

If they are any kind of developers at all then they have already spent a
great deal of time defining use cases. The fact that they are not used
to calling them "use cases", or drawing them in UML is irrelevant.

My advice would be, make up some basic system requirements and get them
discuss the design, what features the software would support and who
would use it. Direct the discussion in the direction of administration
functions the system would require and who would accomplish these tasks.
Then discuss any time based tasks, and general maintainence requirements.

Then.... draw the discussion as a use case diagram... I suspect they
will get it.
 
?

=?ISO-8859-1?Q?Arne_Vajh=F8j?=

Luca said:
I'm teaching UML to a group of "old fashioned" developers.

I convinced them of the importance of Activity diagrams,

but they seems hard in uderstanding the GREAT importance of Use Cases.

I told them
- UC and actors identificationit's an easy way to start,
- that UC can be used as test cases,
- etc,

any other great motives in favour of UC ?

You need to describe the functional requirements.

You can either use a self invented standard that
no new employees or customers has heard about or
the the industry standard use cases.

Arne
 
B

bobsardo

If the "old fashioned" developers are from the mainframe world, then I
would recommend that you ask how they documented requirements,
unit-test test cases, user-test test cases, and how did they measure
their results. Once they have defined this to you, thereby creating a
communication baseline, you are prepared to correlate Use Cases to
their older methods.

If you are using tools like RequisitePro to aid in documenting
requirements, and then Clearcase or other Rational products to test the
code, then maybe you need to walk them through in "baby steps".

Hope this helps. I was (and guess I still am) one of those "old
fashioned" developers. You have to hold our hand to help us understand,
but you should do it so that we think we are still the experts.

PM Bob
 
T

Thomas Weidenfeller

Luca said:
but they seems hard in uderstanding the GREAT importance of Use Cases.

I told them
- UC and actors identificationit's an easy way to start,
- that UC can be used as test cases,
- etc,

Well, there are use cases, and there are UML use cases. The later are of
limited use, unless of course, you like to talk in baby language with
stick figures. And no, it doesn't make things better to call your stick
figures actors.

Use cases are a method to express requirements by describing aspects of
the system. One method, but not the only one. There is no point in use
cases if the requirements are already well expressed in another way.

Done right (not that stick figure junk), use cases are up to par with
other requirements representations. But the "GREAT importance" of use
cases is exaggerated. Compared to other ways of specifying requirements
they are not very special.

/Thomas
 
S

Simon Brooke

Luca said:
I'm teaching UML to a group of "old fashioned" developers.

I convinced them of the importance of Activity diagrams,

but they seems hard in uderstanding the GREAT importance of Use Cases.

I told them
- UC and actors identificationit's an easy way to start,
- that UC can be used as test cases,
- etc,

any other great motives in favour of UC ?

If you can't find a compelling case for advocating it, I suggest you
shouldn't advocate it. Those 'old fashioned' developers have masses of
experience, and have seen dozens of methodological fads and fashions come
and go. They may just know a little more about the pragmatics of getting a
well engineered solution built in reasonable time than you do.
 
L

Luca

Thankyou and ... let me be more precise.

They made a huge work on documenting all their existing ERP
with just

- a list of use cases (just the titles and the UC diagram, no
storyboarding-scenarios, not even an internal description)

- an Activity diagram for each Use Case

I must say their point is not so bad,
maybe it's really easier and just as useful

to write UC title and short description and then specify them well with

a good Activity diagram ...?
 
L

Luca

I do have maximum respect for them.

That said, they had many problems due to their "old fashioned"
"intuition-based" methods
so I try to teach them
the power of modeling and complete documentation
+... that's why they pay me for (well).

Regards
 
C

Chris Uppal

Luca said:
I'm teaching UML to a group of "old fashioned" developers.

Are they any good ? if they are then you are probably trying to teach them
stuff that they've known since you were in the cradle. If not, then why
bother at all ?

It's a standard cycle:

Year N. Situation is that there are a variety of "methodologies" available,
but none of them seem to work very well in real life. That's to say that there
are people who can produce good (in whatever sense matters in context)
programs,
but that their presence on a team doesn't correlate with the methodology used
by the team (or to the dedication which that team applies it).

Year N+1. People are starting to realise this, so they ask themselves: "what
do the good programmers do which is different from everyone else ?". They find
one or more candidate answers. They try to apply them in their own
development.

Year N+2. They find they have some success with the new methods ! (Or maybe
they don't but carry on regardless -- I admit that speculation is a little
cynical). So they get enthusiastic about the new methods.

Year N+3. People to whom "methodology" is important, start to notice the new
methods, and convert them into a methodology. They, or their supporters, build
some buzz around the new methodologies. A trend starts. A new fashion
emerges. The hype builds...

Year N+4. People begin to apply the new methodologies in less talented teams.
Oddly, the new methodologies work less well. Hardly work at all, even.
Clearly
the problem is that the teams are not "buying in" to the new stuff -- if they
were more dedicated then it would all work as it should. Answer: more
education! We must teach the old dogs! Let them learn new tricks, or let
them go! Buy in, or starve!

Year N+5. It is now clear that the new methodology is not significantly better
than the one we started off with (in year N). The good programmers largely
ignore it (their existing practices may overlap with the ones advocated
by the methodology -- it's the methodology they reject, not the good
practices). The less good programmers are muddling along ineffectually as
before.

Full circle....

(The literal year numbers in the above should not be taken seriously, of
course -- I think the cycle time is more like 10 years than 5).

-- chris
 
P

Patricia Shanahan

Chris said:
Are they any good ? if they are then you are probably trying to teach them
stuff that they've known since you were in the cradle. If not, then why
bother at all ?

It's a standard cycle:

Year N. Situation is that there are a variety of "methodologies" available,
but none of them seem to work very well in real life. That's to say that there
are people who can produce good (in whatever sense matters in context)
programs,
but that their presence on a team doesn't correlate with the methodology used
by the team (or to the dedication which that team applies it).

Year N+1. People are starting to realise this, so they ask themselves: "what
do the good programmers do which is different from everyone else ?". They find
one or more candidate answers. They try to apply them in their own
development.

Year N+2. They find they have some success with the new methods ! (Or maybe
they don't but carry on regardless -- I admit that speculation is a little
cynical). So they get enthusiastic about the new methods.

Year N+3. People to whom "methodology" is important, start to notice the new
methods, and convert them into a methodology. They, or their supporters, build
some buzz around the new methodologies. A trend starts. A new fashion
emerges. The hype builds...

Year N+4. People begin to apply the new methodologies in less talented teams.
Oddly, the new methodologies work less well. Hardly work at all, even.
Clearly
the problem is that the teams are not "buying in" to the new stuff -- if they
were more dedicated then it would all work as it should. Answer: more
education! We must teach the old dogs! Let them learn new tricks, or let
them go! Buy in, or starve!

Year N+5. It is now clear that the new methodology is not significantly better
than the one we started off with (in year N). The good programmers largely
ignore it (their existing practices may overlap with the ones advocated
by the methodology -- it's the methodology they reject, not the good
practices). The less good programmers are muddling along ineffectually as
before.

Full circle....

(The literal year numbers in the above should not be taken seriously, of
course -- I think the cycle time is more like 10 years than 5).

Agree, but with one additional comment.

Each methodology includes practices that have different value in
different situations.

The programmers who developed the practices generally knew what they
were good for, and when to do something different. In the middle of a
methodology cycle its practices get pushed for all situations. If a
practice that is part of a methodology push does not work well in one
situation, it does not necessarily mean it is a bad practice. It may
just be being misapplied.

As far as the original problem is concerned, I would suggest documenting
the requirements for some test project in UML and in whatever way the
developers like.

Compare the two representations, and the work involved in producing
them. Which did better at bringing out issues? Which gives the clearer
view? Fewest pages to cover the whole requirements? Easier to edit?
Bring in a developer who is not part of the class to evaluate readability.

If UML use-case diagrams really are a better technique for documenting
their requirements, it should become apparent.

Patricia
 
S

Simon Brooke

Chris Uppal said:
Are they any good ? if they are then you are probably trying to teach
them
stuff that they've known since you were in the cradle. If not, then why
bother at all ?

It's a standard cycle:

Year N. Situation is that there are a variety of "methodologies"
available,
but none of them seem to work very well in real life. That's to say that
there are people who can produce good (in whatever sense matters in
context) programs,
but that their presence on a team doesn't correlate with the methodology
used by the team (or to the dedication which that team applies it).


(The literal year numbers in the above should not be taken seriously, of
course -- I think the cycle time is more like 10 years than 5).

Well said that man.

To which I would add: it's not new that managing software development is
hard. Frederick Brooks 'The Mythical Man Month' may be more than thirty
years old, but it's still one of the most thoughtful (and in my opinion
best) books on the subject.
http://www.amazon.com/dp/0201835959/

The core of the issue is that the best programmers are an order of
magnitude more productive than average programmers. It's seductive to
believe that if you could encapsulate the methods of those best
programmers into a methodology, you could raise the standard of the
average very significantly. Sadly, this turns out not to be true.
Consequently Brooks recommends not trying to develop methods which would
try to smooth out the difference between the best and the average, but
instead to build 'surgical' teams around the best, where the team
comprises

* one 'surgeon' - the recognised highly productive programmer, who does the
majority of the actual code-cutting work, and is boss to the rest of the
team
* one 'co-pilot' - a less experienced programmer who is being groomed to
become a 'surgeon' and who sits with the surgeon, discussing the work and
methods as required
* one 'administrator' - an office manager type person, reporting to the
surgeon (NOT the other way around) whose job it is to handle all
organisational problems relating to the team and its resources
* one 'editor' - responsible for generating and maintaining
documentation of the code and of design decisions
* two secretaries, one each reporting to the administrator and the editor
* one 'program clerk' - responsible for maintaining all project files
including released deliverables

Brooks also advises 'plan to throw one away' - in other words, rapid
prototype. Note that this has quite a lot in common with modern XP
methodologies.

I have to say that in my twenty years of personal experience as a
programmer and manager of programmers, and as technical director of
software companies:

(1) Brooks' recipe as described above definitely works (very well),
although these days with improved office support software and version
control systems you can probably do away with the secretaries and roll the
program clerk job description into either the co-pilot's or the
administrator's. Obviously, if you appoint the wrong people as surgeons,
this approach fails; but if you appoint the right people, it is hugely
productive.

(2) If, as an organisation, you are promoting your most productive people
away from the code face to become 'managers' or 'analysts' or
even 'designers', your productivity will fall, not rise. If, on the
contrary, you promote your less competent people to become 'managers'
or 'analysts' and give them more status than programmers, then your most
productive people will leave, and your productivity will plummet.
So 'managers' _must_ be junior to 'programmers' in a software
organisation, or else you might as well close the doors.

(3) Any system which tries to divorce design from implementation will fail.
Consequently, any methodology which uses a formal language to communicate
between 'designers' or 'analysts' or 'specifiers' on the one hand,
and 'developers' or 'programmers' or 'implementers' on the other, is
highly suspect. If the person doing the requirements analysis and the
architectural design is the senior surgeon on the project, then he has his
own way of making the design notes he will use and will get the editor to
document. And if the person doing the analysis and design is not the
senior surgeon, you might as well start putting your CV round the
agencies, 'cause your project is going to fail.
 
H

Hendrik Maryns

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Patricia Shanahan schreef:
It may just be being misapplied.

Nice! Inflected verb, infinitive, progressive and participle with
almost nothing in between, and still make sense.

H.
- --
Hendrik Maryns
http://tcl.sfs.uni-tuebingen.de/~hendrik/
==================
http://aouw.org
Ask smart questions, get good answers:
http://www.catb.org/~esr/faqs/smart-questions.html
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)

iD8DBQFFTyBne+7xMGD3itQRAp+2AJ9nqH0UoaSB81oIcitrkLM6rtOiGwCfdhWn
9hbykcS6wJrs56hXxamc6g0=
=Fhvb
-----END PGP SIGNATURE-----
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,577
Members
45,054
Latest member
LucyCarper

Latest Threads

Top