PlumberSurplus.com Ecommerce and Entrepreneurship Blog | About | Contact | PlumberSurplus.com Store

Recovering from a Serious Website Error: Four Simple Steps

Posted on April 29, 2009 by Trevor

Oh no. It's happened. I was making a fairly ordinary update to one of our eCommerce websites. I had tested it pretty thoroughly and gone through the whole procedure of preparing it for launch. I held my breath and launched it-- and got an error screen. I refreshed the site homepage, and my heart sunk. The site, the entire site, was broken. We lose literally thousands of dollars an hour when the site is down, so this was a huge deal.

As a developer, what do you do when something goes very, very wrong? You're not expecting it: you may have prepared for it but you didn't believe it would happen. And now it's staring you in the face. And depending on how you handle it, you can either recover quickly with minimal losses or you can flounder and make it even worse. Here are a couple of points I've learned that can help avoid the latter.

  1. Calm Down - I can't tell you to stay calm, because you probably lost that when things started going wrong. But you can calm yourself, and you're going to need to if you are to respond properly. Rash mistakes can easily compound the problem, making it many times harder or even impossible to recover from. So take five seconds, sit back, breathe, and tell yourself, "OK, this is bad, but panicking would only make it worse. So I'm going to be careful and do things right." Then just follow through, solving the problem as you would any other. The urgency of the situation is useless in helping you solve it, so forget about it. You'll be more likely to see solutions you otherwise wouldn't, and less likely to miss further dangers.

  2. Be Honest - Your first impulse may be to try to cover up any mistakes you made or anything that could lead blame to fall on you. However, your first priority is to fix whatever's gone wrong, and that often runs directly counter to that impulse. The first step to solving a problem is figuring out exactly what the problem is, and that can't happen if everyone involved is afraid to release any information in case it might inculpate them. Remember that you need to be honest with yourself, as well. Don't try to convince yourself that it wasn't your fault or it's not that bad if it was or is. This is also a management issue: managers should make it clear in their policies and behavior that, while subpar performance isn't acceptable, no one will be punished or scapegoated for owning up to their mistakes (my own managers were very understanding!).

  3. Look Forward - Computers are (usually) programmed to obey logical rules. They perform the task given to them, exactly as it is given to them. They don't worry about things like pressure or situation. Humans, however, aren't made that way. We have emotions and operate, more often than not, on general heuristics and hunches rather than logic. This is good in many cases; we can do more with less than computers. But in certain situations it's a problem, and one of these comes up often in crisis situations. One of our rules of thumb that we tend to follow is that if we've already invested ourselves in a certain course of action, we try to protect that investment and, if necessary, follow it with more. Unfortunately, if it's a bad investment, we end up "throwing good money after bad", losing more and more while becoming more and more attached to one course of action. This shows up in crisis situations when we get fixated on one course of action, trying more and more variations on the same ineffective theme. We can even end up stupidly repeating the same action over again, hoping that this time it'll work. Instead of doing this, try to forget about what you've already done and think instead about where you want to go. When making a change to a website, for example, I might be tempted to think, "Well, since we've already put the changes on the site, we should try to fix those changes." However, my immediate priority is to get the site working; if it's faster to do that by undoing all my changes and going back to the original version of the website, that ought to be my course of action instead.

  4. Be Lazy - This one may surprise you. Being lazy isn't usually thought of as a good quality, and of course I don't mean that you should be slow and unwilling to do the work needed to fix things. However, there is a place for laziness in being smart about your time and effort. Let's take an example to clarify. Suppose I've got a problem that has two possible solutions. There's a 90% chance that I need to undo all my work, figure out what the problem is, fix it, and put it back in place. However, there's a 10% chance that all I have to do is re-apply my change because it got corrupted the first time. My initial impulse might be to go the undo-and-fix route. However, if I'm smart and lazy, I could realize that I could at least try the other option. Even though it's less likely to fix the problem, it takes an insignificant amount of time and energy. That way I'm more likely, in total, to get the problem fixed sooner.

That last point actually turned out to be the case when the site went down on me. While I was starting a large roll-back to a backup version of the site which would require a lot of cleanup, someone else suggested simply restarting the site on the server. That turned out to be the problem, and it was back up with a minimum of downtime and cleanup work. While I learned that point the hard way, I plan to keep all of these in mind in the future.



Kohler is arguably one of the most innovative brands in the home improvement industry. The new Karbon faucet has completely transformed the kitchen and more specifically revolutionized the kitchen faucet. Meanwhile Kohler seems to effortlessly create bathroom fixtures that are not only sleek but save water, like the Escale toilet.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkListFacebookTwitter

