Maybe for things like mobile applications or React or stuff like that, where there are many patterns to follow, it simpler to see if something may be wrong, but I still expect an high degree of false negatives.
Maybe for things like mobile applications or React or stuff like that, where there are many patterns to follow, it simpler to see if something may be wrong, but I still expect an high degree of false negatives.
At the beginning, maybe you sign up some super high-end 10X developers to do reviews. Also run some tools like SpotBugs or Coverity or something.
Then when the ammount of reviews goes up by 10X, what are you going to do? You can't possibly find many 10X developers that are willing to review random crap code.
So you end up reselling cloud-based Coverity licenses (SpotBugs is free).
Also, this only works if the company is willing to share its code with a random startup. Which is kind of a no-go for large shops. So who do you sell to? Large shops won't allow access to their code. Startups would, but they either won't pay in principle (hey we can use SpotBugs or Coverity) or won't pay much.
Can you make a business of it? I don't know, but there are some investments being made, so I guess there is a better story than the one I see.
On functional terms, we have a couple of thousand reviewers that have signed up to review. Our tooling helps them work faster; long term, we'll also provide this tooling to internal terms.
So far, we have about a dozen of the Fortune 500 signed up; larger teams, for a variety of reasons, are more open in some cases (one of the many learnings of this startup).
Edit: signed not signing.
"we have about a dozen of the Fortune 500 signing up"
Let's be honest. What this means is that someone in the Fortune 500 clicked on your email advertisement. Maybe installed your software.
Do you have anyone in Fortune 500 running critical business on your platform?
> we have a couple of thousand reviewers that have signed up to review.
Anyone can sign up a couple thousand "Mechanical Turk" reviewers in no time. Or "RentACoder" or whatever. What is the value provided? Where I work, the value of "review" provided by someone not deeply involved in the code is "0". Which is why you ask some relevant people to review the code.
I would say the difference on the reviewer side of our platform is in quality. We are working to surface this more.
Totally true in places like mobile/react, or projects where teams are unlikely to have significant internal expertise despite technology in production (see a midsized game studio running an erlang server for chat) providing value is easy. We believe our approach is working, and will continue to get better.
(On a personal level -- huge fan of your work!)
The only right answer here is automated code formatting and linting.
`.map(ifSome).getOrElse(ifNone)` infers the type from `ifSome`, and forces `ifNone` to conform.
`.fold(ifNone)(ifSome)` infers the type from `ifNone`, and forces `ifSome` to conform.
Meanwhile, `match { case Some(x) => ifSome(x); case None(x) => ifNone }` will correctly infer from both cases at once, and give you the greatest common ancestor.
However, it does seem like the bigger need is the right code the first time. Of course, that's impossible, but this seems like a secondary need rather than the primary issue.
Aside from that, I'm not sure if the employee developers will get annoyed with having a third-party come in and "tell them how to do things" or potentially mistakenly point out non-issues. I see why management may want to do this, but I wonder whether the developers will be pleased having a third-party put on their turf.