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.
Featured Content Ads
add advertising hereEvery 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.
Featured Content Ads
add advertising here- 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).
Google’s second big area of failure when its comes to technical searches which is simply put… lack of context. The reality is every time we as a programmer do a google search we are in a very specific spot that could be fairly easily narrowed down, once the context is understood the answer to our problem becomes trivial. Google has no means of taking this context into account which can often lead to wrong or confusing answers. Sticking with the git example there are a number of different contexts you may be in when trying to undo a git commit, two common ones would be:
- 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.
Featured Content Ads
add advertising hereI 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.
To highlight the importance of just how much context matters, let’s say a developer searches “how to enable CORS”. The generic answer to this
Header set Access-Control-Allow-Origin “*”
assumes the user is just building a standard website and using apache. If we know given the context that the user is on nginx the answer changes to something like
add_header ‘Access-Control-Allow-Origin’ ‘*’
or if a developer is on some cheap hosting provider and does not have access to apache config, only PHP then the answer is
or if we know our developer is working in a mo
NOW WITH OVER +8500 USERS. people can Join Knowasiak for free. Sign up on Knowasiak.com
Read More