The Importance of Documentation in the Workplace

Posted on April 7, 2009 by Trevor

Documentation, the recording of organizational structures, policies, actions, and goals, is vital to any business, and doubly so for those of us in development. When I came on board I inherited roughly 200,000 lines of code that I had to learn well enough to find and pinpoint individual errors, within the span of about a week. While experience and clues from within the code help somewhat, the job would be nearly impossible without documentation of some kind. And documentation will continue to be important going forward: with so much to manage, it's unlikely I'll remember exactly what a particular piece of code does even a few months down the line unless I leave some easily understandable record. Even outside of the development world, documentation plays a fundamental role in business. It codifies procedures, ensuring everyone in the company does things the same way (hopefully the right way!). It streamlines processes, allowing people to look up answers instead of asking coworkers or reinventing the wheel. And it acts as protection during audits, helping to pinpoint any actions taken against policy. So, how should documentation be developed and integrated into your business practices?

First, it's important to develop your documentation alongside the actual process. Too often developers take the attitude, "Code first, document later." That would be fine if we could stick to it. But in practice it tends to become, "Code first, then code something else, and put off documentation for another time." Instead, you have to consider documentation a priority, updating it while the work you've done is fresh in your mind. Will that make you work slower? At first, yes, but over the long run it should save you time. Instead of thinking of documentation as something that hampers your real work, consider it as part of that work. You can't set aside part of your job because it's slowing down another part.

Second, streamline your documentation process to require the least amount of extra work. It's especially important not to duplicate information. When I'm documenting code, for example, it's often possible to intersperse the code and the documenting comments so that half of the documentation is the code itself. That way I'm not duplicating information by writing it once in code and once in the documentation. Another possibility is to set up automatic documentation procedures, so that you only need to manually fill in specific information. I have a Google document to record changes I make: it automatically fills in several fields for me, and other fields are set up to ease entering that information. This took a bit of extra effort to set up at first, but it reduces the ongoing work.

Third, be sure to structure your documentation. If you're documenting your work as you do it, it's likely that the documentation will be close to the actual work, both in detail and in location. That is wonderfully helpful when you're already looking at a specific piece of work, but what if you're trying to find that piece among all the rest? For that, you need higher-level documentation that gives the general structure of your work, explaining each piece and where to find it. It might also be helpful to give pointers to this general documentation from the specific pieces so you will be able to follow it back. However you choose to do it, make sure that your documentation gives a clear starting point to someone who doesn't already know what they're doing. Hunting for the right documentation is often just as frustrating as trying to understand the work itself.

As I come to grips with the code I have to work with and the duties I'm expected to perform, I'll be reading, updating, and creating the documentation to go with them. I'm hoping that with these principles I can efficiently create documentation enabling me and anyone else who reads it to get up to speed quickly and get the work done.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkListFacebookTwitter

Google Checkout Transaction Processing Fee Changes

Posted on March 25, 2009 by Zach

No doubt retailers that offer Google Checkout as a payment option are now aware Google is changing their transaction processing fees to a new tiered structure and removing the Adwords processing credits. This is a pretty large change they plan on implementing, and one that will likely be adding much higher processing fees for Google Checkout Merchants.

Old Fee structure V. New Fee Structure

Under the old model if you processed $100,000 in one month through Google Checkout which represented 1,000 orders you would be charged $2400 in processing fees, which include the per transaction fee of $0.20.  Seems legit right? But let’s say you also spent $10,000 on Google Adwords the previous month, you would get that $100,000 processed for free because they will process 10 times whatever your Adwords spend is for free and everything else at the normal rates.  Nice kicker huh, for taking on Google checkout and also using multiple Google services?

Under the new model if you processed $100,000 in one month through Google Checkout which represented 1,000 orders (this pushes merchants into the lowest tier of processing fees at 1.9%) you would be charged $2200 is processing fees, which includes the per transaction fee of $0.30.  The fees are slightly lower than the previous model, that's great right?  Maybe not, let’s say you still spent that same $10,000 on Adwords the previous month, under the new model you now owe the full $2,200 in processing fees! They are removing the Adwords processing credits.  Wha wha wha!

Our wonderful checkout representative plans on calling me this week to review the changes and let us know what they plan on accomplishing with the fee changes, but still that's a pretty steep increase in fees. The fees are especially high when you take into consideration, that we made the upfront investment to take on Google checkout, pay for the development and fully integrate Google checkout. Granted, they have tossed on some awesome promotions since we implemented the feature and have successfully heavily engaged users.  It’s still a hard chunk of change to write a check for (or never see as the case may be). On top of the hard economic times, I hope that this does not affect too many merchants in an extremely negative fashion.  I could see merchants with large Adwords budgets who process a lot of dollars through Google Checkout possibly getting thrown under the bus on this one.



