Home » How To

Category: How To

What does it mean to add value to your customers?

“How can I add value?”

This is the question I write at the bottom of my daily planner almost every day. Why? Because I want to train my brain to think in those terms. Why? Because I hear this is the key to success.

I never managed to answer this question adequately. And I had the insight that I need to answer a different question first! And that is:

“What does it mean to add value to your customers?”

Looking at this question, I realized that my efforts have been selfish. I was concerned with “my success.” The reason I wanted to add value is that I become successful by doing so. 

This question forces me to face the fact that I don’t know what “value” means for my customers. Yes, I can make guesses, but I don’t truly know. 

So many times, I have been tempted and followed through with this idea: what I do is valuable to me, so it must be valuable customers too. And if they didn’t see the value, that was their loss! This approach has resulted in projects that are too complex or in features that I thought were cool, but the customers did not care about them. 

And this has happened because I never paused to ask: “what is valuable to my customer?”.

Value is very subjective, I have discovered. I don’t handle loss very well, so I have a reliable backup policy. But others are much more willing to start over again, so backup is not essential. 

I value aesthetics and elegant design. But most of my customers value ease of use and the ability to manage the website themselves. 

I also have discovered that I am biased. And my bias is not the same as my customer’s bias. 

The first step in discovering what it means to add value to my customer is to be humble enough to admit that I don’t know and that I need to have a discussion. In this discussion, I need to ask the customer what is valuable to them, and if required, to help them discover their values in that process. I also need to set my bias aside and truly understand where the other person is coming from. 

The second step is for me to determine if we are a good fit. Based on what I now know about my customer’s values, can I truly serve them in their best interest? And sometimes the answer is no. And in this case, I have to send them away. 

But there is a way to refuse to work with someone that is not selfish. You can still add value by making a recommendation and send them to a specific someone else (your competition), instead of simply turning them down. This way, interacting with you has still got them one step closer to solving their problem, and you have been generous and trustworthy enough to recommend another person for them to work with. You may have lost a client, but you have earned trust, and in today’s world, trust is precious. 

So how can I add value to my customers? It first starts with showing empathy and meeting them where they are at. And in some cases, it means saying “no” and pointing them in a different direction.

Credits: my viewpoint on marketing and adding value is shaped in great part by people like Chris Do, Seth Godin, and Blair Enns.

Are you thinking of creating a multi-language website?

Creating a multi-language site can be a challenge.

I have had the opportunity of doing a couple of those. I am not happy with either of the solutions, but there are a few things I’ve learned along the way.

If you have a newsletter or a store, your customers expect that the entire process is translated into their language. This translation process must also include support. Because not all the plugins or software has multi-language support, this can be difficult to achieve. 

You will have to choose between using subdomains for our other languages or prefix your URLs. 

https://fr.example.com/your-page.html
versus
https://example.com/
fr/your-page.html

I used to employ a prefix before, but using a subdomain, I find it gives more flexibility if, later, I want to separate the languages into different, independent websites. A subdomain also helps keep your home page link clean:

https://fr.example.com
instead of
https://example.com/fr/

Using subdomains also offers more in terms of performance optimization, if that is important for you. 

You need to consider that the effort to manage your website increases with each language. It is almost like every new language is a new site you have to worry about. Because of this, you need to consider carefully if it is worth the effort of having a multi-language setup. 

Let us look at an example

Let’s assume we have English and French as our languages. 

You have two options: 

1. Create two separate websites, one for each language.

2. Create one website, and use a translation plugin to create the translation website, on top of the main language website.

Two Separate Websites

A two-websites option gives you the most power and flexibility. And because the sites are separate, if you decide to give up on one of them or completely change direction, it will not affect the other. 

The downside is that all effort is duplicated: setting up, updating, maintenance, backups, and on top of that is keeping the websites in sync manually.

One Website – Two Languages

This is the option I have used most. You set up the website in the primary language. Then you install a translation plugin (like PolyLang), and you translate the site into the other language in small increments. The upside and downsides are flipped compared to the first option. 

There is considerably less effort with updating, maintenance, and backups. The two languages are kept in sync automatically. But because the two languages are tightly connected, they are a mirror of each other. So if something goes wrong with one, it will affect the other. This option also has a performance impact; for every page load, a translation decision has to be made to display the content in the correct language. 

The ideal solution

