7 reasons why hiring offshore based developers is a bad idea

Over the 15-years I’ve spent as a PHP programmer I’ve seen the rise of offshore development, the fall in average cost of development, and more recently the resurgence of on-shore development as customers realize they’re sacrificing business opportunity when they hire the cheapest developer they can find. Today Upwork, the largest freelancer site is dominated by Indian, as well as Pakistan based developers. There is no doubt that this region serves a definite need in the marketplace. Just look at some of the jobs posted at Upwork. Build me a WooCommerce website with a custom theme for $200 reads one. Build me a massive social network like Facebook for $120 reads another. One wonders what happens on these projects? Does the budget increase? Does the project fail? I can only gauge from what I see, which is the work provided by new customers whose previous developers were from India. Based on that experience of being “the guy that takes over” the site/plugin, here are 7 reasons why hiring Indian based developers is a bad idea.

  1. Many offshore developers fail to respect even the most basic development principles. The most common example is the “hacking” or editing of base themes and plugins. Nearly every site we take over from an Indian based developer has edits to plugins. The result is those plugins cannot be updated. This is a problem worthy of it’s own blog post. If you’re unsure if your site already has these kind of edits, ask your developer about it. While in some cases editing a plugin might be necessary, it should be a last resort. WordPress has a hook system, and is a modular framework that is designed to enable custom functionality and new features without editing existing plugins and themes. On the theme layer, a child theme should always be used rather than editing the base theme for instance.
  2. Errors are ignored and not fixed. Often sites built in India have hidden errors, or functionality bugs that have not been detected. Thorough testing reveals these errors, as does turning error reporting on. Because error reporting is usually turned off for live websites, as a site owner you might never see these errors. While they don’t break your site (warnings) it is possible data isn’t being stored correctly, notices are not being sent to customers, form submissions are not being processed, and a host of other actions are not happening. At the very least these errors indicate a lack of quality in the work, and symptomatic of larger problems hiding under the surface.
  3. Are you really saving money? An all too common story of the website development project sent offshore to an Indian developer is that part-way through the project the scope changes, more money is demanded, and the final cost is much higher than expected. In fairness scope management is a factor for developers everywhere in the world, but Indian developers have a reputation for holding their customers hostage refusing to deliver work or finish projects if their demands for more money are not met. This cuts into the savings you might perceive from the initial quote. A much costlier problem is that if you eventually realize you’re not getting good work from an Indian developer, you might bring your development projects back onshore. But is the foundation of your WordPress website solid? We’ve seen sites built in India that require major fixes before any new work can be performed, and the costs of this repair eliminate or deeply cut into any savings.
  4. Schedules are often missed by Indian-based developers. Having hired over 30 India based freelance developers myself before I stopped trying to work with developers from India, at least half of them stopped a project partway due to a festival. Now to be clear these were 30 different developers working on different projects at different times of the year over a decade. Yet, midway through the projects, it was suddenly festival time. Either India has a lot of national holidays, some that last for weeks, or developers use these kind of excuses to buy them time before they are fired when their unable to meet a deadline.
  5. Lack of commitment to project completion is one of the scariest factors in hiring offshore developers. In the west we are used to professionals feeling a sense of obligation to finish what they start, and unless there is a significant reason such as missed payments or serious disagreement over the terms, we expect once we’ve hired a freelancer that they will finish the job barring something catastrophic happening. Perhaps it’s a cultural difference, or just a side effect of trying to work on a massive volume of projects, but many offshore-based developers have been known to end a project over trivial disputes, or simply say “this project is too difficult we cannot finish”. In those situations there is often an unapologetic attitude, the offshore developer simply says the project is over, often refuses to refund any pre-payment, and will argue that even something as basic as sending over partially completed work is not something they need to do. When things go bad in India for example, they go really bad, and there is little recourse in these situations. Don’t be under the false impression that a freelancer website such as Upwork is going to resolve these issues, though they do provide some protection for buyers it’s often not enough to offset the damage done when a project fails.
  6. There are affordable developers in some parts of the world with vastly superior track records. Many buyers today feel they have to offshore somewhere, they simply cannot put together a budget high enough to hire an American or European developer. And the availability, and willingness to work on certain projects is also a concern with on-shore developers. So where can you offshore more safely than India? Personally I’ve had the most success with Ukrainian developers, and other Eastern European locations such as Serbia. The work ethic and attitude of developers there is much more similar to Western Europe and North America. The communication level is also better, with many Eastern European’s able to both write and speak fluently. You will certainly pay more for developers from these regions, but there is still substantial cost-savings compared to on-shore development.
  7. Offshore developers are rarely able to provide consultation and make development choices, which becomes a big burden on project managers and site owners. A typical situation early in a project is the Indian developers asks what to do. You might (should!) have a written project plan, requirements document, perhaps visual designs. You provide these to the developer and offer to clarify them. More often than not they will come back to you and say okay I got your docs, now can you tell me what to do? Whether it’s a communication issue, or lack of experience, Indian developers are famous for not being able to identify the tasks required to turn requirements into deliverables. If you want something done, you literally have to ask for each step. This leads to micro-management. It’s also dangerous for project scope, because now you’re essentially looking over the developer’s shoulder and telling them which steps to take on a one-by-one basis. If things go wrong and the requirements are not met, the developer can simply say “well I did what you told me to do, sorry it didn’t work out”. That’s why you should always try to ascertain that a developer is results-focused, that they can convert requirements to working solutions, and they can do this without hand-holding.

