Java Forum / General / November 2006
Use Case... advocacy
Luca - 02 Nov 2006 22:03 GMT 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 !
Ben_ - 02 Nov 2006 22:06 GMT See if "Benefits / Limitations of Use Cases" at http://en.wikipedia.org/wiki/Use_case helps.
Wesley Hall - 02 Nov 2006 23:41 GMT > 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.
Arne Vajhøj - 03 Nov 2006 02:59 GMT > I'm teaching UML to a group of "old fashioned" developers. > [quoted text clipped - 8 lines] > > 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
bobsardo@gmail.com - 03 Nov 2006 05:50 GMT 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
> I'm teaching UML to a group of "old fashioned" developers. > [quoted text clipped - 10 lines] > > Thank you ! Thomas Weidenfeller - 03 Nov 2006 09:28 GMT > 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
 Signature The comp.lang.java.gui FAQ: http://gd.tuwien.ac.at/faqs/faqs-hierarchy/comp/comp.lang.java.gui/ ftp://ftp.cs.uu.nl/pub/NEWS.ANSWERS/computer-lang/java/gui/faq
Simon Brooke - 03 Nov 2006 11:18 GMT > I'm teaching UML to a group of "old fashioned" developers. > [quoted text clipped - 8 lines] > > 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.
 Signature simon@jasmine.org.uk (Simon Brooke) http://www.jasmine.org.uk/~simon/
;; It's dangerous to be right when the government is wrong. ;; Voltaire RIP Dr David Kelly 1945-2004
Luca - 03 Nov 2006 12:14 GMT 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
Luca - 03 Nov 2006 12:11 GMT 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 ...?
Chris Uppal - 03 Nov 2006 15:54 GMT > 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
Patricia Shanahan - 03 Nov 2006 17:48 GMT >> I'm teaching UML to a group of "old fashioned" developers. > [quoted text clipped - 44 lines] > (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
Hendrik Maryns - 06 Nov 2006 11:45 GMT 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
Simon Brooke - 03 Nov 2006 20:29 GMT >> I'm teaching UML to a group of "old fashioned" developers. > [quoted text clipped - 15 lines] > (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.
 Signature simon@jasmine.org.uk (Simon Brooke) http://www.jasmine.org.uk/~simon/
For office use only. Please do not write or type below this line.
Free MagazinesGet these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...
|
|
|