In my view, the ideal solution is two have two websites. Each one is maintained by a person who is fully responsible for their language: including support, customer care, updates, and so on. English would be the master copy, and the French language would mirror that as closely as possible. But the French website also has the flexibility of creating content or an experience that is much more specific to the French audience. The obvious downside here is that you have to have double the people who take care of the site, and that could add a lot of costs.

Potential Pitfalls to consider

Newsletter signup experience needs to be translated.

All the email campaigns need to have content in all the languages you are offering unless you choose to ignore on purpose those who don’t use the primary language of the site.

You need someone on staff to be able to respond to support requests in all the languages you offer.

Caching and SEO plugins don’t always work well with a translation plugin.

There are some technical aspects of how the webpages are rendered in a multi-language environment. Things like configuring the right language code, encoding, and locale options become important. 

Timezone is another thing to take into account. 

If you use a store, it may make sense to have the local currency for each of the languages you plan to use. This feature adds a layer of complexity when setting up the store and in connecting with your payment gateway. 

If or when you plan to migrate to a different framework for your website, multi-language content becomes very difficult to move and work correctly, especially when using a translation plugin to keep the pages in sync.

You have a great idea? Make sure your audience thinks that too :)

Some time ago, when predictive text typing was a “thing” on mobile devices, I had this great idea of adding the exact same features on desktop computers too. Just type in the first few letters, and the computer will make suggestions to help you finish the word. You would type faster and make fewer mistakes. What a great product, right?

I have spent one year creating and polishing the product, building the website for it, and also spent some money to have magazines review the product. 

What was the net result of all this effort? 

It was exhilarating to build this thing and overcome the tech challenges, but in business terms, it was a disaster. I sold just about three copies of this software. 

There is a valuable lesson I learned from this: test your ideas first, before actually building the product and service.

The good news is, in today’s world, you can test your idea for free and with very short setup time. And this post, I will share some tools to get you started. 

Social media

Social media is the most accessible medium to use and the quickest to get feedback on. Write a post about your idea, and ask for comments. Do you get any engagement? Are there any enthusiastic fans? Does it make sense to start a group around this on Facebook? Before you know it, you have your cohort of fans that will support you in building the “real deal.” And you will also have some precious feedback about how to build your service to serve your audience best.

A free website

Before investing thousands of dollars for a pro website, test it out with a free service.

WordPress.com is a good tool to use. Start with their free plan. WordPress is the one I use the most for myself and my clients.

Wix is another platform that has a free plan. I haven’t used it myself, but I’ve seen it working. If what you need to test out requires you to show some sort of design and less text, then I would go with Wix because of their powerful design editor that is not available in WordPress.

WebFlow is new to the game. It has a free plan, and it is aimed more at designers who what to greate outstanding pages without having to write code. If you are a designer, you will love WebFlow over the other options. 

Some important tips to consider

Intellectual propery

If you do not want to test your idea because you are concerned, someone else might steal it consider these: maybe your idea is not different enough, and that makes it super easy for anyone else to replicate? In which case, you may be better off pursuing a more innovative idea. Also, even if someone “steals” your idea, they don’t have you on the team with your insight, thoughts, and experience. There is a long road from an idea to a mature project :). 

From testing to an actual service or product

Regardless of what platform you choose, think about how will you grow if the idea turns out to be viable? You need to be able to export the content you have created for your tests. And it could be images, articles, or the design itself. It is always a good idea to document what you are doing for two reasons: if it has not worked, you will be able to learn something from it. And if it does work, you will have built a library of resources to help you launch the mature website/product/service.

The criteria I use when choosing a web hosting company

When choosing your web hosting company, it is useful to have your list of criteria well defined. 

You need to have this list before you start shopping around, or else you will be sold features you don’t need and, worse, missing business-critical ones. 