I know I might take some flak from those who would say this is generalizing about a large number of developers from a specific region who vary tremendously. There is no doubt that there are many talented developers in India and other major offshore regions. But is it 1%, or 5%, or 10%? Who knows, but I can say that in dozens of attempts, I rarely found an Indian based developer that would be considered equal in merit to the average hire from the Ukraine, as an example. And in cases where an Indian based developer is a proven professional, most of them are not available for freelance work as they either have high paying jobs, their own firms, or work on a select number of big projects. Like any other market, top developers in India earn double or triple that of their counterparts, so don’t expect the truly qualified to be bidding on what is effectively a $3/hour job.

Let me close with a tip when hiring WordPress plugin developers from any part of the world. Always ask to see a plugin they built, they should be able to share at least 1 that is publicly available either hosted at WordPress.org in the plugins directory or for sale on a site such as CodeCanyon. Verify they actually have plugin experience, rather than just being site builders. Going back to Indian based developers, I’ve rarely seen a WordPress plugin that was built in India. They do certainly exist, but rarely do they rank in the top options in any of the plugin categories. And of all the Indian based developers that routinely respond to our job posts, out of around 200 we asked to send us proof of plugin development experience, the number that were able to do that was 0.

QuizMaster Plugin Project

The first time we worked with WP Pro Quiz was when DatGenius, a dental training website, approached us about a project. They wanted to show the completed quiz results students were taking on their WP Pro Quiz site. This feature which sounds like a given in any quiz system, was not available or even easily supported by WP Pro Quiz. This was the start of what today is an addon plugin for WP Pro Quiz, called WP Pro Quiz Completed.

It was during the “Completed” addon project that I first started thinking about forking the WP Pro Quiz project. There were a number of reasons. I’d seen this style of development before. Conventions ignored, unusual features, limited documentation. It’s impossible to write about this without being critical of the original developer of WP Pro Quiz. So I’ll preface this by saying it’s a major accomplish to build something as sophisticated as a quiz system, and to attract over 20,000 active users, according to the last WP directory stats. Now let’s it real and talk about some of the reasons for forking WP Pro Quiz versus contributing to it and aiming to enhance it as an open source project:

  1. Lack of responsiveness from developer. Every project needs a leader, and if the leader is absent it’s hard to move it forward even with pushes from people who offer help. When pushed code, and suggestions get largely ignored, that’s a big problem. There are countless complaints about WP Pro Quiz support being slow, and when responses do come they are not always as helpful as people would like. Providing support, and leading development, is a tough ask of any development team, let alone a lone developer, but the case is that a user base of 20,000 is going to have questions. Especially if…
  2. The documentation is limited or non-existent. Most aspects of WP Quiz are not documented, if we rated it like translation on a basis of completion we might say it’s currently 2% documented. Consider how this compounds the support issues, because if you have good docs you can minimize support by referring users to docs and save time leading to faster responses.
  3. Extending WP Pro Quiz is moderately difficult. Giving credit where it’s due the MVC approach in WP Pro Quiz makes it’s objects reasonably extendable. Yet for such a significant plugin, it only has about 3 actions and 5 filters, none documented. And more pressing is the widespread use of Javascript in places where PHP or a mix of PHP callbacks from AJAX calls would have made the system easier to extend. Combined with the lack of docs, trying to build an extension to WP Pro Quiz is a “you’re on your own pal” kind of experience. And it doesn’t need to be that way, the plugin is a solid foundation of functionality and with focus on making it extendable it could be possible to develop great hooks throughout.
  4. Language issues. Again we have to give credit to the translation work that makes WP Pro Quiz very accessible. But from an English-version perspective, and a developers perspective, the plugin is littered with English-errors, and very inconsistent use of titles. Helper text is oddly worded and often instructions for options don’t mean what you might initially expect based on the way it’s written.

