Monday, November 19, 2007

Alchepo Guide to Software Quality Assurance

Face it. Most teams don't have time to do a proper quality check on their products, instead most depend on "trust". Its impossible to expect the Guru programmer to check everyone's source code to look for flaws and potential problem. Its equally insane to expect amature programmers to code like a pro equally.
So how does one implement quality inspection on the code? In many cases, its the end product that is installed and tested in a given time. Although end product testing is a must, i am talking about other stages where quality can be enforced and not just the end stage.

Here are some of my suggestion, mostly based on William Edwards Deming's key recommendations and paraphrased. Who is he? If you study on how Japan manufacturing and quality rose from the ashes, you will know who this person is.

One of the important rule you have to remember is :-

- Substitute personal supervision with.. Statistics.
This means you must ask your programmers for proof of quality instead of "have u tested it?" etc. For eg, ask him/her to run a set of tests and show u the result of those tests on his routine/function.
One alchepo way is to also record down the memory usage and handles of the program by simply running the task manager and recording the usage of that process before/during/after the tests are conducted. This simple practise ensures that no crazy leaks occur in the program which will result in those popular scenario where the program runs perfectly in day 1, but crashes in a week.
This should be conducted whenever they perform unit test on their new routine/program.

- Diverse data testing
One of the most evident proof of an amature programmer is when he/she says "it runs ok on my machine" where else it crashes just after deployment on the first client pc.
The product/routine must be tested in as diverse scenario as possible, you dont really need an infinite number of pc's to do this, just some range of diff setup. For eg, a new setup with no service pack or on Virtual pc, and some end users pc you have in your office with loads of rubbish loaded. Better still is the industry practise of providing a beta testing to selected clients or public.

This is by no means a complete or even decent article on software assurance, but if your team have no proper method anyway, these 2 steps alone will secure ur eternal gratitude to this blog . ;-)

Monday, November 5, 2007

Windows Mobile Dominance : Dopod / HTC = ?

Around 2-3 years back, i got myself the new Xphone, powered by the SmartPhone OS which is basically Windows CE based. The idea that the phone ran on Windows was interesting so much so that the curiosity got the better of me and i parted with RM 1,800.

(photo from gsmarena)

Thats when the nightmare began, it seems like the phone was nothing more than a plastic shell that ran Windows with no regards to phone practicality. Although the contacts smart search (it searches both letter and numbers when you press the relevant keys) was a great design, the rest of the functions just falls out of place. The phone taught me how refined a normal Nokia was and how foolish was me to think that MS new venture (back then) could possibly be better.

One of the most irritating problem i recalled was the SMS ringtone. When you are using phones like nokia, alcatel, motorola and even Sharp, the sms ringtone are discreet or a soft vibrate. On the XPhone, it just "DING-DONG!" right into your ears not realizing that you are on the phone talking and your ears are like just milimeters from the speakers. It rang right out, without detecting the current state of the phone. That shows how "basic" the phone was. I did read a review on an Australia ZDnet before buying the phone, i guess the reviewer never really used the phone. The phone was sold under O2, but if you dont know by now, its all by HTC. Couple that with frequent hangs and reboots, the phone was sold off to a guy who wanted to use it as contact backup at a fraction of the price.

Time passed, so does my grudge against Xphone. This year 2007 during the CNY, i got myself the Dopod838 pro, surely the best of Window Mobile won't go wrong was my excuse this time.

(photo from dopodasia)

The camera was chun!, the video was perfect for recording impromptu stuffs. The Outlook synch worked perfectly well and the phone comes with a sliding keyboard, something that my fingers easily adapt to.

Then comes the problem :-

  1. Its a 3G phone, when you are surfing on the phone, all incoming calls are dropped, you won't even hear a ring. You cant make any calls out either. Yes, one can argue that 3G uses the same bandwidth as the calls thus it was technically correct to make the phone work this way...GO TRY A NOKIA, it would smartly pause the 3G while you chat and resume when you hang up.

  2. The sliding keyboard frequently hung, the screen was no receptive to anything you type on the keyboard, i ended up switching to the touch screen and pen.

  3. You will need to turn "off" the screen by pressing the side buttons or the phone can be configured to "energy saving mode" when idle for minutes. But most likely you will just press the side button like all other Windows mobile devices (ver 5 and 6). Now this poses a problem, the device comes with so many other buttons which are accidentally triggered somehow even when the phone screen is already off. Thus you find a slew of applications running when you turn on the screen and it lags the device to a crawl. Solution: Assign all the buttons (except camera) to "none".

  4. The front buttons have a paint that easily peels off, for a device that cost RM 3k (ouch!) this kind of quality is not expected. I wasn't expecting the VW golf 4 layer paint coat, but hey its just 3 months down the road and it peeled.

  5. If you are new to PDA+phone and you like to quickly reply SMSs while you are stuck in a short traffic, you would want a phone with a real keypad.

I upgraded the OS to Windows Mobile 6 (official dopod838 pro patch) , yes the new menu's better but overall...the phone is still very much slacking in practicality as a phone. I find myself nagging the phone and getting impatient with its flaws and missing the good'ol Nokia 6630.

Well, thats me, on the corporate industry and IT world however ....

Windows Mobile is a very attractive choice.

  1. MS Exchange comes with free push email (Direct Push). Blackberry, Visto, and Seven (Ericsson mobility) require a third party provider and expensive upfront payment. Then there is Funambol ( which claims to provide free push email Open Source. Funambol won't work in Malaysia, not on Maxis and other providers, it require an incoming connection directly from your Provider to your phone, which only means it can be implemented only by your provider. I did manage to make this work, by writing our own proxy clients (java for nokias, sonyerics and .net for WM) on the phone and modifying the server to provide straight push email. However, the market expectation of push email speed and funambol server polling design makes it non viable.

  2. Vista beautiful support for Windows Mobile via the new Window Mobility Centre.

Thus i would say, as more people demand for push email becomes apparent, some would turn the blind eye to the Windows mobile flaws and embrace the Empire's offer. (imagine the evil star wars empire soundtrack playing....teee tee teee te te te te te te)

May the mails be with You....

Thursday, November 1, 2007

Programming Job available

There will be a booth in TARC this coming 14-15th Nov, 2007 held by my company.

The company wants to hire programmers, if you are a tarcian and attending the event, i gurantee u will not miss our booth (ha ha)...the posters that was done is out of this world.

"Code Wars" - Master Yoda poster

"Enter the Coders" - Bruce Lee poster

I hope the rightful parties wont be offended as the images are just used for this one occasion, for the same reason i wont be posting the images in its actual format.

Actually if you are looking for a programming job as your starting career or if you have 1-2 years experience, you just need to be able to write this program, and my company would love to hire you.

Program Test: (C# or C++)

1. Write a program that will write to a file, the following random objects

integers, alphanumberics, floats and seperated in a file. The file size must be around 20 MB.

Eg, 23213, 1.2312, helloworld, 88593, what is this, 88.22

2. Write a program that will read from this file and print the types of each token that was read from the file :

Eg, 23213 = integers

1.2313 = floats

helloworld = strings

Thats it, simple and straight forward. Just complete the 2 programs on your own.

Send the program project to the company at : complete with your resume .