Below are my prioritized list and some notes. Keep in mind that as a developer, I prioritize flexibility over ease-of-use. 

  1. Enough disk space for what the website needs. When starting, 20GB+ will work.
  2. MySQL database – I don’t think there is any hosting without this, but make sure you have it.
  3. Speed – this usually translates into have SSD drives on the server.
  4. SSH access – I need this for automated backups and for the flexibility to add automatic maintenance script on the server. 
  5. Ability to send email – be careful with this; some hosting do give you this feature on paper, but it is not actually working because the email gets discarded on its way out, and there is no back reporting on it. If you have an online store and you need to send out order confirmations, lost email can be very frustrating to you and your customers. 
  6. cPanel access – I need this as a developer because I manage many websites, across many servers, and it is faster for me to work with a familiar piece of software. When cPanel is an option, I know I can set-up things quickly, and there are also plenty of diagnosing tools. Even if you are not a developer, you will likely hire one at some point, and it will be easier for them to help you with cPanel access. There is one more reason to have cPanel. And that is, you can quickly move to another hosting company, by simply exporting your cPanel data from the current hosting and importing it on the new one. Without this option, moving to a new hosting company can be troublesome and time costly. 
  7. Let’s Encrypt feature for automatic HTTPS – this important to have, or you will need to pay additional hundreds of dollars for it. 
  8. On-demand backups; You need to be able to do a full account backup at any time and do this for free. Backups are a form of insurance, don’t underestimate them. 
  9. Excellent support – this is close to the last option because if I have the ones above, I can usually sort out any issues by myself. But you may want this much higher on your list.
  10. Unlimited (or alt least 3) subdomains. Subdomains can be used for testing something out of sight from the main website. They can be used for multi-language websites. For memberships set-up. And in advanced cases for performance reasons. So make sure you can have some.
  11. And finally, there is price. I’ve learned my lesson well: cheap web hosting will cost you more in the long run, in lost business, frustration, and customer satisfaction.

If you plan to use a WordPress site, the hosting I am recommending right now is SiteGround. It meets my criteria as a developer, but it is also friendly enough to recommend it to non-developers, because of their fantastic support. 

How do you find customers?

I know this is a burning question in the minds of many entrepreneurs and freelancers. 

I don’t have a “how-to” guide that will guarantee your success, but I would like to share my perspective because it is not just about getting more business, but also about creating a better world for everyone :). I also admit that what I about to share does not apply to everyone or every business model.

My first customer was my first employer. They were buying what I had to offer, my unpolished, raw programming skills fresh out of school. I did not like that customer, but they taught me a lesson: 

your customers should find you, rather than you finding them. 

It took me almost a decade to understand it, though. 

My second customer was my second employer. But this time there was a big difference. They called me, and I had to decide if I wanted to work for them, not the other way around. They had already decided they wanted me there.

This may seem like luck, and that is what I also thought for a while. But it happened again with the third employer. And after that, I stopped being an employee and became a freelancer. And the people I work with today found me. 

It wasn’t until I read about inbound marketing that I understood what was going on. And that, in fact, luck was just a part of it, and maybe not the most significant part. 

What I was not doing was not sitting around, waiting for clients to call. I was continuously working. Either to improve my skill or to generously solve other people’s problems. 

When I began my freelance work, I’ve spent the first two years doing volunteer work. And they have been the best years. In those times, I would only do work that was profoundly satisfying to me. And I discovered how nourishing it is for the soul to be able to choose the people you are working with or working for. 

To paraphrase Seth Godin, the way to get clients is to do work that matters for people who care and to do so generously.

Contact forms done right!

What is worse than nobody contacting you for business? It is having to deal with a lot of Spam. Spam takes away from your attention, and it can potentially drown a valid contact request or a genuine request for support. 

I will be talking here about WordPress and specific plugins, but the general principles apply to other technologies as well. 

The contact form is an essential part of your business. You can get both feedback about how you are doing, but also it is a way for customers to quickly reach out to you, or for leads to ask presale questions. 

The easiest way to get a contact form in WordPress is to use Contact Form 7

But just installing and activating the plugin is not enough. There are two extra steps that I suggest you do:

First: get rid of SPAM. 

Yes, I know, in the first few weeks or months there will be no problems, but as soon as a script bot discovers you it will send a ton of Spam, and that will also affect your server reputation and your ability to send out email. Don’t wait for that to happen. 

To get rid of Spam activate and configure the CAPTCHA test. The one from Google works best, and I choose it most of the times. (If privacy is a big concern from you, I don’t know if Google can be trusted, so shop around!)

Second: Safeguard against email failure.

The way a simple contact form usually works is to accept the submitted message and then email you (the website owner) with the contact message. 

This way used to work well, but with the ever-increasing Spam problem, there is a chance that the contact email will never reach you. When and if this happens, you will never know. Unless…

Unless you also save the messages on the server where you can review them later. For this, I use the companion plugin Flamingo. Aside from making sure you don’t lose your messages, this collection of data can become a treasure when it comes to customer research: most common questions asked, or problems in interacting with your products and so on.

Bonus: Integrate with an auto-responder.

When you begin to get more messages than you can quickly respond to, a nice touch is to use an auto-responder to provide some quick tips or to reassure your visitors that you will get back to them as soon as you can.

