Most of the biggest blunders are caused by small – silly mistakes –ALWAYS be alert when you use the Live build.· Check the back-up policy of your Live application DB with your client. Encourage them to have at least a daily backup of the database. All it costs is few minutes of setup work and may be some Gigs of storage. When you explain the investment – return trade off any client will be more than willing to setup this.
· ALWAYS take a backup copy of your application from the Live site before uploading ANY build – Even if just a label was changed.
· Common excuses for NOT taking a backup are – Urgent Upload, it’s a windows service how do I take a backup of that? Etc. The amount of damage that a wrong upload can cause is Million times more than the amount of damage that 2 minutes of delay you had because of the Backup process.
· On that Windows service question, it’s very simple, every time beforeyou make the upload, always have a copy of that binary/build in a folder – name the folder with the date and the main purpose of the build – E.g. 02Sep09_FixedMemoryLeak – If you keep doing this in a same location, you ALWAYS have a backup of the previous version of the service.
· Do NOT code until and unless your codebase is in a SCM system – The importance of this cannot be stressed enough. When used properly (always check in your changes after doing a diff; Apply labels; Give proper check-in comments; Make sure to check in at least once in a day, Etc) this one thing can save you even if everything else that is mentioned above was not followed.
· Do a thorough testing even after a very simple, innocent looking upload.
· Discuss with the client and formulate a critical area testing plan and make sure that all steps are passed successfully after ANY upload.
· ALWAYS make a note of DB changes that you do on a day to day basis for any new development or issue fixes – Keep a clean note of new tables added, altered columns, modified SPs, new SPs and so on and ALWAYS see this list and make the necessary DB changes after the Live upload.
· If SPs are getting modified, take a backup of the current Live version before modifying the same – In the event of a roll back, table changes can be easily rolled back but you will be in a dead end if you do not remember the exact changes made in the SP.
· Do NOT use the auto generate script for ALTER TABLE – Most of the DBMS systems will add a line to drop the existing table – run this in Live and you are dead! The Table with all its data would be lost forever – Write specific DDL statements or use the Designer mode of the Interface to change/add new columns.
Please feel free to add Notes here if you have more points.