Styles

Sunday, February 19, 2012

Which is the better search engine, Bing or Google?


Every once in a while I hear the question: Which is a better browser, Bing or Google?  Like most questions like this, the answer isn’t one or the other, but each has its own strengths and weaknesses.

User Experience:
I like clean, simple, and straightforward software.  Applications that do everything under the sun generally annoy me.  Google’s home page is obviously pretty simple.  You see the Google logo (or a variation of it), a search box, and little else of note.  It’s pretty simple to understand.  Bing, though, somehow managed to keep the simplicity of Google but add a background image to the search page with areas that you can learn more about the image.  If you want the simplicity, it’s available to you.  If you want a quick distraction and want to learn something at the same time, Bing can provide that easily too.
Winner: Bing

Searching for numerical information:
If you are looking for prices for airfare, hotels, gadgetry, etc., you’re probably looking at several sites and comparing prices.  Though Google appears to be changing, Google’s primary approach to this situation is trying to give you links to sites that have price comparisons, such as expedia.com.  Bing, on the other hand, has the ability to look at all of these websites, pull the information off of them, and then gives you the best prices based on the times you give it.  No more jumping from site to site trying to get the best price!
Winner: Bing

Searching for qualitative information:
Sometimes, when on the internet, you need to find information that is not easily compared or quantified.  I find myself wanting to search for this type of information often while at work looking up a new technique or trying to troubleshoot an obscure error.  Google has a great ability to give relevant results containing all of the important search terms.  Bing, on the other hand, does a relatively poor job with qualitative searches.  It tends to ignore some of the search terms as it sees fit, and will sometimes correct your spelling without giving you an option to override the correction.
Winner: Google

Searching for my blog
Most of the people that come to this blog from search engines come from Bing.  To see why, I put in some search terms that I thought were relevant to my blog, and my blog was on the first page on Bing.  My blog didn’t appear in the first five pages of results on Google.  I’m not an SEO expert, so I don’t know why, but it’s clear that Bing loves me more than Google does.
Winner: Bing

Conclusion
If I’m searching for anything that can be counted or compared, I use Bing to get the information I need.  Its greatest strength is pulling information from sites so I don’t have to go there myself.  If I’m looking for something more obscure, or if I’m looking for something that would easily be contained on a single site, Google is usually my choice.  When in doubt, I start with Bing, but jump to Google if I don’t see any meaningful results in the first page.

Sunday, February 12, 2012

Why User-Centered Design is absolutely vital for the success of your software project

Most custom software I’ve encountered is designed pretty poorly. The primary problem stems from the fact that user interfaces are typically designed by one of two groups: software developers and/or graphic designers. Both software developers and graphic designers play an important role in the completion of a successful software product, but neither makes great interfaces. In general, software developers make interfaces that are easy to create by using idioms that map to the underlying data store. Graphic designers focus on creating interfaces that maximize the initial “Wow!” factor. But in both cases, the interface is typically cumbersome and unintuitive.

Earlier, I had written about how technologists need to know more about marketing. Since needing to know more about marketing is a rather vague goal to strive for, it’s important to know about the next best thing: User-Centered Design, or UCD. What a specialist in UCD does is interviews probable end-users, watches them complete their tasks, and interviews business stakeholders in order to fully understand the needs of the users. Once these needs are met, a User-Centered Designer would create the outline of a software solution that would be easy for the users to understand and more fully meets their needs. It’s essentially just marketing concepts applied to software design.

Typically, a business person looking to create custom software doesn’t want to spend the cost up front necessary for a thorough UCD effort. However, these costs are almost always worth it in the long run. Consider these:
  • By having a thorough understanding of the user’s needs, you can maximize worker productivity
  • By knowing how the typical user goes about completing their tasks, you can minimize user training time
  • By knowing the end-goals of all parties involved, you will minimize the amount of rework after the product starts being used
  • By increasing productivity and decreasing training time and rework, you will increase overall satisfaction and acceptance
When put in these terms, it’s tough not to put forth the extra effort up front in order to increase the odds of your project being adopted successfully.

Sunday, February 5, 2012

Why software developers make lousy testers

Developers make lousy testers, and I say this both because I’ve been a developer and because I’ve been a team lead/project manager who watched over other developers.  Yet companies continue to expect their developers to QA their own work.  Of course developers need to test their work before giving it to someone else – it’s just too easy to make an obvious programming mistake.  But allowing code to be put into production without a non-developer viewing the code is a bad idea.  Here’s why:

Developers are used to working around problems.  
When I’m testing something I’ve built, I might have made a change that affects several pieces of functionality, but I’ll test items one at a time.  Whenever an unexpected problem crops up in an unrelated piece of functionality, I will make a note of it, but I will work around it in an effort to finish my original test plan.  As a result, I’ve gotten good at working around problems in web sites.  I will do it on third-party sites without thinking.  It means that I sometimes will overlook errors because I forget that the end user can’t diagnose technical problems and work around technical issues as easily as I can.

Developers get used to quirks in their software.  
I’m disappointed to say that I can’t think of an application that didn’t have some quirk in it that I wish were eliminated.  The issue is similar to the one above in that we see an issue, think “I’ll fix it later”, and never do.  After seeing that quirk for a period of time, it just becomes a normal part of the interface.  When this happens, and the user doesn’t say anything, these quirks get to production.  Having a thorough testing by a knowledgeable tester can help eliminate these issues.

Developers focus too much on “does it work”, rather than “does it make sense”.  
Developers are primarily paid to turn a design into working software.  Therefore, their focus is on making the design work, not making the design.  When the design isn’t user friendly, or if the design was done by a developer, user interface difficulties become low-priority to fix.  End-user testing can help eliminate these problems that annoy the user.