Monday, June 10, 2013

Development, Testing Staging and finally going live

About development.

So in the last blog post I mentioned that I was doing a little site development work.

Just for a moment, forget about software methodologies water flow and scrum, agile etc.
lets look at the very very most basic functions.

as far as I am aware, there is no new method for test, yes you can test on focus groups, yes you can test with customers, or you can test on your own.

in any situation there will be four main groups, (and this is true even if you're a one man show doing stuff in your spare time like myself) equally it was true when I worked in a software house, and equally it's true now for the developers where I work.
but you'll be amazed by the amount of people that don't get this and don't understand this, they think that it's fine to round a corner here or there, that things could get done easier if only...

You need to set up different environments for each.

Those environments are as such:
Development, - this is the environment that you develop in, it's usual for this to be entirely self contained on your own computer, you edit something and straight away you can see the results -or in deep can see a lack of results because it doesn't work.
It's usual for debug modes to be set, and error reports to appear on screen along side page content for websites. so that you can see and fix errors straight away.

Test, -This environment is for testing, formal testing, you're not displaying errors now or debugging, you;re testing to make sure that it works, your test environment should be as close to what will be deployed as you can make it.
an example of this is the work that I've been doing, I've developed on a windows machine, and have been a bit lazy when it comes to capitalisation, I'm going to deploy the site on Linux hosting, and on Linux capitalisation matters! my test environment therefore is my Raspberry Pi, it's just a small Linux machine.

Staging, -Staging is for your customer testing and load testing, this needs to be EXACTLY like your live environment, same software, same versions of software, and as near as possible same machine specifications, when you do load testing if you have a powerful machine you'll think that the site can handle a lot more traffic than that old server that your live site is on.

If you stage on Windows, and go live on Linux you won't notice that little error that means a dead link, (capitalisation matters on Linux systems!)

Different configuration files for databases can allow you to be lazy as to whether column names or database names are capital or lower case letters.

then finally live, -the environment that the world will see, or at least everyone who will see the site.


You can use the same hardware for test and live, (assuming that you've bought hosting from somewhere then you may want to run www.mysite.com and test.mysite.com -that's fine! but be aware that when you're load testing your test site you'll be loading your live server too!

No comments: