Project Idea: Trade or buy code reviews (for independent developers)
baberuth.posterous.comInteresting that the author suggests "maybe a feature off of stack overflow" Something like http://codereview.stackexchange.com perhaps?
something like that. This morning I had this thought for 2 things:
1. a python filtering function I wrote 2. how to restructure an entire django project.
Both (esp #2) are a little big for posting a code snippet. Bigger architecture problems probably only make sense within the context of the larger scope, so I'd pretty much want someone to check out the whole repository.
The SO thing would be great because SO has built in reputations so it'd help people feel more comfortable with giving away the entire project. I personally don't care, but I can imagine that being a barrier to code reviews by strangers.
Obviously, that sort of code review is a much more time-expensive request, so finding reviewers might also be hard without some sort of compensation.
see also: http://refactormycode.com/
similar idea.
I'd get into that. I am a C/C++ guy, writing Python (etc.,etc.), with R/Perl programming coworkers. There is obvious value for me in external reviews.
The trick is, could there be some sort of bilateral confidentially agreement? That's one I'd need to ponder a bit.
I agree that solving the confidentiality part is key. I think it's very remote that someone will steal large swaths of code from you. But it might be a good idea to expect that your code example will act as part of "payment" for their review. If it bothers the author, maybe code review sessions can be broken up by individual functions/pages/modules that are looked at by many independent reviewers so no one reviewer sees it together as a package.
I'm not super concerned about confidentiality for my code, but then again I'm not doing anything groundbreaking.
Mostly, if I cared about confidentiality, it'd be so I don't get publicly embarassed for crappy code.
Rating systems for reviewers would also let people build reputations so that reviewee's could feel more comfortable about code confidentiality.
Stack overflow already has reputations built in, so as I mentioned, it might just be awesome as a feature for SO. And another revenue stream, if they weren't already swimming in cash.
The main confidentiality issue is not about whether you, the coder, cares about people stealing your groundbreaking idea. When you are doing work for hire, the code is not necessarily yours to publish.
Whilst sharing it with someone you could refer to as a colleague, employee, or contractor might be OK. Sharing it with the world, or someone who might share it with the world, is not.
I'm not concerned about code confidentially at all :) ...but unfortunately, I am not in a position to make that call. The people I work with sometimes do important/secret things, so all the IP policies are geared to the extreme case. That said, as long as I have a path to declare what I plan to share and with who, then things could become much easier... in theory anyway.
A big issue I can foresee with this (other than confidentiality, etc) is simply the time required to give a quality review of a decent sized block of code, and making sure you get back a fair review in exchange.
You can review and give decent feedback on a small snippet of code fairly easily and quickly, but that's of limited value in a real project.
To be able to give a decent review (eg beyond a cursory "You should name that variable better, or your indentation sucks), requires that either the amount of code you are reviewing is so small that you can grok it quickly (limiting the value of the review), or that you spend at least some time familiarizing yourself with the rest of the code base so be able to gauge the impact of the code changes.
This is all good if the person you're trading reviews is prepared to spend the same amount of time on your code, but for example, I find it very frustrating when I spend 30-45 minutes giving a detailed review of a website on http://feedbackroulette.com (a similar concept, but for websites reviews), only to get back a 3 sentence review in exchange that was clearly bashed off in about 30 seconds. Awarding points for reviews goes someway to alleviate this, but still it's a real pita...
Trading and buying unknown goods is considered bad practice. Build a system that matches people building similar things and I will be your first user. (SO is not modular enough)
I was thinking along similar lines last week with regards to APIs. Obviously you want people to use them, and they only will if they're understandable and useful. It would be good to have something like http://fivesecondtest.com/, where people can comment on your ideas for "karma".
(aside: I can't actually work out if people who complete reviews at 5 sec tests get paid? Or if they do just get karma)
Great idea, posted an order on Bitcoin-OverTheCounter: http://bitcoin-otc.com/vieworderbook.php?sortby=id&sorto...
If anyone has some bitcoins and wants a code review, send me an email: omouse@gmail.com
Another project in a similar vein is project metrics. Various times as I'm reviewing a library to include in my code, I'd like to compare various ones and see where the momentum is, how easy the code is to understand, how much work is being done on it. I think github is starting down this path but would like to see more of this type of thing.
Rather than using a web site, join (or start) a local software craftsmanship group. I'm sure a lot of people would be happy to donate some time to look at your code, and you get the benefit of meeting other people in a community specifically dedicated to improving code quality and acquiring technical mastery.