I could carry on raising other smaller factors but I think you get the point. The distance between where WP Pro Quiz is, and what we would call a good place for a popular plugin is significant. After the release of WP Pro Quiz Completed as an addon, I reached out to the developer of WP Pro Quiz twice asking about opportunities to cooperate in building an addon system, and joint-marketing. There was no response.

Our path forward now with development is a dual-track approach. We’ll be continuing to build addon’s for WP Pro Quiz Completed and offering those in our store alongside WP Pro Quiz Completed. At the same time we’ve created QuizMaster, initially a fork of WP Pro Quiz. As we develop this it will remain fully open source, and after we add value to it we’ll aim to have it included in the WP Directory. Until that time it’s hosted on GitHub at https://github.com/goldhat/QuizMaster.

  • As QuizMaster is developed we’ll be creating a QuizMaster Pro version. This will be an enhanced feature version of QuizMaster with support for some of the features often requested now from the WP Pro Quiz project.
  • We recognize that quiz systems are used in a variety of ways, and the base plugin itself cannot (and should not) try to serve all. Instead it should be extendable so that developers can easily add custom plugins that tie into hooks the quiz plugin provides. QuizMaster will be highly extendable, with great docs and tutorials. We view it as a platform for quiz management.

Where can we improve QuizMaster and add value compared to the WP Pro Quiz plugin?

Before we add any functionality to QuizMaster we’ll be starting with a revamp of the foundation of the plugin and aiming to bring docs up to a good standard.

  1. Document existing features.
  2. Add hooks and filters to existing codebase.
  3. Improve the UX in key areas such as “Add Quiz” form, adding tabs/accordion or other approach to organizing options and making the page less cluttered and daunting to users.
  4. Fix existing codebase issues reported on WP Pro Quiz issues pages.
  5. Look into data storage and see if there is a way to optimize it, or reduce use of custom tables.
  6. Develop a migration path, preferably an automated migrate from WP Pro Quiz to QuizMaster.

Do you want to contribute to this initiative as a developer, or run a WP Pro Quiz powered site and want to share your input? Your comments below are welcomed! Thanks for reading about QuizMaster.

SolarERP

SolarERP is GoldHat’s concept for an ERP that is simple to understand and easy to use. Sure ERP (Enterprise Resource Planning) software is by very nature “big”. There is no getting around that, because it’s an integrate of multiple applications that work together to run most or all of a business. And the fact is businesses need a lot of applications to get things done. Including the ability to make custom application suited to their specific business. Yet that should not stop businesses from all sizes from considering the ERP approach, in place of singular applications.

In a day where there is an app for everything, the big question is “do your apps work together”. And sometimes the answer is yes. Sometimes no. Definitely API’s and cross-integrations of apps can help bridge data and functionality together. But is it seamless? Hardly. And can we all afford the costs of big ERP’s like SAP? Would they even scale to a smaller size entity? Not likely.

Our goal with SolarERP is an app that gives businesses global control over their application data. The focus being keep your data internal and secure. Give yourself the insights that come from being able to look at data across divisions of your business. Don’t allow these gaps that come up when your ecommerce software never speaks directly to accounting software. Or your contact manager can’t receive notes from social media. We want to create something like a matrix of information about a business, all interconnected and ever-growing. What is a business today? In part it’s a collection of it’s information, data and more data, and metadata about data. If everything you do and are is digital, why not harness the optimal benefit from using technology? Which would seem to be automation of processes, decision-making, even artificial intelligence.

