Category Archives: Daily Scribble

My random thoughts of the day.

Chief Programmer Team

In software development, there are many different models in how to organize the team structure. I have read the Chief Programmer Team model in Rapid Software Development and Mythical Man Month and I always wanted to try it. The Chief Programmer Team model is base on the fact that the best programmer is often much more productive than an average programmer. The idea is to amplify the productive of the superstar by organizing the development team around him. The chief programmer is the brain of the team, he architect the code and write the most complex part, leaving all the supporting, secondary or mundane tasks to other team members.

I found this development model works exceptionally well with Indian contractors. I have been auditing their code does not meet our quality. I tried explaining what they need to do in email and over the phone how to fix their code, but somehow they just could not get it exactly right. It is to the point of frustration that it would simply faster for me just fixing their code. However, I only have two hands and I couldn’t not do all the work myself. I decided to try the chief programmer team model. I clean up the structure of their code and take care of make sure all the pieces works coherently. Then I wrote instruction in the code and get my team clean up any syntax error or careless logical error and most important finish the mundane wiring work.

I found I am super productive using this work model. I can focus my mind on solving the big problem and let my guys take care of the boring details. When I am writing and qualify my own code, I can work on one file at a time. Now I can work on 3-4 files at the same time. It is like I have an AI automated code generator or I have a few extra pairs of invisible hands help me type the code. I just specify the flow and structure of the code, jot down some high level instruction and the code is auto generated the next morning. I gave enough information in the code so my guys only need to fill in the blanks like in high school programming assignment. I estimate I am 3-4 times more productive by having 3-4 contractors serves as my remote fingers and low-level brain. If I leave those contractors figuring out the code on their own, they won’t even be half as productive as me.

The only problem of chief programmer team model is hard to implement in a typical N.America work environment where everyone is more or less equal in the hierarchy. No one wants to be the supporting programmer who carry out all the boring grunt work while the chief program gets the fun of creativity and all the glory. Moreover the role of supporting programmer seems like a dead end job with no career perspective, so naturally no one want to stick around doing it. The supporting programmer has to reach at least the basic competency level or he won’t be any use, but at the same time he much not be very competent or he will seek a greener pasture other than working as a supporting programmer. The biggest challenge of the chief programmer team model is find some stable decent supporting programmers.

CSIA level 2 ski instructor

I just passed my CSIA level 2 ski instructor training, which means I no longer limited to teach bunny hills, I can now teach on blue runs. I have my level 1 certification for 4 years but never teach any lessons. This year I decided to give level 2 a try and see how much my skiing had improved over the past few winters.

I took the level 2 course at Grouse Mountain. Although I am living in Vancouver for almost 10 years, it’s the first time I ski on Grouse. The weather is better than I hoped. There is not much snow base, there are brown patches on the ski runs and only three runs are usable, but at least I don’t have to ski in the rain. We even got 9cm of new snow on the second last day of the class.

The course is 3 nights and 3 days. I never ski 6 consecutive days in a row and it really tax my endurance. Most of the classmates work for Grouse ski school, except a girl work in Cypress. A high school girl and I are the only two students who do not teach skiing. The course covers teaching from linking wedge turns to doing full parallel turns. We spent most of the time on parallel turns since it is harder. The exam has two components, skiing demonstration and teaching. In the ski demonstration part, I am required to demo perfect parallels turn. In the teaching part, I have to assess my student and pin point what’s wrong with their skiing and give them drills to improve their basic techniques.

Somehow I actually pass the teaching part without much problem since it’s just good observation and then apply skiing theory. I was struggling in the ski demonstration. I was clearly below standard on the first day of the course. My balance is leaning too much up hill, my turning timing is off, I did not steer enough at the end of the time and I did not have much leg extension. For the whole week, I focused on improving my basic ski skill to bring it up to the standard. Luckily, this is the ski instructor training and I have lots of opportunities acting as student for my classmates. Since they are also working hard to pass the course, I got very good attention and helpful feedback. I think including the sessions from the instructor and the classmates, I have done the parallel turn lesson at least 15 times. I was so happy when the instructor told us everyone pass the course on the last day. The pain and sour of my knees and my back finally pays off.

Before I take the course, I always blame my old ski for my bad skiing. Now I know I have a lot to work on and I am far from the limit of my old ski, rather I am only limited by my poor skiing techniques. I always struggle on bumps because I don’t have a strong foundation. Skiing the same three runs on Grouse doing endless drills is not as fun as cruising down on Whistler, but it forces me return to the basics and work on my foundation. The instructor training is probably the best ski lesson I ever have in terms of skill improvement. Dollar for dollar, I earn more ski skill in this training than any drop-in lessons in Whistler. I even get tax credit for the course tuition since it is classified as job training!

Shopping for Piano

