IBM Donates Parts of Rational to Open Source
slashbob22 writes "IBM has decided to contribute portions of the Rational Unified Process to the Eclipse Foundation. From the article: 'RUP is a vast collection of methods and best practices for promoting quality and efficiency throughout software development projects. IBM's donation will also provide a foundation architecture and Web-based tools for the industry to engineer, collaborate on, share and reuse software development best practices.'"
If you can't sell it....DONATE IT!!!
I've used Rational(tm) before and thought it was great at what it claimed to do. Much like UNIX(tm) and GNU/Linux(tm) applications, it did one thing and it did it well.
Now, combining Rational with Eclipse(tm) should make the latter even better!
If you "get" pointers add me as a friend (116)!
As an intern at IBM this summer, I found that some of the regulars themselves didn't know what RUP was. In particular, some claimed it was simply a process to follow, some linked it with a special program, others claimed complete ignorance, and others simply waved it off as labeling the pre-existing procedures. I still wonder what RUP is all about...
Robert Bindler
A Computer Science student's views on technology.
I've been a RUP user/proponent for several years. This may be, as the article alludes, a shot in the arm for improved processes. However, it remains to be seen just what the "subset" of RUP entails. RUP can be an unwieldy process that, if used in the (lowercase "e") extreme, make development slower and more "process-laden."
However, from what I've seen lately out of some shops that are using more "modern" approaches (and failing miserably) this could be welcome relief.
Successfully condensing fact from the vapor of nuance since 1998.
Opera is the best browser out there and has been for years, but no one was buying it so they first gave free coupons away for it here on Slashdot a couple months back. Then they enjoyed the press so figured let's just give it away for free with no ads.
Granted, Firefox is excellent but Opera has been amazing for at least half a decade and is useable on everything from PCs to cell telephones.
If you "get" pointers add me as a friend (116)!
That's why Rational Rose is such an efficient, consistent, bug-free software.
</sarcasm>
I don't know about other people's experiences, but some of the worst pieces of software I've ever used have been CASE tools (you know the type: UML, lifecycle, etc). Kinds of make you question the usefulness of those tools and processes.
Look, we are and I'll admit that. I'm not afraid to criticize myself and other developers:
- Me and other coders are often eager to jump right into projects instead of designing them thoroughly (using RUP for example)
- Other coders and I often get bored after I figure out the hard part and say the rest is trivial
It's more of a work ethic. Also, my friends in the gaming industry (Electronic Arts(tm) for example) work 60-80 hour weeks, so it's understandable that they seek out shortcuts.
Let's agree to work a little harder and/or smarter and not skimp on design! USE RATIONAL!
If you "get" pointers add me as a friend (116)!
IBM is "donating" the methods of RUP to open source projects? I thought IBM liked open source?
As far as RUP goes, it's kind of like communism. Looks good in theory, but goes all pear-shaped when real human beings get involved. Pull the UML out of RUP and leave it at that--the rest is madness, enobling "process" over productivity.
Remain calm! All is well!
OMG! Now Microsoft will be able to use it and write good products.
[[SLAP]]
Oh, never mind. Everyone knows MS would never be caught dead touching anything OSS.
"It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
Well, maybe, but IBM Rational Rose XP is worst usability wise
/action/(/a/,/b/)
then the old Rational Rose.
Also, if Rational Rose XP is a plug-in for Eclipse, but Rose is 30x the size of eclipse...
which one is really the plug-in?
And why do you need Eclipse?!
I think it was just a fast way for them to bloat up Eclipse,
and reuse existing Eclipse parts to recrate Rational Rose XP.
It crash less often than the old, but it eats way more memory.
For instance, you cannot create some non-implementation abstract specification scenario diagrams with ease, it force you to create "implementation classes", especially when you have to dupe the classes to remove some "not meaningful" associations, instead of having a "hide association" boolean config.
It also add some freaking slash:
instead of just action(a,b) for scenarios.
Some configuration settings are no more available.
Changing colors/font of some items is no more possible in some cases.
Coordinates on infinite planes are just weird...
If you prefered to have text below the use case that's no more possible,
which sometimes makes use cases diagrams looks odds
with some having large and other small ovals or having
to put a large ovals on everything just to make it similar,
reducing the amount of stuff you can fit on a page.
It force you to include association to be displayed,
even though it is "not meaningful" in the current displayed context.
Especially, if you try to create a higher abstraction view.
The cool class diagrams private/protected/public icons
are no more replaced with boring text symbols.
It force you to use some "templates" and completely ignores
"what you actually want to do". Also, it display all
unmeaningful icons on the left using a non intuitive
hide/show menu and then prohibits you to use them,
instead of having a simple toolbar like in the old
to draw your diagram and remove non-usable one.
Basically, give me back a bug-fixed Rational Rose (non-XP) app.
2. Thou shalt not let thy buffers overflow.
I hope those are in the Rational Unified Process (perhaps the construction phase of RUP).
Two wrongs don't make a right, but three lefts do.
First, I have personally used the RUP successfully. The success was in spite of the process, not because of it. The excellent people I had on my team made the work a success, and not a paperwork-on-rails approach to software development.
On the upside, the RUP is geared toward control of iterative projects. On the downside, it treats every diagram you draw as though it were as valuable as the working software you really intend to produce. It also adds artificial divisions between roles in the process (the architect sends X to the analyst who elaborates it and sends it on to the developer who extrudes Y...). It tends to reduce communication among team members, and between team members and stakeholders. It's original intent seems to have been to give all the diagrams in the UML a reason for being (and by extension, Rose).
Show me a failing unit test and I'll show you a low-level design awaiting implementation. Running code trumps "managed artifacts" any day.
Giving away half a product away may not seem rational, but it is shrewd. You have the engine, would you like to buy the key.
... Now, THAT would have been irrational.
As for for the decision to give half the product away, I understand IBM was thinking of giving away the square root of the product away
Look at the 80 character line lengths in the parent post and thus the premature line breaks.
You obviously copy+pasted this post from somewhere, which isn't cool to do unless you properly attribute it.
If you "get" pointers add me as a friend (116)!
yeah, unit tests kick RUPs overbloated process into the wilderness
I cannot get over the idea that OSS projects have been suffering from a lack of the RUP. We have been making do with distributed SCM, email and wiki collaboration, bugzilla, xUnit testing and plaintext artifacts. Oh, and well documented code.
Now that we have the RUP, we can stop all that and do fancy UML pictures showing how use cases are implemented instead. I am so overjoyed,.
I don't know too much about RUP (read here) but here is what I do know. With RUP comes the RUPP, a set of RUP Products that are meant to facilitate the development process that RUP is supposed to be all about.
However, some of IBM's products that are part of RUPP are shit. Rational Software Architect (the 'visual modeling' part of the RUP process) is the most bloated piece of crap I have ever used. It is unintuitive, a massive memory hog, slow, and overall just a bad piece of software. About the only thing it gets right is that it is UML 2.0 compliant and has all the different models...but I have found that there are many cheaper UML modelers that are better.
Heh in a way it is just like Eclipse (which is what RSA runs on top of) - too much crap that is inaccessible. The trend in software for a while has been adding new features that people don't know about. I believe MS had the same issue with Office in a survey they conducted, where they asked people what features they wanted to see in Office and 95% of the features were already there, but people didn't know about it. For every feature added for functionality, there should be two more added for usability!
Similarly, for a programming process/paradigm to take hold, developers need to be provided with (process-related) tools that are lightweight and approachable. A process that is too rigid, too heavy-weight, etc. will never be adopted - worse yet, some team will start using that process then slowly become lazy and soon they will be in a middleground of incomplete requirements, specifications, design docs, etc.
What exactly does it mean to donate a software development process? Wasn't the Eclipse Foundation already free to use RUP for the development of the Eclipse environment? And couldn't companies using RUP already use the Eclipse environment for their projects?
My company decided to go with RUP a few years ago. It took months of classes and basically just an iterative process that has very heavy on process and paperwork and is based on UML. Very unproductive in the environment I worked in. A few lines of code changes could result in 40+ hours of paperwork and reviews. So I saw in practice you start with RUP, strip out what you don't like, and you end up with simple iterative process we could have thought of ourselves rather than spending a ton of money on Rational consulting. The Rational products for doing the modeling were crap. Couldn't stand them. I like Rational's ClearQuest for bug tracking and ClearCase for source control but other than that the rest was junk.
The only valuable piece of software owned by Rational is purify. Does anyone know if IBM donated purify to open source or did they keep it to themselves?
While what I understand of RUP is that it tends to go overboard with extreme implementation of basic ideas, the root of their labor division is in the excellent practice of not allowing one coder to push his code changes all the way through to distribution without some amount of validation by another set of eyes.
I'm part of the enterprise change control staff at my company, and I can tell you that the more tightly we implement controls, the more often we discover that the problems that arise are from developers implementing untested changes without authorization. If you force them to submit change documents, and don't let the changes get into the code base until the change has been authorized (for that matter, don't let them code until the change has been authorized), then have someone else test the changed software before the code gets pushed up, you've got a three-legged stool to stand on, and you have an auditable process that maintains accountability.
I bet if you look at the submission process of any successful open source project, you'll find the same constructs, maybe just not called out so formally. The basic ideas aren't bad, just some implementations. RUP gives you a framework to design your procedures with.
The Spoon
Updated 6/28/2011
Did it ever occur to you that a language that needs auto-generated code is fundamentally flawed (too low-level)?
Linux is not Windows
The tools stand for the process though. If they used RUP to create the tools, then you would expect the quality of the process to be reflected in the tools. If they did not use the process to create the tools you need to ask why not.
So while I agree you don't need the tools for the process, I judge the process itself (I have never used RUP for a project) in part by the tools created with it.
Though really all this proves is the process isn't a silver bullet, something Fred Brooks predicted years before it was dreamed up.
> I'm part of the enterprise change control staff at my company, and I can tell you that the more tightly
> we implement controls, the more often we discover that the problems that arise are from developers
> implementing untested changes without authorization. If you force them to submit change documents, and
> don't let the changes get into the code base until the change has been authorized (for that matter, don't
> let them code until the change has been authorized), then have someone else test the changed software
> before the code gets pushed up, you've got a three-legged stool to stand on, and you have an auditable
> process that maintains accountability.
don't forget "The Law of Unintended Consequences" which shows that:
1. as accountability goes up attitude, morale, productivity, and efficiency go down
2. once you hit critical mass on paperwork, process, etc you destroy motivation - there's some point on the curve at which point everyone just says 'who cares' and 'why bother'
3. it's impossible to really anticipate everything upfront, which means that minor changes that in a system and organization that embraces agility & resilence can be easily handled in stride take 40x as long in an organization afraid of blame.
4. most of the work is done by the motivated and talented 10% of the staff. these people leave rather than put up with the bureacracy designed to hinder the 90% that are unproductive.
RUP is a disaster, I've seen it absolutely wreck companies.
...I actually agree with you.
However, I always saw RUP presented as an array of smaller, compatible processes within the iterative process. IOW you adopt an iterative cycle in your collective workflow (very easy by itself) and pick what you need out of the (admittedly large and overspecific) RUP. Or you take the whole RUP and 'knock-out' what you don't need. RUP the standard anticipates this, even though RUP the product could provide more help in this regard.
With that said, I believe that FOSS projects have suffered greatly by not formally recognizing and docucmenting use cases. Excepting Mozilla and OpenOffice, the evidence abounds. It probably flows from historically "scratching our own itch" and often not maintaining requirements in the first place.
RUP is, in fact, a process to follow. It stands for Rational Unified Process, and defines a set of Roles, Activities, and tools used to write software. It goes into extremely exacting detail, which is, in my opinion, it's biggest weakness: unless you've memorized huge chunks of RUP, you spend a lot of your time trying to remember how to follow it. Once you have, you've spent too much time.
The activities described by RUP are supported to varying degrees by the various Rational tools: Rose for modeling, ClearCase for source control, and ClearQuest for issue tracking.
The other Rational product is 'Rose', which as far as I can tell is little more than a collection of graphics. The reverse engineering tool is all but useless. The types of projects you really need to reverse engineer are far too complex for Rose to handle, it dies after chewing up all available memory, and CPU on a quad processor Opteron. The code generation tool is OK, but that's about the only good thing I can say for it.
If the development team is undisciplined enough to require a formal process, then RUP is one of the least harmful heavyweight processes. But make no mistake, it is heavyweight.
The truth of the matter is that you can automate much of the gating needed to keep "unauthorized" code from making it into production. The key to your statement is that developers were adding "untested" changes to the code base. Part of the demand of agile processes is that you write code to make a test pass (whether this be an acceptance test or a lower-level unit test). The net effect of this is that disciplined developers write code that is required by the nature of the system, and the nature of the tests. Even at an architectural level, you can automate verification of architectural styles. This tends to require a more significant effort, however.
With regard to open source, the issue is one of communication. Developers may be in different time zones and may rarely have the opportunity to speak to each other face to face. There is a minimum of process, but it is to coordinate general direction for the project, and even in these cases, working code, proven with tests makes the strongest argument in favor of a particular approach.
My suspicion is that you are catching the issues you are because people are sitting in a room, face to face, and talking about it. The change documents simply set the agenda for the discussion.