(The pic above was taken on Feb 3, 2011 – Chinese New Year, Spring Festival – my Jackson and Squier) Happy Chinese New Year – the year of rabbit 过年好, my dear friends:) though it seems a little late…I have been trying to get access to my blog since Feb 2, 2011 and could not make it through until now. I thought blog.com was blocked by the Chinese Government (as you might know already there is a IP filter system called Great FireWall aka. for GFW in China mainland for website blocking because of political reason. The famous blocked websites include YouTube, Facebook and etc..) as the only way for me to access my blog was proxy, like kproxy.com. Further more, besides opening a ticket to email@example.com, I planned to buy a VPN and use OpenVPN. Frankly, I was out of rage indeed as there was no reason to block my blog. It was, is and will be NPNP – NO PORN, NO POLITICS! The good news is blocking was caused by spam filter of blog.com itself instead of GFW and it is fixed. However, 7-day blocking of my blog do give me some hints on Software:
1. The more people like it, the deeper it would hurt – I have a deep feeling for this right now. Even though the blog service is totally free, there is a hidden contract of trust between user and service provider. It may be hard (kinds of reasons) to attract customers but very easy (only one reason) to push them away. Trust me!
2. The deeper it may hurt, the more responsibility the company needs to take – No doubt as long as you still agree with the words: Customer is God.
3. The more responsibility you need to take, the more testing you need to do – This is based on the assumption that the feature is necessary and the design is considerate. If it is true, then try to determine what kind of bugs could be reported by user and what kind should not. If the ‘should not’ ones happen on user, what is the impact, both impact to the company and customer.
4. The more testing you need to do, the more automatic it should be – Automation testing should be a very complicated function area which is always underestimated because of marketing policy. Personally, I do agree with the point ‘We have no time for testing’ as long as new product developement used to marketing is the first priority indeed. Otherwise, please think abut the relationship among testing, quality and brand on Software.
5. The more automatic it should be, the more detailed it should be – Unit Testing, Feature Testing, Beta Version, Internal Testing, Public Testing…There are tons of different testings covering different stages. There should be a good and practical combination for these testing per product or project. Take an example, in Lucent, the different stages for testing are UT(Unit Tesing), DT(Deliverable Testing), FT(Feature Testing) and NLT(Network Level Testing). Different testings are used to find different bugs.
7. Do the right thing – Per Google’s words ‘Do no harm’. It would be great if ‘Do no harm’. I mean, yes, this should be the bottom line for us to live with. However, though declaring a never-used variable is ‘Do no harm’, I do not think this line of code could be passed by code inspection:) I once asked myself this question: why do i like programming? I spent a few weeks to find my answer – to purchase the fairness, which may not be possible to purchase. (I do not plan to explain my answer here, maybe another post:) In the word of software, everyone obeys 2 basic rules: 1. No pain no gain. 2. There is always one way to get close to being perfect. In this word, ‘Do the right thing’ should be the bottom line for everyone.