The leading enterprises of tomorrow won’t just have killer apps, or market disruptive strategies, they will be leaders in data management. The notable difference between similar companies in a market will be how efficiently they handle their data and the processes that rely on it. This will affect everything consumers receive in value from the company. The very basis of the companies purpose and existence will hinge on it effectively collecting, storing, analyzing data.

Consumers expectations of what companies will do in terms of data management will increase as well. Recently I had the experience of filling out a paper form at a 4-star hotel in Prague. And I was a weary traveler that day and it bothered me to have to print using a pen all the information the hotel already received from Booking.com. Literally nothing new was added, they simply used my time and energy to do something they could certainly have achieved with a check-in process that better organized data. It doesn’t have to be really big changes, it’s often the details that matter. Simplifying processes, making transactions faster and easier for customers, it’s all about utilizing data effectively and planning ahead.

SolarERP is probably 2-3 years away from a beta launch at this point as we work on some of the foundation technologies we need to make it work. Here is a small glimpse of what we’ve started to build so far:

  • XML/Interface editor that allows editing XML directly or switching to a traditional application interface (web form). All web form data is saved as XML, so you can switch back and forth from XML-to-Interface and vica versa. This allows semi-technical people to quickly edit XML configuration files, or records, while still having access to an interface where it helps such as uploading images
  • XML document storage system with traditional database indexing. We’ve opted to go nosql, or nodb for the most part. But in one area where it helps, indexing/search, we’ll use a database. What’s nice is all files in XML can be version-controlled with GIT, meaning SolarERP can run anywhere that the GIT repository can be closed. The optional database indexing adds a MySQL database but we don’t need to worry about it’s status the way we do today with most systems. That’s because anything going into the database is from parsing the XML documents. The database can therefore be regenerated and updated at any time, alleviate the problems that can happen when a database is corrupted or out of date.

Websites need documentation too

It’s not just software that needs documentation. As the line between “app” and “site” blur, every site is an app and has software running. Much of it is critical to the operation of the site. Other parts are small plugins/modules, scripts that require minimum development beyond the install. Still, all these parts are potential failure points.

Website Documentation Saves Debugging Time

As developers we want to minimize the debugging process that happens if a bug appears on a site. Let’s say you upgrade a plugin and some custom feature breaks on your website. The more details we have about the feature, the faster we can find the source of the problem. Just realizing a feature is “custom built” on a website is important, again something that would be noted in any documentation. Often if we take over management of a site, it’s not immediately clear what is made from contributed plugins versus functionality altered via theme code, or custom plugins.

Any site that has custom plugins definitely should have documentation along with those plugins. A plugin should be thought of as a piece of software.

Finding Time and Money to Write Website Documentation

Of course all the good intentions about documentation don’t help if you don’t have the budget or the time to write documentation on a project. Often project limitations make documentation difficult. Still, we feel developers should always remind clients that documentation will save them time and money in the longer-term. As well as making the site more manageable in the short-term.

How to Detect Bad Clients from their Choice of Words

What if “bad clients” had a language all their own? They do. When you’re in a service business detecting and avoiding bad clients is vital. Often in B2B services like website development, graphic design, there is a reality that many of the business owners that come to you for services are not going to make it. They are on-route to bancruptcy or some other form of demise, and they may try to take you with them if you don’t protect yourself. New freelancers or firm owners don’t usually understand this at first, and it takes many a hard lesson to get it. Even if you get it, will you overreact and hurt your chances of attracting good clients?

Bad clients come in a few different forms, but obviously the non-pay client is near or at the top of the list of those we want to avoid. One question that comes up here is “do I really need to detect non-pay clients, why not just enforce strict payment terms”? This is a matter of choice, because stricter payment terms may cost you sales in some cases and generally may hurt your business more than it helps. And even with strict payment terms, unless you are collecting 100% payment in advance you’re almost certain to bear some risk. After all from the buyers perspective, would you buy a B2B service like graphic design if the designer wants complete payment in advance? I wouldn’t unless it was from a very large company with a clear refund policy. Even in that scenario, it’s more a “deposit” than a payment if there is the potential to get the funds back when warranted.

