Why Google (kinda) sucks for developers, and the solution to fix that!
I’ve been building web applications for 10 years now, I’m big on always learnings and improving my dev skills. So after a couple months of monitoring my own coding habits, I found that I’m spending about ¼ of my dev time implementing code I have written before, about ½ my time is spent working out silly little obscure bugs, then ¼ is spent on understanding requirements, thinking about how to best implement a new feature. It’s very possible I just suck as a programmer, but it may also be that other developers spend most of their time rewriting common code and working out stupid little bugs.
Every developer should admit that without Google and Stackoverflow they would be basically be up the river w/out a paddle… i.e: royally screwed… So thinking a little more critically its really Stackoverflow that has the answers we need, and it’s the Google search engine that finds the good answer for us. I’ll be forever grateful for this SO/Google relationship because without it I would pry not have a livelihood, BUT... I feel like there is still a huge gap when it comes to solving technical problems, fixing bugs, and getting answers or understanding to the common coding problems we developers run across.
So what the heck am I saying? I am saying that Google kinda sucks for developers searching technical related problems, take for example this common spots that as a developer you may have run into.
You push a commit of a feature that totally breaks your web application, so you quickly want to revert that commit so you don’t piss off your customers (or your boss). So if you don’t know how to do this off the top of your head you have to figure out what you should be google searching to get the answer, you may try something like: “how to undo a git commit” or “get revert my last commit” . If you google those terms or whatever term you would google in that spot, you’ll notice a couple of areas where Google fails us as developers.
The first most obvious failure area IMO is the top results are often (usually) from software products who are doing SEO on keywords that their target audience may search. I.E: their goal is to provide evergreen content that funnels you into their sales channel so you buy their product. Ex: of searching “how to undo a git commit” 4 of the top 6 results are products trying to win you as a customer.
- https://code.likeagirl.io/how-to-undo-the-last-commit-393e7db2840b product
- https://www.git-tower.com/learn/git/faq/undo-last-commit product
- https://sethrobertson.github.io/GitFixUm/fixup.html
- https://www.hostingadvice.com/how-to/git-undo-commit/ product
- https://stackoverflow.com/questions/927358/how-do-i-undo-the-most-recent-local-commits-in-git
- https://www.atlassian.com/git/tutorials/undoing-changes/git-revert product
So evergreen content is not the worst and sometimes (albeit rare) it can even get you a solution to your problem. The slight annoyance is that you have to sift through the whole article and oftentimes decline a few popup adds. Not a huge deal, but it does waste time, and that wasted time does add up. But still this is not a huge deal as we can just scroll down to the stackoverflow answer or perhaps another source we have learned to trust over the years such as php.net (for php developers) or w3schools (for javascript developers).
- 1.) You are an employee on a team of developers and you pushed a commit to a branch you should not have. (Pry looking for “git revert
&& git push”) - 2.) You are working locally and you just committed something locally but wish you had not. (Pry looking for “git reset HEAD~”)
I’d encourage you to try and google this problem and see just how confusing the Stackoverflow answers can be, in fairness the stack overflow answers are great for the actual question that was asked, it’s just that the google search often returns a question that is different than the problem you are having. What we really need is a better tool that “finds the right question”. IMO Google is failing us here a lot of the time. So this brings me to the final and most important reason that google sucks for developers.
Google is built for advertisers to promote their product not for people to get answers to their problems. Despite what Google wants you to think, I suspect that the main reason that Google (kinda) sucks is that they intentionally don’t work hard to find you the correct answer. I suspect there is a balance here, as they have to provide some hard value (so you don’t use bing or something) but if they were to just “give it away” (the correct answer) to easily you would spend less time on their “website”, do fewer google searches, and provide them with less opportunity for advertising revenue.
I don’t want to get too conspiratorial, but with many technical searches I think it’s in the realm of possibility that Google knows the best result (through chrome analytics, no follow up searches and/or click through rates on a stackoverflow link for example) and intentionally places that result lower down in the SERPS. Again with the example search query of “git revert a commit” the Stackoverflow answer is ranked #5, it is certainly possible that the #4 answer from hostingadvice.com is actually better than the stack overflow answer or maybe the google algorithms just got this case wrong, but I think it also possible and IMO somewhat more probable the google algorithm knows the Stackoverflow answer is better and chooses to rank it lower for business/financial reasons.
The secondary and far more conspicuous problem lingering right behind Google’s potential misaligned incentives, is the blatantly misaligned incentives of pretty much every other website in the world. Allow me to explain this further with a quick geek out session. If you were to view your goal as “finding the solution to your technical problem” and you were to view Google’s goal is to “generate advertising revenue by providing answers to problems” you would see that they are roughly in the same direction, you could even take the angle between your goal and Google’s goal, let’s just roughly say like a 20% angle - call it theta θ. Now I would submit that most websites that Google links to, where you are actually getting answers, have a goal/incentive that is further misaligned, i.e have a greater theta than Google. There is of course some range of theta here, websites like Stackoverflow or Wikipedia with low theta’s as their product is largely based on providing good answers, and on the bad side websites like https://www.atlassian.com/git/tutorials/undoing-changes/git-revert who’s goal is to get you to sign up as a customer, and don’t really care about solving your problem except to the degree it wins you as a customer. On a fun note some theta’s might be over 90%, i.e go in the wrong direction, so your get lied to and a little bit dumber or more confused, precisely in order to get your money.
So speaking of aligned incentives, what is my incentive here? Well I am working on a solution to what I view as the “Google (kinda) sucks for developers” problem, and I want developers to try it out and if possible get involved. So here is my idea for a solution and how I want to go about implementing it.
Ultimately I want to develop a “technical search engine” completely based on community answers. So all answers will be provided by the community and voted on by the community. Additionally, search queries would be specific to a “context” or a project, I believe in this way it would be far easier for the correct answer to be associated with the user query as it is very likely another user building a similar project was in the same spot. So upvotes/downvotes will be associated to how well an answer solves a query given a context.
The main point here being that a little context (i.e the web server or dev tools being used) completely changes the correct answer.
So solving the next problem; aligned incentives. The goal of this technical search engine (which I’m calling Grepper) is to be entirely driven by the developer community, to incentive the developer community as well as align incentives (keep the theta as low as possible) anyone who uses Grepper will be able to “donate now” cash money to the developer who wrote the answer. Hopefully this will incentivise developers to provide answers when they have a hot second to do so, and it will also ensure that only really helpful answers get donations.
You can then vote on the answer or add your own answer. The grepper community is still small, but it’s growing quickly as more and more developers are seeing the value and vision of what Grepper could ultimately turn into. The grepper plugin has a lot of answers as is, and provides a decent amount of value in its current state, but I’m really excited to see what it could grow into as more developers join and add more and more awesome answers.
You can download and start using Grepper in the Chrome store. Also, if you are interested in getting more involved in Grepper let me know @taylorhawkes - it is just me working on it right now when I have spare time, so if your a developer with free nights and weekends I could definitely use some help.