Full Text Search: The Key to Better Natural Language Queries for NoSQL in Node.js
As sites age, it is not uncommon to realize that a new platform or infrastructure is needed. This need for a new platform can result from a variety of reasons. It could be that the current platform is no longer supported. It could be that costs for the current platform are too high. More likely, it is that new features or optimizations are needed that can only be obtained with a newer or more modern platform. Regardless of the reason for moving to a new platform, or even for just doing a large redesign, it is critical that you do your migration right.
Changing platforms is risky.
If you are going to change your site, it is critical that you don’t inadvertently drive visitors away. Visitors come to your site via a variety of means; however, most are direct, through search, or from link referrals. Having direct visitors is premium and something to be maintained the best you can. Today’s web users can be a fickle bunch with a short attention span, so if you do something to your sites, you run the risk of sending a direct user to the search engines to find alternative sites. For each change you make, whether it adjusting a feature or simply moving items, you need to consider the potential impact
Use care if cutting features or functionality.
It is critical that, when migrating to a new platform, you make sure your newly launched site includes the functionality that you had in the original system. Releasing a site that is missing features can give the impression that features were dropped or broken, thereby making the site less desirable to visitors.
One site I regularly use is SEMRush.com. SEMRush is a site that helps with optimizing a web site for search performance. SEMRush made a change to a project listing report that cleaned up the page so that it not only seemed to load faster, but also looked cleaner and allowed more information related to sites to be listed on a page. Although this page was more streamlined, some of the information on it was moved or removed. Perhaps one item they left out seemed like a small item; however, it was an important one for how we used the site. It was a simple counter that showed the amount of allocated usage that could be done within the subscription level. Being that most users don’t want to exceed their account limit, knowing the usage is important. When asked, SEMRush stated that the missing information would be returned in the next update. In the meantime, we are left guessing at usage.
Although this example won’t drive us away from the product, it is possible that other features that seem small could drive a user away.
Don’t make it harder on your users.
There is often a push to streamline user interfaces, especially when doing a migration. If this streamlining is making it easier for your users, this can be a huge positive; however, not all streamlined changes are good.
With SEMRush, some of the tracking and usage numbers were moved. These had been displayed at the top of the main project reporting page, where it was easy to find. This also was the page that was most relevant to what a user tends to do with the information. In the migration, these numbers were shifted to a pop-up (as shown in Figure 1) that is displayed by clicking a button.
Figure 1: The Limits information now requires clicking for a pop-up
Even though the location of the button to access these is where the values used to be displayed, the site now requires the user to take more actions to get the information. They must click to get a pop-up to get the data, and then they have to click again to make it go away. Adding extra work, and in this case moving a feature so it is not as easy to find, can have a negative impact on your users’ experience.
Don’t underestimate the time and effort to migrate.
I have yet to see a project where a migration to a new platform happens quicker than expected. Like any project, there are often unforeseen issues that can potentially impact the scope of work and the timeline for a migration. A new platform is often a big deal that takes time to evaluate and plan.
When planning for a migration, it is important to consider the impact that this time will have on your site. If your development efforts are spent migrating existing functionality, time is being taken away from adding or creating new features. This can lead to a time where your site is not evolving as much as you’d like. Of course, the trade off is that, with a new platform, you can hopefully expect that future updates and improvements will happen quicker after you’ve migrated.
Because of the amount of time it takes to migrate to a new platform or design, many companies try to cut corners.
Multi-part roll-outs can be very, very bad.
Migrations can take a lot of time, so there can be a push to roll out a new site in stages. This can work if you maintain all the features through a relatively seamless balance of the old systems and new. What should be avoided is replacing an existing site with the first phase of new site that doesn’t contain all of the existing functionality. In most cases, it will appear that you have dropped functionality, which I’ve already stated is bad. Unfortunately, you can only say “we’d never do that” if you are the top-level decision maker. There are many companies that will push for early release due to the time and cost invested in doing a migration.
As an example, in doing their migration to a new platform, AngiesList.com rolled out their new site before back-end features such as the search filters were completed. The result is that the site now lacks functionally that it had before. From a user perspective, the site’s usability (greatly) decreased.
If you are not familiar with AngiesList.com, it is a site that allows members to search for service providers for a variety of home services and more. For example, if you need a plumber, you are able to search and find one in your area. You also can see ratings and customer feedback as well. Ratings are by members so there is a little less anonymity, which increases the credibility of the information.
One of the features that Angie’s List did not initially migrate was the ability to refine a search so to get results that are more localized. You can see these filters on the left side of Figure 2. Angie’s List did not include these filter options in the initial release on their new platform (as you can see in Figure 3).
Figure 2: The Search Filters on Angie’s List
Figure 3: What users get for search filters now (none)
With the new platform, in searching for a contractor to do a home repair, I get results from the entire region. This is a 50+ mile radius in a big city area. The search filters for the site previously had allowed me to filter down to within a few miles, thus allowing me to search my specific city instead of getting the neighboring cities and towns.
The search features will be back in a future update to the site. The result of this partial roll-out on the new platform is that a user looking for more localized results has to invest a lot more time digging through the updated system. Additionally, because sorting of results is also not possible (at the time of this writing), users will spend even more time digging through the longer list of suggestions.
Don’t ignore the impact of back-end changes.
Changing platforms can have a variety of other impacts as well. For example, if changing platforms changes your URL structure, you run the risk of impacting your search rankings, which will most likely result in losing traffic. More and more people are using search as a primary means of navigating the web, so it is more critical than ever to make sure you do everything you can to retain your search rankings. Granted, there are times when moving to a new platform might result in long term gains for search rankings if the new platform optimizes your site for search; however, you need to weigh potential short term loses against the potential.
Quality Assurance and usability testing has to happen.
Before rolling out changes, you have to make sure you run your sites through not only quality assurance to make sure things work cleanly, but also through usability testing to ensure it still functions as your users expect. In the case of SEMRush, end-user usability testing would have likely flagged the issues around moving and dropping items. Granted, user testers would likely have responded that these changes would not drive them away, but that they would need the missing data returned quickly.
In the case of Angie’s List, feedback from users could have made it clear that removing core features such as search filtering would be detrimental. User usability testing would have likely indicated that dropping the feature would be enough to drive them to other sites. With such feedback, it would have likely been clear that they should not roll out the migrated site until such features were also ready.
Know the risks of migrating.
Codeguru has made similar mistakes in the past, so we know the impact of dropping features in a migration. In some cases, we were forced to migrate quickly to a new platform due to a change in ownership, which required using a different content management system. In those cases, you have fewer options and often very little time. The potential loss (short-term or otherwise) of traffic is a risk you take in those situations. In cases like SEMRush and Angie’s List, the migrations seem to be more about streamlining sites and moving to platforms that are better for the long term. As such, they were less likely under time pressures to migrate.
If your focus is to make things better for your users in the long term, don’t risk losing your users by rushing out site migrations or updates that are not complete. There are many cases of software companies that rushed out updates to their products when the products weren’t ready. Although many companies can survive a bad update, not all do. Is it worth the risk? If not, take the time to do the migration or update right.