App/Driver Code Reviews - a philosophical discussion

Do we need an Code Review site is certainly a good question, but also, if there was one, what effect would it have on Development? "Troll" style Reviews, Revenge Reviews, etc. are possible. What could/should developers do if it occurs?

I ask because the discussion of some (still imaginary) review site bubbles up every now and again. "Utopian" Review Site would be great, but here in the real world, bad stuff can happen, as we witnessed with Cobra.

I have an imaginary 'utopian' site in my head for when I read posts about "we need a review site" where only legitimate, responsible Reviews get submitted. Yea, not realistic... therefore I'm wondering if anyone else has ideas around how to get close to perfection.

You can only do this with "selected" reviewers. Of course, that punts the question of who selects the reviewers. This could potentially be automated, not unlike reviews are handled in Amazon. Reviews themselves could be marked Useful of Not Useful by others, and then people can judge for themselves who to listen to, and they could be sorted that way. Presumably, bad reviewers get knocked out by such a mechanism. knocked down to the bottom of the list, or even off the list. Individual reviewers could collect merit points across multiple reviews, etc.... I think it only works if, unlike Discourse, it has a negative mark as well as a positive mark that can be given to the reviewer.

3 Likes

Review the Reviewers. I can see how that helps.

One thing I notice about Amazon Reviews is the disconnect between usernames. Each site naturally has their own user DB and the usernames could never be correlated. Amazon at least has the ability to say "verified buyer" which helps, but a reviewer's name in a Review site wouldn't necessarily be the name known here in the Forum. Even our ST community users don't necessarily use the same name here. I remember seeing people that 'get things wrong' in an Amazon Review and I thought it would be good to respond here.. if only I knew who they were. :slight_smile:

In my opinion, only developers who code is also publicly available and on such a site should be allowed to review that code. Developers whose code is on a "members-only", private site should not be allowed to review other developers code since theirs is not up to the same scrutiny.

And it should be limited to developers. Laymen like me have nothing more than anecdotal observations. Yes, we come up with wonderful ideas sometimes....some problems need a simpler mind to solve. But generally speaking, any type of review you're talking about should be reserved to the folks that actually know coding.

3 Likes

Would something like reddit work? I don't know what is involved in a private subreddit, but it does have up and down voting and it is by invite.

Why can't people just use a github PR and ask for reviews from the community here? (or gitlab, or what ever source hosting you use)

Could just you a measure when announcing the app/update, "review by X people". You don't have to address issues on a PR if you disagree, but you can't count it as a valid review.

Then again, takes some of the "fun" out of just slinging code out there...and not everyone is familiar with giving reviews or receiving them.

The topic comes up most often related to New Owners. How hard it is to find Apps or Drivers they need AND to know which ones are on 'the Dark Side' and why. Then, as @bravenel points out, who's to be believed? If you're new here, who's advice do you follow? :smiley:

I guess this depends on the purpose of the reviews: are we literally reviewing the code (e.g., spotting bad algorithms, inefficiencies, typos, etc.) or just the performance (e.g., has anyone noticed slowdowns or other problems that began when adding this code and stopped when it was disabled or removed)? I'd certainly value the feedback of anyone--especially people like you who are familiar with the platform--in the latter case.

This sounds like thinly veiled proxy to specifically exclude Cobra, who is probably the single most prolific, talented (only third party I've seen staff praise besides recommending HubConnect), and helpful community developer out there--i.e., a bad idea, despite the fact that I understand the idea behind this. This would be a good idea if, for example, someone like me tried to pull off the same thing with my code. :slight_smile:

Nope...his code is available period, as far as I am aware. And it's not a thinly veiled anything. It is my opinion that people who don't have their code on whatever the platform is shouldn't be allowed to critique others. Its a good method to prevent people from being too harsh and prevent:

That's not a review in my book. I would call that a beta test. And I don't think anyone is proposing a formal beta platform. That would be quite difficult to manage. If developers choose to do a beta release, then that is great. But trying to formalize such a thing would be a little beyond the scope of what was proposed here, at least as far as I understood it. To me, a code review is just that, a code review. I've only worked in one area of software development and only on the software testing side, so if a review of the code is not what was proposed, then please clarify what you mean by "code review".

Are there any other communities that provide a good example of what you're talking about @csteele ?

I'm sorry, work pulled me away from here for a couple days. It's rare, but does happen. :frowning:

Let me also apologize for mislabeling my interest. I slipped into 'shorthand' saying Code when I really meant Applications & Drivers. I'm not speaking of a QA style code peer review. Although I have to admit, it would be quite interesting.. Sorry, I was speaking of a User Driven review of the 'desirability' of installing a specific App or Driver on their hub.

It came up recently in this thread:

I asked this question in the Developer forum to understand what an 'unjustified' review would yield. If the site had an admin, would they "alter" the review? On Demand? Should a conversation be held with the reviewer to correct any errors and hope they edit their review? Or go the other way and submit a negative review of the reviewer?

Interesting.

So, Habitat staff devs wouldn't be allowed to do reviews, as their (Habitat) code is proprietary and not public?

Yeah...that's exactly what I meant. What a complete waste or oxygen.
(Since it seems not everyone picked up on it.....#sarcasm)

Let me ask another philosophical question in line to this thread....

If code was verified and tested to a certain threshold, would it be made available under the drivers on the hub? A separate section under the drivers, perhaps? Or would it be more aligned with some flair on posts that says it was verified and tested?

Perhaps certain apps / drivers could get picked up by HE team themselves and integrated into the system. Given how small the HE team is, throwing some of the talented members of the community a shekel or two maybe and then integrating some of the popular solutions into the platform might increase its overall value, whilst increasing the speed of its development as well.

If there was a positive thumbs up score/vote for certain apps/drivers, then HE team could review (at their discretion) if the code would make sense (stability wise) to be part of the system proper.

Hubitat staff has previously mentioned being open to code being offered to them.. I know for a fact code exists within the hub that was created outside of Hubitat initially. How much the embedded code resembles what was offered, I don't know. :slight_smile:

I thought I'd remembered as such. I suppose if they're open to the community aiding with development in that way, then it would be great to see a few more things become apart of the platform proper. Not sure what agreements would need to be made with those that develop solutions, but i'm certainly thinking that they could expand the platform more quickly by utilizing the community efforts on top.

Obviously there would be difficulties with code that has been ported from elsewhere, or code that is specifically using unsupported workarounds for certain devices. But there are a number i'm sure, most can point to, that would make sense to be part of the standard hub platform.