We are looking for a baby grand piano for our new home. I know Steinway and Sons is the best piano, but it’s way over our budget. A Yamaha is more affordable, but Tom Lee gets a fat profit margin. So I have been monitoring second hand piano sales on Craigslist and Kijiji for the past few months. I saw a very good deal, 15 years old Yamaha C1 for just $6000. I call the seller and ask to check it out. It turns out the piano is storing at a piano store, I feel a bit suspicious, thinking it maybe a trick to lure in customers, but I figure there is no harm to take a look anyway.

When we were in the store, as I expected the store owner try to sell us other pianos on floor. The store mainly carries two little known brand, Brodmann and Hailun from Chinese. The owner try to convince me his pianos are as good as or even better than Yamaha. He keep saying the new manufactures learns their skill from Europe and their piano have a European tone and criticize the Yamaha has a sharp tone. He try to demonstrate his point by playing a few notes from each piano. However I caught him trying to mislead my perception. He played his piano with a very soft touch and hit it really hard on Yamaha’s key. No wonder his piano sounds better. Pat took her turn and play the same piece of Mozart in all these pianos. I can tell the difference with my untrained ears. Estonia is definitely has richer sound compare to the Yamaha, but the sound from two Chinese brands are quite murky.

To most of my disappointment, the Yamaha is actually not a C1 but a GH1. C1 is an entry level concert grade piano, GH1 is just a Yamaha knock off made in Indonesia that does not even have a proper sostenuto pedal. At this point, I no longer trust the integrity of that shop and decide to leave. At this moment, the owner of the piano called the store and said the piano is just sold. What a perfect timing. Later that day, I found the piano suppose to be sold shows up again in Craigslist under a new ad. I am 100% sure the piano is a bait to lure innocent customer to that dishonest piano store.

Even though the piano shopping trip did not turn out as I expected, but I still learn something new about piano. The most valuable of all is I discover the Piano Buyer Guide which is very informative on anything about buying a piano. As an engineer, I don’t feel comfortable buying things that I don’t understand. Since I am not a piano player and know nothing about piano, now I feel obligated to read the Piano Buyer Guide before making a purchase decision.

My last words to those who happen to come across this blog, stay away from Heritage Piano in Surrey. Piano is probably the most expensive purchase other than a house and a car. You gotta buy a piano from a reliable source. Never deal with a dishonest piano store.

How to build a small table (part 2)

After eight week of wood working class, I have built my first table. After going through all the steps and trouble from raw lumber to a finished furniture, I appreciate all different kinds of furniture made available by modern manufacturing process. I can’t imagine how much time it will take if I have to build all my furniture myself. The cost of the wood and tools I bought plus my time, cost a lot more than the price I pay at a furniture store for a similar table.

Due to the lack of cost efficiency, I probably won’t take up wood working as a hobby, but I must confess that seeing the finishing product gives me a sense of satisfaction. I think wood working is a must-have skill for the man of the house, it the basic of home maintenance. My wood working skill also gives me better eyes in telling the quality of furniture. If I need a piece of unique special purpose furniture that is ridiculously expensive, I know I can always build it myself.

Here is the second half of my table building experience. Please see part 1 for steps 1 to 11.

12. Sand the table top to make it a really smooth surface

13. Glue the legs, sides and back pieces. Hold the shape with bar cramps.

14. Drill packet hole for mounting the top and bottom

15. Screw in the bottom piece

16. The table frame is finish

17. Cut the groove for the drawer bottom.

18. Assemble the draw with counter sink screws

19. Counter sink screws sinks into the wood to leave a flush surface

20. Cut wood plugs to cover the counter sink holes

21. Glue the plug, saw off the top and sand it flat.

22. Fasten the drawer rail with counter sink screw

23. Fasten the drawer front with bubble screw and washer

24. Slide in the drawer and the table is done!

Here is some lessons I learn what not to do in wood working

1. Don’t put much force onto the power screw driver, otherwise the wood will crack

2. Don’t drill too close to the edge or using a too large drill head, otherwise the wood will crack

3. Don’t twist the drill, otherwise the drill bit will snap.

Google 411

Whenever I used 411 to look up the phone number I need, I always feel being ripped off by the telephone company. The information is free out there on the internet, yet my mobile carrier charges me 50 cents for each call. Now, I don’t have to up with my frustration with the 411 operators anymore, here it comes the Google 411.

Call 1-800-GOOG-411 (1-800-466-4411), you are greeted with a computer voice asking for the business or phone number you are looking for. You simply say the location and business name, Google will redirect your call to the destination. No more long distance fee if you are trying to call a business out of town. Google 411 supports all US and Canada numbers but it only works in English. I tried calling my office with Google 411, it works like a charm. It can even understand my not so perfect Chinese-accented English. If you are calling form a smart phone, you can even ask Google 411 send you a map of the number you looked up.

I wonder how Google is making money off from this great service. It does not have any advertisement at the moment, but I think people won’t mind listening to a few seconds of advertisement before getting the number. I read a bit more about Google 411 and it turns out totally not what I expected it to be. Google has no intention to make any money from this service, they are not even consider selling advertisement. The service is a giant experiment to build a huge phoneme database to train their super voice recognition system. What else is better than giving a free service and get all sorts of people with different accents call and leave you their voice?