When you do use Flamingo or an auto-responder, make sure you update your privacy policy to inform your users about that and be GDPR compliant.

A look into the (not so distant) future.  

Soon contact forms will be replaced with virtual agents/assistants. This is already happening, and it will be a game-changer — more about AI in a different article.

Staying on top of your social media presence

The best that I know to stay in the mind of your audience is to share something of value with them consistently. You could share your creations every day, every week or every month.

Have you ever tried to be consistent every week? Or every day? It is pretty challenging.

Some days you feel inspired, other days not so much. On some days there is plenty of time for creations, and on other days you would like to take some time off.

I struggled with this for a few months, and I knew there has to be a better way!

And that better way is batching and scheduling.

Batching is merely creating more pieces to be shared when you feel more creative, or when you have more time on your hands. If you share one post a day, but you have time to create 5 of them, that is batching.

When you have five pieces done in advance scheduling can help you publish them just at the right time, even if you take the day off.

For me, batching and scheduling are time-savers that also keep me in front of the audience even when I take time off.

In the last few years, the tools available have evolved so you can do this easily.

For Facebook – on your business page – you can schedule posts ahead of time. That feature is sometimes not working. In those cases, I go to “Publishing Tools” and use that interface to schedule my work.

For Twitter – they have the Twitter Deck app. This one has worked pretty much every time.

For Instagram, you don’t have a built-in scheduler. I am sure there is a good reason for that, but I don’t know it. If scheduling on Instagram is essential for you to there is a paid service you can use called: TailWind. Since I’ve been using it for one of my clients, they almost doubled their audience from 2k to 4k. Of course, you still need to create high quality, engaging posts, but being able to schedule them allows you to be active on the platform even in the days where you have something else planned.

Give batching and scheduling a try! You will find it much easier to be creative when you take the time pressure off of you.

The Process – A project from start to finish

There is value in having a process. It helps you provide consistent results, and you have something that you can continuously work on to improve. 

Here is “The Process” that I use today with software projects.

1. Are we a good fit? 

The first thing that happens is the discussion where both myself and the client try to determine if we are a good fit for one another. 

My job is to determine what the client needs and consider if I can provide a creative solution to solve that problem at a price that is fair for both of us. 

Sometimes this discussion happens in two parts if I need a break to do some research and investigation before I can begin to think of ways I could help. 

An important note here is that what is “needed” may not be what the client initial thought may be needed. That is why we have a conversation before any agreement happens. 

2. Project Set-Up 

After we agree on scope, price, and what it means to be 100% satisfied, I begin the work. 

With time I have learned the value of keeping things organized and tidy. 

Each client gets their individual folder that will document the history of the project. In that folder I will have things like:

  • meeting notes; 
  • agreement of project scope and price;
  • backups – I never do any changes unless I have a backup first;
  • client files – images, documents, other media;
  • a work-log – where I document what I have done and why. In very rare cases, I can use that to remind the client of the road we took together and justify a decision over the other. Another benefit is that you learn and get better by journaling what you do; 
  • access details – a file where I store various logins that the client has shared with me. In some cases, it makes good sense to have this file encrypted, like a ZIP archive with a password, for example;
  • any new agreed-upon changes also go here;

3. Making a plan – The List

I was trained, mostly by my father, to be organized by using lists. And I have kept that training and added on top of it. It is very useful, and it gives me clarity on what it needs to be done and in what order. 

Here I make a list of everything that needs to be done, broken down in tasks. The tool I use most of the time is Asana. I have tried Trello and Bootcamp, but I find Asana to be much closer to how I like to work. 

I also use a calendar service (like Google Calendar) to remind myself of upcoming deadlines.

Something that I found is handy is to split my list into three main sections:

 a. Go Live – the project cannot go live or shipped if any of the tasks here are not finished;

 b. Nice to Have – other tasks originating from the client that we can add later, after the go-live and in, some cases, in a “Phase 2” of the project;

 c. Bright Ideas – here I write down my own ideas that I think could help the client;

Why am I organizing things like this? 

The short answer is that it forces me to focus on the client; to get them on the market as soon as possible. I did not always use to think like that, and I was routinely making the mistake of focusing on tasks in the “Bright Ideas” section because there were so inspiring to me and they would challenge me. But in most cases, they were not mandatory for the client. So that added unjustified delays and extra costs. While I don’t think the client is always right, I do believe the client knows what is important to them. And that is where my focus should be and what I should be solving first. 

