All of us know that backups are necessary and it is imperative that we backup all useful data. But it is easier said than done. How many of us have learned the lesson the hard way? How many time have you felt like the manager in the comic strip?
Some of us have learned the lesson in a hard way and some of us in a good way. I had learnt my lesson in a good way. I can share it with you….
Back in 1995 when I had entered the world of computers for the first time (in NIIT, of course), we had to work on a dummy development projects as one of our assignment. Those were the days when the disk space was expensive and you had do the whole project on the network workarea. This workarea used to be cleared after every session and so we were provided with floppy disk to save our programs. I used to save the programs in my own floppy disk in addition to the one provided by the institute. My partner sometimes wondered that why I am wasting my time in creating two copies and I used to just mutter something.
Then the day before the project evalutation it happended… the lab assitant accidently dropped the floppy box containing the assignments of the whole class. There were many complaints and the assitants had a nightmare job in helping everybody restoring there work. Also, the evaluator was kind enough in being generous with her grade while evaluating. But I still remeber her face when I brought my own copy & restored our entire project. My team’s project was the only working model in the class.
I learnt my lesson in a good way. From that time onwards, I was always finnicky about backups. From floppy disk, it went to CD R/RW, DVD, pen drives, portable hard disk etc. All my critical local data is backedup on my pen drive on regular intervals, which is again backed up to an alternate PC or a laptop. In addition to backing up local data it is important to back up online data. For e.g. I have created another blog which is an exact copy of this blog.
Backups… backups… backups…. you can never do enough backups. To conclude, I will quote from this blog post by which I was inspired to write this article.
“So when, exactly, is International Backup Awareness Day? Today. Yesterday. This week. This month. This year. It’s a trick question. Every day is International Backup Awareness Day.”
I recently went to a book store and came across a book The Six Value Medals by Edward de Bono. Now, many of you would have heard of Edward de Bono as a pioneer of lateral thinking by introducing the concept of Six Thinking Hats to us. But this book was new to me. Going through the book, I perceived that this book provides a framework in decision making by understanding the key six values for an organization. The six values are represented as medals.
The Six Medals are
- Gold – People Values
- Silver – Organization Values
- Steel – Quality
- Glass – Creativity
- Wood – Value to environment
- Brass – Perception
This is a management concept and outside the scope of our blog. But this also got me thinking that “what if we take this medals and apply it to our development values?”. Basically, use the term ‘medals’ literally and use it as a reward and recognition means for development projects under different categories. So, we can have…
- Gold Medal – Project that gave the most value to staff.
- Silver – Project that gave the most benefit to the organization. The benefit can be in terms of profitablity, company brand or possibility of getting more projects.
- Steel – Project that was delivered with the highest quality. No defects.
- Glass – The most innovative project.
- Wood – This is tricky. There are very few IT projects that benefit the environment. Maybe we can extend it to the project that gave the most benefit to community or environment.
- Brass – The project that has been percieved as the best project by the customer.
So which medal does your project or project team deserve?
If my blog is About Coding then I feel I should write something About Code Review. There is enough said on importance of code review and its benefits. In fact, the average defect detection rate for code review is 60%. This is higher than other defect detection techniques like unit testing, functional testing or integration testing.
Also, there is enough said on various measurement techniques for code review like defect detection rate, defect density or the one showed by this cartoon :-).
So rather than focusing on importance of code review or its measurement techniques, I would like to bring up a very universal question on code reviews… whether code review should be done before or after unit testing.
Benefits of doing code review before unit testing
- If a major issue is found during code review then there is less rework. Since unit testing is not done, the defects are identified at a earlier stage and effort is saved.
- Since the reviewers know that the unit testing is not done they expect code to be buggy and would identify more defects.
Benefits of doing code review after unit testing
- Since the unit testing is done, code is not crappy and many obvious mistakes are removed in unit testing stage.
- Less defects are identified & code review time is reduced.
- Developers are more comfortable sending their code after they have done the unit testing.
So, what do you think? My personal bias is on doing the code review before unit testing but a balanced approach can be made. If there are significant changes then a dual code review can be recommended. The first one can be done at a very high level before unit testing and a detailed code review can be done after unit testing. Alternatively, a single round of code review can be done after some amount of unit testing is done but not completed.
Here is the sample code for Hello World.
CAN HAS STDIO?
VISIBLE "HAI WORLD!"
Translation: Hi, Can I have the stdio file (This is with reference too the famous #include “stdio.h”). Make “Hi World” Visible. Ok Thanks Bye…
Here is another sample.
CAN HAS STDIO?
I HAS A VAR
IM IN YR LOOP
IZ VAR BIGGER THAN 10? KTHX
IM OUTTA YR LOOP
Translation: Hi, Can I have the stdio file. I have a variable. I am in a loop. Up variable by 1. Is variable bigger than 10? Yes – Ok Thanks Bye. Make variable visible. I am out of the loop.
This kind of language makes coding interesting. Do you think incorporating this kind of language will help programmers code better & more efficiently?