Tag Archives: management

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.

Maker’s Schedule, Manager’s Schedule

I am not productive if I don’t get at least half of a day of time. Manager schedule runs only hourly basis, but I doubt how much productivity are those meetings other than showing your presence. If a manager need to do some strategy thinking, he still have to block off half a day.

Continue reading Maker’s Schedule, Manager’s Schedule

What is management

This is the third speech in the humorously speaking manual. The objective of the speech is to use jokes in the speech, open and close the speech with a funny story.

Dear chairman, fellow toastmasters, honored guests. A big engineering firm outsourced to Africa and hired four cannibals. On the first day of work, at the end of the orientation, the boss said to the cannibals, “You will make good money as engineers. You can enjoy free food in the cafeteria. Don’t trouble other employees.” The cannibals promised they will not trouble other employees. For four weeks, things is working pretty well, but one day the boss found the co-op student is missing. He came to ask the cannibals, “Do you know what happen to the missing co-op student?”. The cannibal swear they know nothing about the co-op students and the boss went away. After the boss is gone, the lead of the cannibals asked, “Who ate the co-op students?”. One hand raise hesitatingly, and the leader yelled at him, “You fool, we have been eating managers for four months and no one has notice they are missing. Now you ate a co-op student…”

What is management? How many of you have read the Dilbert cartoon? When we think of managers, we always think of the pointy hair guy, sitting in a big office doing nothing, knowing nothing except giving a harsh time to Dilbert. Unfortunately, many people has this misconception about management; and even some managers has the same misconception themselves. Management is the mean to enable a large group of people joint together to form a large organization that deliveries and performs. With out management, any large organization will degenerate into a mob.

Management is a relatively new discipline. It exists merely for 150 years. In ancient time, there was no management, there were only slave and the slave masters. Slave masters don’t manage people, they whip their back. The longest surviving large organization in history is the army. That’s why at the dawn management, managers often borrow ideas from military schools. Command and control is the most common management style in early large organizations. However there are some fundamental difference between a company and the army. A manager can ask the employees to march left and right like a soldier, but they can’t ask the employee die for the company. By the turn of the century, management get a new life when Henry Ford invented the assembler line. Management has became scientific management. The managers break down complicate tasks into simple tasks and trains unskilled labor work together. The managers also measure the performance and output of the workers. After World War II, our society has changed from a blue collar manufacturing society to a knowledge society. Manager has to co-ordinate different people with diverse knowledge and skill in to work together and perform in a large organization.

When we think of management, we often think of business management. It is wrong. Management is a lot more than business. Management is essential to any large organization to perform and delivery result, whether it is a business, a hospital, a university of the government. The result of a business is a satisfied customer. The result of a hospital is a healed patient. The result of a university is a student who can put his knowledge into good use after graduation.

Someone thinks management is science. It deals with numbers, the bottom line, ROI, six sigma and lots of techniques to measure the performance. Someone thinks management is humanities. It deals with people, culture, value, psychology to foster a harmony working environment. Management is really a liberal arts. It is an art deal with knowledge. Not just the knowledge about the service or product of the organization, but also the knowledge possessed by other people. Manager enable a group of people capable of joint performance through a common goal and common value.

There are three men, a manager, a hardware engineer and a software engineer, going to lunch. On their way to the restaurant, they found a magic lamp. They rub the lamp, a genie appears and says, “Usually, I grant you three wishes, but since there are three of you, I will grant each of you a wish.” The hardware engineer goes first, he says, “I want to spent the rest of my life living on a Hawaii beach, with lots of money and lots of beautiful women.” The genie grants his wish and sends him to Hawaii. The software engineer goes next, he says, “I want to spent the rest of my life living on a Mediterranean island, with lots of money and lots of beautiful women.” The genie grants his wish and sends him to the Mediterranean. At last, the genie asks the manager, “It is your turn, so what is your wish?” The manager replies, “I want my engineers back after lunch.”

Ineffective incentive

Today we have our department quarterly update.  The director flew in town to give us overview of how the department is doing.  My project is the only project in the department, so it has very high profile and no room to fail.  Thanks to the stupid decision of close down two design centers in Canada, lay off many experienced engineers and outsource the work to India, the project is quite behind schedule.  Now the management finally wake up and realize the problem, they are all scrambling and try all means to pull the schedule in.  They try to add more resource in India, but they simply could not find any qualified engineer.

They try to hire back ex-employees from the closed design center as contractors.  It is pretty much admitting last year’s decision to close down the site is stupid.  One desperate measure to they try is by making us work hard and longer hours.  This idea won’t work if they use the stick because it would only demotivate us and further lower our productivity.  They try to use carots and lure us to work overtime.  The director said if the project is finish on time, the whole team will have a special bonus as incentive.

This idea sounds great, the only question is how much is the bonus.  The director did not give us any number or percentage, so the incentive won’t work.  No one would work harder if they don’t know roughtly how much we will get in return.  After the meeting, some of us did a rought calculation, we all agree that the bonus has to be at least $10k to be attractive.  Judging from previous record of the company, the so call special incentive bonus could be merely a few thousand dollars, which won’t worth working your ass off.