The possibilities are endless with a bathroom remodel. Discover your classic side with a clawfoot tub, experiment with fresh bathroom vanities and coordinate it all with matching faucets. Shop PlumberSurplus.com 24 hours a day, 7 days a week for all of your bathroom needs.

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkListFacebookTwitter

Vanessa’s Variety for the Week of February 27th, 2009

Posted on February 27, 2009 by Vanessa

Jeff Hirsch spoke at the OMMA Behavioral conference on Tuesday of this week in New York.  The audience took note when he proclaimed “Behavioral targeting will surpass search in online ad spend by 2020”.  This may sound implausible in a search driven industry, but check out the other proclamations that once sounded extreme and are now true:

“A day will come when we can get all of our newspapers by home computer.”

“All bills and transactions will be carried out electronically.”

These are just some of the statements you will find in the following videos.  The first, from 1969, is an overview of what life will be like with electronic consoles or computers as we like to call them today. The other is a news report from 1981 about getting news on your home computer, as the video states one person was currently already using the service!





Some favorite quotes:

“Fingertip shopping will be one of the homemaker’s conveniences.”

“What the wife selects on her console will be paid for by the husband at his counterpart console.”

“With this system we have the option of not only viewing the newspaper on the screen, but also, we can copy it, so anything we are interested in we can go back in again and copy it on to paper and save it, which I think is the future of the type of interrogation the individual will give to the newspapers.”

“Also at his disposal is an electronic correspondence machine, or home post office, which allows for instant written communication between individuals anywhere in the world.”

“It takes over two hours to receive the entire text of the newspaper over the phone, and with an hourly use charge of $5.00, the new tele-paper won’t be much competition for the $0.20 street addition.”


Flash forward to this week:

  • George Simpson is discussing the downfall of print media.  He points out that “67% of surveyed respondents feel traditional journalism is out of touch with what Americans want from their news”.
  • Facebook is being utilized by developer entrepreneurs to run their own businesses.  This is part of an economic shift that will require individuals to maintain an online presence.
  • TechCrunch was at Microsoft’s TechFest this week and posted a video of technologies to come:





Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkListFacebookTwitter

Pay No Attention to that Man Behind the Curtain

Posted on January 27, 2009 by Archives

Normally I try to keep my blog posts “above the fold” technically, and shield you from the code that makes everything work under the hood. I realize that there are many great tech blogs out there, many of which I read, and that readers of this blog are more interested in the business of eCommerce rather than the technical aspects that make it work. As such, I try to talk about technical things of interest, but without any tech jargon or degree needed.
 
Recently this has begun to backfire on me, however, as some now view my job as “plug and play”. In discussing the available technologies and possible usages of them, I’ve been hearing comments like:

“Doesn’t SQL just do that already?” – In response to trying to figure out the best way to write search relevancy logic.

 “I’m sure Microsoft has figured out a way to do that” – Yes, they have. They have developed programming languages and technologies that allow highly skilled professionals to spend long hours writing code to accomplish that task.

Or my personal favorite, when comparing our needs to a product written for a different database, in a different language, and has been in development for 7 years – “we can likely do whatever they are doing”.

In an effort to reduce complexity when talking to non-technical users and speak in plain English, I’ve apparently erroneously conveyed to them that there is really nothing technical involved in eCommerce development. As far as some know, we have a “website”, a “server”, a “database”, and a long 3 pronged cord that connects them all seamlessly. Fortunately for us, this cord also connects to Amazon, Google, and our supply chain network as well.
 
I considered just posting a few large blocks of code to keep you on your toes, but figured it would get the same blank look I do when I try to explain what I do to my kids. So instead, just a friendly reminder to all you business types to give your developer a hug today, and be thankful you don’t have to hear about fine tuning SQL procedures for maximum speed and relevancy.

 

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkListFacebookTwitter

JQuery, AJAX and Other Buzzwords That Can Scare Away Customers

Posted on January 8, 2009 by Archives

Lately over here at the Surplus we’ve been focused on a lot of internal development to better streamline our processes, interactions with customers and suppliers, and other types of projects that add value to us as an organization but remain invisible to our customers. However, we have been looking ahead to this year’s development projects and have plans to do a lot of work on what we call “Customer Experience”.

