Version your development!

Why?
Everyone has probably heard about Subversion. It allows you to track your project (project versions) and manipulate those versions. When big project is involved, lots of companies put their code to version control. Why? Because it safeguards the code from falling apart when 2 or more developers are working on the same file (that is Subversions primary goal). But none of developers I know uses Subversion for developing small projects on local machine.
Couple of times I did some programming, and I added or changed something and my program just stopped working. Than I would click undo button like crazy but I lost my previous working version. But of course, every problem can be solved, and I solved it every time, but I lost a few hours doing so. Back then I would kill for Subversion.
Time to put in some action!
If you had similar problem or you want to have safer future, put your code under version control.
Necessary programs:
1. Apache (I use XAMPP)
2. Subversion
3. TortoiseSVN
I won't explain installation of those 3 components, it would be a waste of time, because there are already references on the internet.
You can follow installation process from TortoiseSVN user guide (Chapter 3. Setting up a server).
When you have a new project on your hand, you only have to add new repository, and your newly created folder for your project put under control with Import to that repository and then SVN Checkout. I recommend you also read Chapter 4 and 5 from guide to get you started.
I recommended TortoiseSVN because it is really simple to maintain your code rather than typing in command line.
Review steps...
1. Install Subversion, TortoiseSVN and XAMPP (or anything you'd like)
2. Adjust all three to work together (read user guide)
3. Create your initial repository and decide on the structure (also read guide)
4. Start versioning!
Basic XML checking…
Lots of unexpected errors can come from mistyping XML. So you have wrong data, and you load it to your program and of course it will work wrong.
You can be sure to check your loaded data before doing anything. Also be sure to cast your data when assigning it to variable. In example:
//Sample XML var xml:XML = <node attribute="1">Node text</node>; //Assign node text to txt variable var txt:String = null; if ( "node" in xml ) { txt = String( xml.node ); } else { trace( "Node doesn't exist!" ); } //Assign node attribute to num variable var num:uint = 0; if ( "@attribute" in xml ) { num = uint( xml.@attribute ); } else { trace( "Attribute doesn't exist!" ); }
Project life cycle
Project life cycle steps

1.Define requirements
Talk to your client, and get to know what is your project about. You'll get most of requirements, but I suppose not all. Don't worry, you'll be filled in when project kicks in.
2. Define project cost
First of all, break all requirements in small tasks. Then, estimate how long do you need on getting that task done. Sum all hours and add some more time (which I call "safety time"), which will secure you in case your tasks get longer than you anticipated. After you did thatmultiply it with your hourly rate. You should get your project cost.
3. Write specification
If you are developer, and are working with other developers it's crucial to have some sort of standard between you. Specification gives you project goals and requirements. You can also include some programming language standards which your team will follow. Big projects have special person which takes care of this and it is absolutely must have, but if you are working alone, it could use you to have written standards. If project needs maintenance, you can return and read specification and know exactly what you need to do.
4. Plan your project
When you were estimating your project cost, you have broken requirements in smaller pieces. Now you can use that smaller pieces and put it in calender. Estimate how much a day will you work, and put tasks according to they priority. Include holidays and weekends in planning. You are done with project preparations.
5. Start working
Take that tasks and start working. If you are developer don't forget about importance of planning out your classes.
6. Test it yourself
Write number of test and functionality your project needs to have, and do the testing. If you want, write down some bug list for future references. Maybe someday you'll be in the same position, having the same bug.
7. Have your client test it
It is important to have your client take a look of your project before it is finalized. That way you can get feedback from client and a new bug list.
8. Document your project
When you have finalized your project take some time to document about it. Update your specification and write help on how to use your project.
Final thought
I hope I summarized basic steps of having a project on your hands from beginning to the end. If you have any comments, or you do it some other way I would appreciate your thoughts and opinions.
Regards,
Vjeko