What cannot be escaped it seems is that to make any business transaction happen both parties need to protect their interests. Most businesses are not looking to outright scam the other party but definitely many disputes occur over expectations, terms, payments etc. As a seller you have to strike a balance where your payment policies and other terms are still attractive and reasonable to the buyers you want, while dissuading the “bad clients” from buying at all. Or you have to learn the language bad clients use to make deals that ultimately are lose-lose. I recommend doing both!

Interestingly enough most bad deals are not where one party wins and the other loses. It’s often the case that a bad buyer will not get what they want, and will also harm you in the process. This goes back to my point earlier, some businesses are not going to make it, and the owners are suffering from some combination of bad planning, poor decision-making, unrealistic expectations. Within our business dealing mainly with website development or application programming, we find many prospective clients have a very poor understanding of what their buying. And it’s all too common to find potential buyers that have very foolish ideas about what they can achieve for a given budget or time frame. The problems aren’t always around money, it could start as an issue around schedule and then degrade into a dispute over money.

Here are some examples of what a client might say to help us identify them as a bad client:

  • “this part of the site should be really easy.” How does a client know something is easy unless they are an expert in the field? And even if they were an expert in the field, never trust them to make a fair evaluation. Chances are if it was that easy, they would not need you to do it at all. This is a statement of “I don’t want to pay much and even if that part takes 10-hours, I want to try to pay only for 2-hours and I want you to be stuck with the bulk of the bill”. In other words, danger danger, we have a bad client approaching from the east – get out the guns! Good clients never presume something is easy/simple/basic/included. All that kind of language is a negotiation tactic around paying less and taking more. And it doesn’t come people who actually want to pay for what they receive. A good client would say a similar thing as a question “what steps are involved in doing this”? or “is that a simple thing to do, how much time might be involved”?
  • “I have a budget but it’s top secret and only me and the CIA and a few carefully chosen corporate consultancy wizards know what it is. I definitely can’t even ballpark it with you other than to size it’s really sizable and don’t worry I have unlimited cash but cannot agree to any specific number”. I’ve never seen a prospective client say “I am nearly broke, my Visa is racked I’m not sure if I’ll make rent this month let alone be able to pay you for your work”. Instead non-pay candidates dodge questions around budget and in some cases act the way a drug addict acts when police ask him “do you have cocaine in your pocket”? If the question “what is your budget” results in a long story or other non-answer, beware. Especially if it’s a brush-off followed by a quick change in conversation. Bad clients will often try to get the topic back to “work you must do to please them” rather than discussing “the money we pay for the services”. Remember a deal is a trade, don’t be so eager to make the sale that you forget that work without pay is worse than just working on internal unpaid projects. People that don’t want to pay are thieves, don’t make it easy for them to target you. Politely but firmly press the issue, get a number from the prospect even if it take multiple discussions and some quoting from you.
  • “we can do that part later”. This one isn’t always a sign of a bad client because it could just be a decision to delay certain parts of a project. But in some cases what is cleverly done here by non-committal, non-payers is they are trying to avoid bearing costs by delaying work and what they’re thinking is maybe later I can sneak this item back into the project. Or they may trying to buy time to afford the item in the case of the secretly broke client who plans to non-pay.
  • Using confusion to avoid a project scope. There is no specific quote I can offer for this but to relate the recent project that motivated this post I was working with a designer who was vastly disorganized. He wanted to build a site, had a partial design, no written plan, and was unable to make decisions on features to include in the site. By making much of the discussions verbal he cleverly managed to drain my time while at the same time making the project requirements so confusing that nobody could ever prove exactly what was approved, or what payment was due for which items. Some people don’t do this intentionally, they just are confused and therefore they do business in a confusing way. This might be tolerable if they don’t mind paying for the time they waste by being disorganized. Watch out for the circle talker, somebody who will continually raise the same topic but when a decision is required they just loop write back to talking about the subject. In this particular project this designer would draw out a feature on paper, then talk about, then redraw it. Along the way, he couldn’t agree on exactly what to approve or talk about costs because his mind just doesn’t have the focus required to make progress forward.
  • I could do this myself. I’ve never ever had a good client say this. Think about if you’re buying something like writing articles, would you tell the writer “I also know how to write English, so I could do this myself so don’t go thinking your services have value or that you might be more capable in this area than me”. Even if you were an award-winning writer, would you say that to somebody you hire? Not if you have any respect for them, or the professional they work with. Personally I have 12-years programming experience and in most projects I could do 99% of the coding work myself. But when I hire other developers, I respect their skills and I need them because I cannot work 200-hours per week. So I would never degrade the situation by claiming that I can do the job, therefore they are unimportant. This is a warning sign that the prospective client doesn’t have respect for you or what you do, and generally they don’t value your time. In their mind, they could have gotten the work done for $0 by doing it themselves, so any invoice from you is too high. It gives them a feeling of justification later if they non-pay. They might even non-pay, do the work themselves then say to you “look after I ripped you off I did the work myself, proof that I didn’t need you!”.
  • I talked to another guy who said that part is easy. I think I already wrote about the people who claim work is small or easy as a way to avoid paying for it. People who claim they got a qualified opinion from someone else are almost certainly lying. Personally I don’t have time in most cases to get competing quotes for specific work. Because the time involved in getting the quote is more than the benefit. It might be different in design and other creative work. But in development it can take hours to communicate a project and get a quote. So chances are I’ll only go for more quotes if I can’t make a deal. So would it be honest to say “I already have a quote for 35-hours on this piece of work, but you’re quote is 55 so you must be mistaken”. No, and anyway the way to handle this is the same. Unless you have a reason to reconsider your quote like the client has clarified their requirements, you should stand your ground and also call their bluff. Say okay, if you send me this quotation I will evaluate the firm/contractor that provided it and see if their services and caliber of work is similar to ours, then I will consider matching the quote if that’s the case. Expect dead silence or a quick retraction from the prospect this is nothing more than ploy 95% of the time. In a situation where the prospect actually has multiple quotes, the language will be different. For example they may say honestly that “I found another guy willing to do this at $35/hour, that’s less than your rate is there any room to negotiate your rate”? Or in a fixed-rate project, they’ll talk more about what’s included and not included in the competing quote. Because fair and reasonable clients know that it’s not really an apples-to-apples comparison anyway, they can’t possibly predict if the other vendor will even do the project at all, let alone what the quality or completion would be or what other costs might occur.