With this focus, I’ve been poking around, looking for ideas and the technologies that may support some of the cooler features we may want to implement. In a post Web 2.0 world, we are looking for things that really add value to the customer, not just every cool little gadget, widget or flashy thing that might look cool.

One topic that has been particular warm in the online developer community as of late is the pros and cons of the new interactivity features as well as the tools used to develop them (read: AJAX, JQuery, javascript). In an effort to make the web work much more like a desktop application, developers are using more and more sophisticated techniques to push data back and forth without the user noticing. This provides much more real time feedback to the user, as well as adds a lot of functionality and makes interacting with the internet a lot more convenient with fewer time-wasting page reloads.

Take, for example, a familiar concept I’m sure you’ve seen and used yourself, what we call the “Product Selector”, where a user can choose a high level product they want to purchase, such as a bathtub, and using various slider bars, checkboxes, and other mechanisms, narrow down the result set to see the products that match their filtering criteria. BlueNile.com has used this for their diamond search for a long time. Product selectors like this are often very helpful and kind of fun to use. It increases customer retention and gives customers the ability to really find what they are looking for, or better yet, shows them a range of products that meet their criteria. However, there are drawbacks to the product selectors, including the inability for Google to crawl your products that are only accessible through the selector, the inability to have direct links to filtered results, and the ability to build a tool that the customer finds intuitive and helpful.

One big problem web-developers face in this post web 2.0 world is finding the balance between cool and functional. There is a fine line between enhancing a customer’s experience and frustrating the heck out of them. What is intuitive for a developer may seem obtuse to a customer (I’m pretty sure the developer is right though).

You can make a web page take you through 5 steps to create an account, choose your options, confirm your purchase, and agree to the terms, all in one single, seamless AJAX-enabled application. That is, until they realize they want to ship it to Aunt Gertrude instead, click their browser’s back button, and lose all the information they’ve entered, frustrating them to the point of abandoning the process.

Many of these new technologies break the expectations of the browser’s back button and bookmarks. Often these technologies can completely block search engine’s ability to find relevant data on your site. Often a page refresh or other unexpected action can cause the user to lose their place and what they were doing.

As a fan of emerging web technologies, I am looking forward to tackling some of these challenges in the coming year. However, I will be sure to be on the lookout for the unexpected consequences of clever web development.

So stay tuned, keep hitting F5, and look for some new features coming soon!

 

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkListFacebookTwitter

Vanessa’s Variety for the Week of January 2nd, 2009

Posted on December 31, 2008 by Vanessa

Happy New Year all!  I am out for the rest of the week so the variety is early.  There are some new posts that I wanted to share, but in addition to that let’s take a look at some of our favorite posts, top stories, and some of the biggest developments in the industry from 2008.

  • Google Product Search up 786% in the category of shopping search.
  • The Silicon Alley Insider reports on Digg’s revenue losses and why ad targeting, or the lack there of, could be a major factor in these losses.
  • Have your 2009 wish list ready for Google?  I know Zach does and Matt Cutts’ parents do, but submissions are coming in fast so add yours soon.
  • Jennifer Laycock released her second installment of “Six Lessons from a Wooden Boy”, but I recommend starting from her first post on the subject.
  • A legend about the inventor of chess may provide insight into internet retail growth.

2008 In Review



Internet Retailer released their top 10 stories from 2008, here they are in ascending order:

I know this couldn't possibly be everything, which events in 2008 were most memorable to you?

 

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkListFacebookTwitter

Three things Google Apps is Missing: What to Add to Make it a Real Cloud Computing Contender

Posted on December 30, 2008 by Zach

Recently we began moving our users to a full roll out of Google Apps, email, calendar, docs, sites, and the whole shebang. Needless to say, from the user perspective, it's been quite an interesting experience. Along the way I found a few items which I think would really improve the overall usability and experience of Google Apps for its users.

One of the largest gaping holes in Google Apps is any kind of task or project management solution to increase collaboration between their products. They have e-mail, calendaring, docs, chat, web pages and sites, though there is really no service to tie that all together to gain extra value from collaboration and management. I can see overwhelming opportunity here; the user’s ability to manage and share documents, calendar items, resources, web pages, sites, with the ease of one collective tool could help streamline department activities as well as interdepartmental activities throughout the organization.  By adding this function it would, in my opinion, take the product that extra mile and make it much more valuable to the small, medium and large businesses or groups of people collectively using Google Apps. But all hope is not lost, I have recently heard from a trusted source that Google is looking to break into this arena and round out their Google Apps offering.  Hopefully that solution will be pushed out soon so that we are able to reap the benefits of a more well rounded office and collaboration application.

