To me, UML is good for a few things. First, it is a language which can be used to communicate with others. If I draw a UML diagram, anyone else who understands UML diagrams will know precisely what I mean. If I just doodle circles and squares and things, they are up for interpretation. It might be easier to just start coding in a language like Ruby, if you are the only developer. On a team, where you may all be working on different areas of a project, being able to refer to a diagram for most of your questions is a good thing. On my team, if it is in UML, it is what gets implemented, and if it isn't reflected in the diagram and you implemented it, you are wrong, no matter how much better the code is. Of course, I am always willing to change the UML after some discussion, but the point is that it is your blueprint. It keeps me from installing a toilet where you think the kitchen is, from running electricity through the sewage lines, from putting a stairway in the center of a closet. It's great for test-first programming. You can write your test cases against the UML. It really helps keep you on track. --Gabriel > What good is UML? I mean, it seems to me that especially with languages > like Ruby you could just code your OO system and then refactor as needed. > You could even use Ruby as a prototyping tool to come up with an OO design > for your application and then code the final app in C++ or Java after