Whoever believes that there isn't any difference between a programmer and a 'software engineer' is living in an illusionary world. By the way, when I talk of a software engineer here, I refer to a person who tries to address the requirements of the client applying the rules of engineering systematically (I don't understand why people so often use this title incorrectly), in a substantial contrast to the way a programmer would have gone about the same task.
Well, to be honest, all my escapades into the world of software engineering have only lead me to develop this opinion: You remove fun from programming, include a whole lot of responsibleness and bring in hierarchy, what you get then is 'software engineering'.
Software engineering is all about ensuring quality, cost effectiveness, thereby in some ways having to put aside creativity, and innovation! Now that does not necessarily go down well with a programmer. For years, since we were in high school, we've been coding, writing the most imaginative pieces of codes, driven by some hidden zeal for creativity and innovation, all for fun. And now when we have to do all these things with a great vigil over us, with continuous monitoring and control, all in an environment that is more hostile than motivating, we realize that the shift from a programmer to a software engineer is not entirely a smooth sail.
For all its great features, I wonder if guys at Rational hadn't build all those innumerous functionalities, I wouldn't have had to do so much work :(