The storage of other files and document types is my next issue. Since I already use Google for my e-mail, calendar, documents, web pages, sites and homepage, it would make sense to have the ability to store files that I may need (especially for work), which are not documents or formats Google apps uses or other items which I deem important. Having access to an online storage application that is built into the solutions I already use would be great.  If this was the case, I then care little about the computer I am using or location, everything I need is online in one location, ready for me to use. I understand the email and Google sites can, to a certain degree, handle this functionality; however, let's face it, it's no Amazon S3.

A transition from Microsoft Office is still not as smooth as it could be. I transferred my mail, calendar, contacts and many docs to Google Apps, I had issues with all of them except my documents. With email I had issues importing my folders and creating labels (I am still not happy with how that is working for me, I had hundreds of folders in Outlook).  I was also unable to get my contacts imported with all information and in the groups I had in Outlook. My entire calendar appointments were imported but all information regarding reoccurring appointments and attendees was not present. Those are just a few of the issues I had so, needless to say, I have had much smoother transitions to and from other platforms.

Finally, while these are not main features I would like to see or think would complete the product; these are some minor issues that continue to bug me that I think should be looked into.

Pasting into a Google doc without formatting: Nothing aggravates me more than trying to copy text or information from a website and have the formatting such as text size, color and spacing carried over into my Google Doc with no easy way to remove it. Typically I end up opening note pad, pasting the text there and then copying and pasting the text into a Google Doc.

Calendar notifications are not turned on by default. When rolling this out in my department we had a heck of a time trying to figure out why no one was getting notifications for new calendar appointments, we finally realized that notifications at least for us were turned off by default so appointments were being created and no one realized it! More than once, I ended up in a conference room by myself!

The Google Chat App sucks (even the online version is not much better).  Again, don't get me wrong I like Google Chat, but their chat client is just not up to snuff. I know that the online Google gadget has been upgraded but in all reality why isn't chatting with multiple people available in the client and why does the gadget pop out functionality duplicate my instant message conversations?

If you can answer any of these questions or have found ways to work around these issues your comments are welcomed and appreciated.  For now I think there are quite a few improvements that could be made to round out my cloud computing experience.

 

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkListFacebookTwitter

Vanessa’s Variety for the Week of December 26th, 2008

Posted on December 26, 2008 by Vanessa

Merry Christmas Readers!


Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkListFacebookTwitter

Upgrades: The Good, The Bad, The Ridiculous... and Sometimes Mandated?

Posted on December 17, 2008 by Archives

Some upgrades are proactive. After careful consideration and considerable time spent evaluating options, you decide it is time to replace a crucial component with a newer, better version.  Sometimes things go bump in the night; a server crash, your car’s transmission falls out, or Number 5 needs more input.  Whatever the cause, sometimes upgrades are forced upon you and you have to react quickly.

And sometimes upgrades are needlessly mandated; say, when a third party vendor, that you rely on for a major aspect of your business, sends you an email like this out of the blue:

In one month, you will be given access to the new platform, and you’ll be able to begin migrating your Website to it. Your existing platform will be removed 30 days later, thus completing the upgrade process.


Translation: We want to upgrade you to our new, unproven, untested system. And we want it when we want it, not when you want it. Oh yeah, and please do this as you head into the holiday shopping season.

This email caught us off guard and created quite a stir in our department. As a small to medium sized business, we don’t have the unlimited resources to do whatever we want, whenever we want. We plan our development projects out and schedule them in advance. So when we have a board full of projects such as EDI integrations, a new supplier interface, and a backend architecture upgrade already slated, and then a vendor, we pay for the use of their stable product, tries to dictate to us when to upgrade an already working product, we're not exactly thrilled.

The email went on to inform us that they realize that the upgrade window and timeline was small, so they’d happily recommend some high-priced consultants we could use to do the upgrade. How nice of them! So now we can pay through the nose to do an unnecessary upgrade we don’t want to do.

Apparently this didn’t go over well for their other customers either.  A few weeks later we received an email stating that due to the response from their customers, they were postponing the upgrade until after the New Year. It turns out that customers who pay good money for a reliable product don’t like being told how to run their business. And we don’t like being told to make major changes heading into the busy season. But mainly, we really don’t like throwing money and resources away for upgrades we don’t want or need.

Hopefully you don’t have this experience anytime soon. And if you do, make sure you let them know how you feel about it. Ultimately they have to listen to the people who pay their salaries.

 

Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkListFacebookTwitter