Community Documentation

v3 Knowledgebase

Planning for success

Planning for Success

You have an idea for a website, it is potentially a retirement plan for you and you want to do it right from the start. While we can't predict the future we can certainly be as prepared as possible for it.

  • One company for each task

Know what your hosting company is responsible for, what your phpfox script is responsible for and what your other teams are each responsible for. As you remember a Hosting Company is an entity that hosts your website files and database, most usually they provide emailing options for you and backup features as well. They do not develop websites or change your sites colors/logo, they host it and thats their job. Reason why I bring this up is so you know what to expect from each company you deal with, even if your hosting company is very nice you should not expect them to be great at more than one thing, either they are great at hosting or great at designing. Think of it as hiring a gardener to install a new faucet. There is an entire industry for making a website look amazing, its called Web Designers. Experienced web designers have been members of the Phpfox community for many years, so you can get a good feedback about them in the forums. In fact in many outsourcing sites like GetAfreelancer or oDesk you can find a category for Phpfox jobs.

  • One site for each purpose

You have your main website where you get traffic and you must assume at all times there is at least one customer using it. You dont want him to see an error message do you? The best way to avoid any malfunction is to develop your site in one website different than your main site, to better differentiate them we call these the Production site and the Development site. There are several ways to set up this, one is to have the development site sit on a subfolder of your production site, this has the advantage that the server configuration affecting one is also affecting the other, but it also has the disadvantage that if anything happens to the development site it could also affect the production site (like a database overload). This has the advantage of allowing cooperative development, where you do one task and other team does another (here you need to take into account access permissions, you dont want to grant the other team database access if they only will change the colors). The other way to work this is by having your development site in your local computer, if you're running windows xampp is a good alternative to quickly and painlessly setting up a local server, if you're on debian its a matter of apt-get whatever you need (script's requirements). In any way you set it up you will eventually need to move your development site to your production site, this involves a lot of details and we will publish an article just based on this.

  • Back Up!

Even when you have a development site carrying on the bricks of a new feature (ok bad metaphor), your production site is working as well, and the contents that it has today will not be the same tomorrow. You need to have a backup plan that fits your sites dynamics, for example, if you are willing to lose 2 days of data and nothing else (and your members are also willing) then your backup plan should be scheduled to take on this metric and execute every 2 days. If, however your business is absolutely dependent on your website and you cannot afford any data loss there are backing up solutions tailored to this need, for example mysql has the Binary log which allows a full backup to do incremental backups (smaller ones that store only the changes since the last full backup). Replication is a feature that most database servers have. Please note that it is not a task of the phpfox script to generate backups of your site, we have included a feature in the AdminCP to generate a backup of your database by calling an external program called mysqldump (so it only works with mysql databases) but this is only a quick backup and if you are serious about backups you probably want more flexibility. Back ups are specially important when moving from development to production.

  • Planning

This is perhaps a redundant topic but we need to cover even the most basic ground. It is understood that if you have put up a website you want something, be it gather with some friends or make money you have a goal. In order to achieve that goal you take precautions and perhaps the most important of them all is to plan. Planning is not just about thinking what to do or how to do it, but also when to do it. If you find yourself requesting for urgent help because your site launches in X hours/days then something clearly went wrong with the schedule. All successful websites have a fault margin and leisure time, (this is true for business administration in general as well) where leisure time is that time that your project (or task) can be delayed without affecting the next task that depends on it. For example if your tasks are

    • At 7.30 wake up
    • At 8.00 have breakfast

and you know that you need 15 minutes to "wake up" then you have a 15 minute leisure time, if you take more than 15 minutes you will be late for breakfast but you can be delayed 14 minutes and it would still be ok.

The fault margin on the other hand can be considered a "Plan B", you measure how much can you afford to go wrong before taking action. This differs from the leisure time in its critic stage, it means something already went wrong. For example you planned that your designers team would finish the custom job on your site by day 3, and you already reached day 3 and they have not finished, what do you do?. Perhaps you didnt leave enough leisure time or perhaps it is their fault but you need to have a plan in case you reach this point.