Hmm. I doubt I'd get far drawing a UML diagram, without being able to look it up. I mean, I've *seen* UML, but I've never used it in over 30 years of writing / designing software so I doubt I'd be able to produce anything coherent from memory. And I have a degree, but that pre-dates UML...
Does that make me an idiot?
I was going to ask the same thing, I"m not given the time to document my code let alone create a diagram. I also started when I was 8 and was writing 6502 (and later 8086) assembly code by the time I was 12. Does it make me an idiot that I don't create UML diagrams. People need to watch what they say.
Not quite the same as forgetting a resistor symbol.
I did software engineering and I never had to touch UML at college.
I have used it but I find it of not much benefit to use it explicitly.
I tend to do most things modularly, or at least split things into functions if it is not OO (like in C), and I will sketch if the function is particularly tricky what the inputs and outputs should be and do basic calcs depending on what the function / class does.
I've written software (quite a lot of) embedded and desktop and some web for the last 20 or so years and I have never had to do much more than a simple brain storm for some of the more trickier pieces of code.
Some people can get lost in UML and end up spending 2 years designing a system without writing a single piece of code, and then the project gets cancelled because it's taking too long.
Hmm. I doubt I'd get far drawing a UML diagram, without being able to look it up. I mean, I've *seen* UML, but I've never used it in over 30 years of writing / designing software so I doubt I'd be able to produce anything coherent from memory. And I have a degree, but that pre-dates UML...
Does that make me an idiot?I have no idea about the exact field you are in. For the sort of job - enterprise application design - I've interviewed that guy, knowing basic UML was a prerequisite.
I can think of fields where you never draw a single class diagram ever, but they are shrinking. Communicating with fellow humans about the design is just as important as getting the design done.I was going to ask the same thing, I"m not given the time to document my code let alone create a diagram. I also started when I was 8 and was writing 6502 (and later 8086) assembly code by the time I was 12. Does it make me an idiot that I don't create UML diagrams. People need to watch what they say.But would you be able to? Class diagrams are not rocket science.
BTW to answer your question, it doesn't make you an idiot. It makes your boss one.
Hmm. I doubt I'd get far drawing a UML diagram, without being able to look it up. I mean, I've *seen* UML, but I've never used it in over 30 years of writing / designing software so I doubt I'd be able to produce anything coherent from memory. And I have a degree, but that pre-dates UML...
Does that make me an idiot?I have no idea about the exact field you are in. For the sort of job - enterprise application design - I've interviewed that guy, knowing basic UML was a prerequisite.
I can think of fields where you never draw a single class diagram ever, but they are shrinking. Communicating with fellow humans about the design is just as important as getting the design done.I was going to ask the same thing, I"m not given the time to document my code let alone create a diagram. I also started when I was 8 and was writing 6502 (and later 8086) assembly code by the time I was 12. Does it make me an idiot that I don't create UML diagrams. People need to watch what they say.But would you be able to? Class diagrams are not rocket science.
BTW to answer your question, it doesn't make you an idiot. It makes your boss one.
80% of people calling themselves software developers are useless.
That said I've written plenty of UML documentation and even if someone knows how to create class diagrams most don't know how to do interaction, state or activity diagrams.
But really why worry about UML class diagrams, there are tools for that (I believe Doxygen does it for you automagically), it does sound strange that your job has a requirement for it since anyone can learn class diagrams in a couple of days and if they are used at work then they won't forget, but since most places won't even use them, then it's ok to look it up when needed.
Edit: and as for "being kind of like an EE not remembering the symbol for a resistor" that's just plain wrong, flowcharts are the common ground symbols. There are numerous other diagramming models out there each specific to specific tasks and industries.
80% of people calling themselves software developers are useless.
The other 20% can't say "software developer"
Most of my software designs start from a piece of paper with a few scribbles on it.
We don't produce these idiotic database systems, we produce embedded design controllers for traffic lights (amongst others)
In my opinion if you have to think about writing code or how to conquer a programming task you've not been doing it long enough. Sure you want to iron out the details on paper, but you should already have the whole thing in your head before you've started writing anything. I guess after 30+ years of daily programming it just comes natural.
I don't think we should criticize anyone for their technique on electronics or programming so long as they are getting the job done and it doesn't blow up or crash, or both
A class diagram allows you to deconstruct the problem domain, see the connections, understand what is what. I've seen too much software that was written without the creator taking the time to understand all that.
That said I've written plenty of UML documentation and even if someone knows how to create class diagrams most don't know how to do interaction, state or activity diagrams.
But really why worry about UML class diagrams, there are tools for that
IMNSHO experience, a class diagram is one of the least informative diagrams.
What is far more useful are:
In my opinion if you have to think about writing code or how to conquer a programming task you've not been doing it long enough. Sure you want to iron out the details on paper, but you should already have the whole thing in your head before you've started writing anything. I guess after 30+ years of daily programming it just comes natural.
IMNSHO experience, a class diagram is one of the least informative diagrams.
What is far more useful are:
I never said it was the most useful diagram. It's usually the first you draw up, though, to get a very high level idea of the structure.
(When given a basic design exercise, the people who were unable to draw one strangely coincided with the people who couldn't for their life figure out which domain object an expected output row was supposed to represent, and how the other domain objects related to that.)
Not in the fields I've worked in, e.g. soft real-time high-availability telecom systems, or networking.
In my opinion if you have to think about writing code or how to conquer a programming task you've not been doing it long enough. Sure you want to iron out the details on paper, but you should already have the whole thing in your head before you've started writing anything. I guess after 30+ years of daily programming it just comes natural.
I don't think we should criticize anyone for their technique on electronics or programming so long as they are getting the job done and it doesn't blow up or crash, or both
Jeff
Coding is the easy part. Finding the perfect elegant solution is the ultimate goal.