I hope it is now evident that the order in which I go about these tasks is: Go Live, then Nice To Have and then Bright Ideas. And I have learned to be OK with the fact that most projects stop after the “Go Live” part when the burning need of the client has been met. 

So why still keep “Nice to have” and “Bright Ideas” around? 

The biggest reason is to clear your mind so you can focus on the tasks at hand, knowing that your “good thoughts” are not lost. The second big reason is that is how you learn and grow. Maybe you don’t implement these ideas now, in this project, but because you wrote them down and thought about them you will remember them, and they may be the perfect solution for the next project or the “Phase 2” of this project. The “Bright Ideas” section is your most creative section. Don’t throw it away.

4. Set Up a Schedule 

I believe that if a project does not have a deadline, it will never finish. I am very wary of clients who say: “we can finish this whenever… no rush!”. That can be a source of significant delays for you and the project. 

I know this is not the same for everyone, but if deadlines motivate you, a client who is continuously delaying the project will drive you mad. 

In this step, I set-up reminders in my calendar for milestones that will help me get the work done in time for launch. 

When I do this, I need to allow time for the “unexpected” right before the launch. So I plan to finish the project at least a few days early to have some space to extend in case of unforeseen trouble. 

5. Doing the work

Only in step 5 comes the most fun part for me, doing software work :). But as a solopreneur, I need to do and master the business admin part as well.

When doing software work, I have a few principles that I follow:

  • Blocks of uninterrupted time – 2 – 3 hours blocks when I am the most efficient. When coding, there is a complex context that you need to have running in your head, and that takes time to build. If your block of time is too short, then most of that is spent just reminding yourself what the project is about;
  • use a versioning system – this should be obvious – even if you are working alone, it is so much easier to roll back to something that was working when you have a versioning system in place 
  • automatic testing – for particular clients that require a very high level of quality control this needs to be done;
  • Automatic backups of the client’s old code/website – again, just in case you need to roll back. Make sure the backups also include the database, not just the code files;
  • Keep track of working time – in some cases, “hours of time” is what I am billing to the client, and also this is how I know if we are going to finish on time. I am however transitioning out of this, so stay tuned for a post about it. Keeping track of time can be a learning and discipline building tool, just like journaling your work, but sometimes it becomes very, very restrictive and creates a lot of stress; 

6. Client Feedback 

I used to work, work, work, and then do the “big WOW” reveal at the end when the client would be floored with the amazing quality and results. 

This big reveal was silly. 

Why? Because it would allow me to focus on the “Bright Ideas” list instead of “Go Live.” And I would deliver an excellent, high-quality product, that would not speak to the client’s needs. 

What I do now is to deliver work in smaller increments and get feedback soon and often. I am careful here that the feedback I am looking for is “does this meet your needs, madam client?” and not about “how to do my job.” Therefore it is a tool to keep me focused on finding solutions that are important and relevant to the client. 

7. Making mistakes 

Mistakes are happening in every project. If I am not making mistakes, I am not learning anything new, and I am just delivering the same old solution. In some cases, that is OK, but generally, that is not what I am looking for. Each client is unique, so I want to challenge myself and meet their individual needs. 

It is therefore essential to know that I will be making mistakes and have a plan on what do to about them. Like, make sure I have factored that in the price so I don’t add more as a cost to the client to fix them. Also, I need to include those in my schedule. That is why I always have the “unexpected problem” in my planing with some time allocated to it. 

I am, however, fair. If I make a stupid mistake that I could have easily foreseen and avoided, the fix is on the house! I am talking here about the unavoidable trials and errors when you are building custom solutions and exploring places you have not explored before. Those mistakes need to be allowed for if you want to arrive at a good solution where you have explored alternatives that did not work. 

8. Going Live 

When I “go live,” I strive to have a seamless experience for the customer and their clients, which means as little to no downtime if that is at all possible. Over time I have discovered various ways of “flipping the switch” that can use depending on the specific situation. 

Again here, backups are super important. In case you mess up the live deployment, you need to be sure you can roll back to what worked before. I have seen so many instances where this not done, and people roll the dice. They may be that good, but it is just a matter of “when” things will crash on you, not “if.” I have learned my lesson.

9. Review and Learn

Ideally, the project has completed with the “double thank you.” You give thanks for the business, and the client is grateful for the solution they got. 

Either way now is the time to reflect on the project and look for “lessons learned.” 

What worked? Do more of that!

