Who Wrote This Crap?

In the Java world IntelliJ IDEA has this for quite a while.
As a feature it is only useful when you want to see who screwed up (and help him, which is good) or you want to blame somebody (which I consider to be harmful for the entire team).
If I had anything to say about what feature of an IDE should be improved, I’d go for conflict resolution.

I’ve smelt my own shit, and let me tell you, like my code, sometimes it’s stunk to high heaven.

Jeff, note IntelliJ also has annotate integration too (at least in version 7, don’t know for the previous one) and Eclipse probably has had that for a long time (although I’m not sure it’s integrated in the code edition window).

Also, SVN has 3 aliases for blame: praise, annotate and ann. And Mercurial uses ann or annotate.

Note that the svn blame command also has an alias: praise. I prefer blame, naturally. Praise is for hippies.

I use ann because it’s 2 characters shorter than blame.

I’ve seen that the biggest culprit is usually ‘guest’ or ‘administrator’, or even worse, ‘test’, since control over user logins has never been that strong.

Really? In SVN, unless your admin is a dunce (or the corps is so badly organized that e.g. everyone uses the same login) logins are pretty much mandatory, so I’ve rarely seen that problem happen.

As a feature it is only useful when you want to see who screwed up (and help him, which is good) or you want to blame somebody

I disagree. I’ve used it to see when a change was performed by whom because I had to reimplement it elsewhere, this allowed me to check the files related to the change and ask the person who’d initially done it when I needed help.

If I had anything to say about what feature of an IDE should be improved, I’d go for conflict resolution.

That’s a task for the VCS itself, the IDE shouldn’t be used as a clutch for the VCS’ failings.

oops, crutch, not clutch

boring, eclipse has this feature for years …
MS and .NET can’t keep up with the time, as always

It’s a really cool and useful feature, I’ve used it before in Trac (or was is WebSVN?). Great to see it in Visual Studio.

That’s a task for the VCS itself, the IDE shouldn’t be used as a clutch for the VCS’ failings.

I partially disagree, as the VCS can only resolve conflicts to the point where coder intervention is required. If the time comes and you have to resolve conflicts manually and the IDE just shows you “.rxxx” and “.mine” blocks you can loose precious time.

Many comments sound like this: “Oh oh oh, let me just say that this has been done, like, before, you know? So, it sucks, because it’s like, not new… ish, see? Basically, Microsoft sucks, always like, late… with stuff. It might be really cool, but since it’s sooo 1999 I must point out that, in fact, it was done, like before, ya know.”

I’d like to know if people that write such comments are writing ‘new’ stuff themselves? If not, do they constantly write themselves e-mail complaining their work is not original? And do they only buy a Ford car, because “they were the first to do it?” It’s ridiculous people, move on.

If you need complete full traceabilty from requirement to implementation, you will have to end up using a complete task driven paradigm. Coming from there, I like this approach by making use of ClearCase plus ClearQuest. More than everything it gives you traceability from all angles of interest, either project leader, system integrator, configuration manager, programmer and alike.

Add netbeans to the list of IDEs which have already had this for ages.
Another case of MS playing catchup, marketed as innovation.

GUI support for SVN just speeds up that finding-out process.

That’s right. Why pay the ALT+TAB tax if you don’t have to? It’s the integration-- inline display, right next to the code you’re editing, invokable with a shortcut key – that is so key here.

But blaming is not as good as making things right in the first place.

Yes, but which is more fun? I think you know the answer to that.

Does it come with an automated punishment Mechanism?

This feature is called “annotate” in Team System source control, but it’s called “blame” in Subversion and in Vault.

“Blame” is much better. And automated blame is a feature that has been missing for far too long in Visual Studio. In fact because of this missing feature, I’ve had to make due with a hand-made sign at my cube given to me by our architect. It simply states: “It’s not my code”. Finally, I’ll have immediately visible proof and I can retire my sign.

Blame me!

http://codecraft.info/index.php/archives/81/

Harry: “Add netbeans to the list of IDEs which have already had this for ages.
Another case of MS playing catchup, marketed as innovation.”

Add Harry to the list of lusers who should quit bashing MS for no reason, unless he does it on his usual appearances at /.

It isn’t just other developers who can identify who wrote the crappy code. Managers can get reports to see who’s-doing-what, too.

I just wrote an article for CIO about Team System’s reporting features (http://www.cio.com/article/152300); the original title was “Getting the Manager off the Developers’ Backs” but I guess my editor wanted to make the title more googlefriendly. Yeah. That must be it.

Anyhow, what’s sort of cool (or scary, depending on one’s programming ability) is how granular the manager can be in examining the results. To quote from my own article (it’s terribly fun…):

But there’s plenty of information that isn’t part of the base reporting system. If you want to know “what’s the remaining work, by person?” or “I want a list of active tasks with bugs reported” or “who introduced the most code churn?” these questions aren’t answered by the out-of-the-box reports. However, the data is still available, if you’re willing to massage it in Excel. [Instructions included.]

Incidentally, “code churn” is a fairly rough feature. Siddharth Bhatia clarified that yes, that includes comments. So if you want to increase code churn you can add more documentation. Whether that’s a good or bad thing is, ahem, left as an exercise to the reader.

Esther Schindler
senior online editor, CIO.com

One thing I hate is where Visual Studio 2008 and the articles generated from it claim that it has a “unique reporting feature” for CIOs and Managers and let them better predict software problems.

Bull shit. Visual Studio is not going to be any different than the 100s of other tools out there.

Any SCM tool/Bug-reporting software these days lets you generate many reports on any number of projects.

I’ve seen fairly complex reporting features, such as Bug Close/Open rate, Fix rate, Rate of P1 and P2 bugs being filed, show-stoppers, etc.

In defense of tools it is always desirable to find out as much as you can from whoever wrote the code in order to better understand how to modify it, however, with that said it is usually the case that they either:
a) are no longer with the organization;
b) they can’t spare the time;
c) do not remember how or why they did what they did;
d) are of the belief that any ‘good’ coder should be able to figure it out so they won’t help you;
e) are ashamed of it and don’t want to discuss it;
f) want to see you fail and get fired (don’t laugh, we all have perceived and real enemies in any organization);
g) are generous, humble and willing to do whatever it takes to help you out;
h) best case, they wrote it in the last month or two and can remember exactly how it works;
i) will try to help you with what they can according to their schedule.

In reality you can expect at least some help from most people as long as they aren’t suffering from the 6 month rule however, chaos theory clearly indicates that rules a thru f can crop at any time and in any situation.

But like I was saying, any help is better than no help at all and any tool that allows me to get the help is a welcome addition to the tool suite.

ANKH provides this feature for Subversion from inside Visual Studio.

I used and administered Visual Source Safe 2005 for more than a year before switching our development team to Subversion, TortoiseSVN and Ankh. What a difference! I’ll never go back. These Open Source tools are so much better, and who can complain with the price?

http://subversion.tigris.org/
http://ankhsvn.tigris.org/
http://tortoisesvn.tigris.org/