I hope this post helps those of you starting out as developers, designers or in any B2B service business. If you know of other language that prospective “bad clients” or non-pays use I’d love to hear it from you. After all it’s better I hear it from you and watch for it than to hear it from the next bad client.

And I’ll leave on a philosophical note here, that ultimately protecting your business against bad clients isn’t just for your benefit. It’s actually an integral part of taking care of your good clients. Because if you have to write off a thousands of dollars a year in unpaid invoices, you’ll have no choice but to pass that business cost on to the good clients that are paying your bills and are treating you fairly.

 

What Is A Good Website Development Process?

There are many ways to divide the phases of building a new website. It is possible to shorten the steps in the process to 3 or 4 or to lengthen it to as many as 10. But the goal of viewing a website development process should be to convey an understanding of the major areas that need to be covered and the general order in which these things would normally be done. So with that in mind, our process at GoldHat is the following 5-stages.

Define your website audience. What does your audience need, want? What site features might fit your audience? Which sites do you like/dislike, and why? How does the site measure success, does it produce sales, leads or have another measurement form? Brainstorm ideas for the site. Record all the information in notes, links and files for use later in the Website Planning phase.

Ideally an experienced Website Development Project Manager will guide this research and analysis phase and best practices would be to use an elicitation documentation process that results in an initial draft of website requirements.

Phase 1: Research and Analysis

Phase Theme: Answering questions, discovering ideas, finding information.

Define your website audience. What does your audience need, want? What site features might fit your audience? Which sites do you like/dislike, and why? How does the site measure success, does it produce sales, leads or have another measurement form? Brainstorm ideas for the site. Record all the information in notes, links and files for use later in the Website Planning phase.

Ideally an experienced Website Development Project Manager will guide this research and analysis phase and best practices would be to use an elicitation documentation process that results in an initial draft of website requirements.

Phase 2: Website Planning