What did not work? Do less of that! 🙂 Or at least try to figure out what you can do differently next time. 

Something else that shows up here is opportunities to learn new things. Look at the “Bright Ideas” section and the “Nice to Have” section and try to come up with solutions to those that use new technologies. I sometimes set-up a pet project where I implement that solution.

I mustn’t skip this step or else I would get stuck in a rut. 

Mic to you!

How is your process different when you’re helping your clients? What are some of your lessons learned along your journey? 

Make good use of your Analytics data

Some people love looking at numbers, and some people don’t! Which kind are you?

That was a trick question because it does not matter. You have an online business, so you have to look at the numbers period. It is that simple.

I am surprised that even to this day, there are website owners who are not using Google Analytics. So by using it, I mean actually using it, not just having it installed. If you don’t have Google Analytics installed yet, this article is not for you 🙂

If you don’t like looking at the numbers, think of it as listening to their story.

What story can you learn by listening to your analytics data?

The most basic story could be: your site is broken! A sudden drop in numbers or an unexpected spike in errors is an excellent indicator that something is not working. The sooner you learn about this, the faster you can fix it.

Another story can be the “unexpected audience.” You may be assuming that a specific demographic or geographical region is visiting your site, but you may be wrong. Sometimes you may discover that it makes business sense to translate your offer to a different language, or to promote a page to a different demographic. Without analytics, it is challenging (if not impossible) to adapt to the changes in the market.

However, the most useful way that I am using analytics is to predict the future by looking at the past. Instead of guessing how many sales are you going to generate this month, you can use the past data to get a reasonable estimate of the monthly revenue. This allows you to plan ahead and to budget for your growth. It enables you to think long term, to strategize, instead of just surviving.

The second most useful way to use analytics is for tracking the success of your actions. Meaning: how will you know if the changes you have implemented have helped your business or not? This kind of tracking requires a bit more time to set up, but it is worth it.

It is an excellent idea to have the analytics code installed, even if you don’t know how to listen to the numbers yet. By the time you learn, there will be a story in your analytics data for you to interpret.

Installing the code

Google Analytics has good documentation about how to install their code. Also, most WordPress themes allow you to configure Google Analytics in their options. If a theme does not allow you to do this quickly, maybe it was not the right choice for your website.

For the more advanced users, I recommend using this plugin: PixelYourSite (https://www.pixelyoursite.com/)

How are you using your analytics data? Have you made any breakthroughs? Have you learned any hard lessons :)? Let me know in the comments below.

Keep your site up to date – good advice, but only in theory?

“Keep your software up to date!”

I am sure you have heard this saying many times, and in general, it is good advice.

However, let’s take a WordPress website, for example.

A WordPress site is made from the WordPress core and usually many plugins. You have many pieces in your puzzle. Not all of them are updated at the same time or in the same way.

In my experience, it happened more than once that an updated piece no longer fit with the rest of the puzzle. Auch!

Most update processes do a good job warning you that you need to do a backup first and to ensure the other plugins (components of the puzzle) are compatible with the update.

This approach puts the responsibility of “making sure that things still work” with the user. And not everyone can make that assessment. Also, let’s admit it, sometimes we are in a hurry or just plain lazy :). Ideally, a piece of software should not rely on a human to do the right thing.

I too used to be overconfident in the automatic updates process, and I would apply those every time there was a new update. Click, click, and I was done! What could possibly go wrong?

One time, I updated the store. We had a newsletter scheduled that we expected to generate much interest and I thought I wanted to offer the best and latest shopping experience for our customers. So I updated the store and was on my way. The next day I opened the email to a ton of complaints from our subscribers that the checkout is not working! A full email campaign wasted, not the mention that we looked totally unprofessional — that hurt both my ego and the sales.

What did I learn from it?

1. Updates can potentially be very painful

2. You never change the system right before a big promo campaign. (This feels like common sense now.)

3. You need to be extra careful when you update the part that generates income: the store, the “pay now buttons,” and the subscribe boxes.

4. After you update you need to test at least the critical functionality: add to cart, checkout, subscribe.

5. You better have good backups, in case you need to roll back.

It was not all bad, because I did have backups, so it was relatively easy to go back to the previous version. Moreover, I sent another email campaign with an apology and a second invitation to check out the offer. If I hadn’t had backups that would not have been possible to do.

Another thing I decided to implement is to write automatic tests for the website that can run in the background and make sure the critical processes are still working.

In conclusion: stay up to date, but be smart about it 🙂