Phase Theme: Making decisions, writing the plan, drafting schedules and budget.

Plan how you will handle each of the 3 key areas of the website such as the graphic design (DESIGN), the development and programming (DEV), and the content development (CONTENT). How you address each of these key areas depends on what type of site you are building. For instance on a video site, you’ll need to think about which video player to use (DEV), how that video player will be themed (DESIGN) and the details of the videos and playlists (CONTENT).

Website planning should record all the major decisions affecting the project including the budget and payment schedule. The timeline of the project and major milestones should be set. Key technical decisions will include which platform to use (CMS, Framework, eCommerce system), where and how to hosting the site, the domain(s) or sub-domains used, and other factors such as whether an SSL certificate is needed.

Phase 3: Website Design

Phase Theme: Creating the layout, choosing a color scheme, designing key site features, revisions and finalization.

The Website Design should flow creatively from the diligent work done in the previous 2 stages. Just as the Website Planning phase uses the Research and Analysis phase as input, winning designs come providing a clear plan. Of course creativity and talent play a major role here, and ensuring that the design team are masters of their trade is important. Yet one of the keys to success in designing websites is optimizing the design process by having a very clear focus already developed through planning. This not only helps the designer in the creative aspects of design, but it also keeps everyone on the same page in terms of reviewing and approving the designs.

The question of “what is a good design” is often the most hotly debated topic of any project and changes and redesigns can often add time, cost and stress to the entire build. So it is very important that design reviews yield meaningful results in the form of clear feedback.

Phase 4: Programming & Development

Phase Theme: Release the coders, install the framework/CMS, code the site template, code site features one-by-one, test and debug features.

This is generally the longest phase of the project and it is where the website actually goes from a design to a finished product. If it is possible to have all the designs from the Design Phase completed before starting programming and development, this can help avoid common development problems. Sometimes a project schedule does not allow this, so the development coding begins in the areas where the designs are rendered.

On most CMS-driven sites built in WordPress, Drupal etc., this phase is divided into fairly distinct stages such as: theme development, module/plugin development, site configuration.

This is where the end client (site owner) will generally have the least involvement. If the work has been done thoroughly in the planning phase, all the details that the development team needs will already be contained in the written Project Plan.

Phase 5: Content Management

Phase Theme: Add or migrate site content, format content, review finished pages.

The content management phase is sometimes the odd duckling in all the phases. This is because if the site has fairly simple content, such as mostly basic text pages with some images, then this work can often be handled in the Programming & Development Phase. But if your rebuilding a site, and have thousands of pictures, videos or other data to import to the new site, then this phase can be very significant in time and cost.

Sometimes our clients will be involved heavily in the Content Management phase. In other situations we will handle all the content additions and formatting.

It is important to note that generally speaking, content should not be developed while the site is being built, because content development should actually be completed BEFORE the site is built. Of course in practical reality, it is not unusual for some content to be edited or created on-the-fly as the site is being built. But this can cause major complications, as it can cause the project to be put on hold while content is finalized.

Phase 6: Testing and Launch

Phase Theme: Test for issues, fix bugs, repeat, and repeat, and repeat. When all is well, place the site on live hosting and launch it!

This phase should probably be called the rollercoaster phase given that it combines the highs and lows of the entire project. Nothing is more alarming than finding bugs, only to fix them, and find 12 more bugs. Finding issues, fixing them and repeating the process is painstaking work especially if a deadline is looming or past. But the reward is a site that is ready to launch, and the enjoyment of seeing the finished product go live.

Phases 7 through 20

You might be thinking, how can a 6-phase development process have 13 additional phases? Well, we want to close this article on the website development process by pointing out that our website development process is designed only to go from “I need a site” or “let’s rebuild this site” to the live, fully-functional launch of the site you planned. But that doesn’t mean we couldn’t also consider such things as admin training, content publishing, maintenance, SEO, social marketing, performance testing, security testing, usability testing, and dozens of other related work. The point is this, building a website is a distinct project, with a start and end. The main goal is to launch the new site. Don’t all the future and separate activities overwhelm the Site Development Process. Keep the eyes on the target, because developing an entire site from IDEA-to-LAUNCH is a big undertaking in itself, especially if you do it right!