2.25.2007

Google's Ten Things

I'm feeling lucky. I have the opportunity to work everyday with world-class computer scientists and software engineers within one of the happiest organizations I've experienced. I work at Google.

The Google Organization has many positive facets, but one that always comes to mind when I'm walking my dogs and reflecting on life in general is the list: "ten things Google has found to be true". They are listed here:
  1. Focus on the user and all else will follow.

  2. It's best to do one thing really, really well.

  3. Fast is better than slow.

  4. Democracy on the web works.

  5. You don't need to be at your desk to need an answer.

  6. You can make money without doing evil.

  7. There's always more information out there.

  8. The need for information crosses all borders.

  9. You can be serious without a suit.

  10. Great just isn't good enough.
Plus, if you'd like some additional reading, check out the original IPO Founders Letter. Google is a special place at a special time.

2.04.2007

Deming's System of Profound Knowledge

W. Edwards Deming's work on quality, while widely misinterpreted and misapplied in the USA, was nonetheless a watershed that Japanese companies, especially Toyota, took to heart. Deming sees organizations as human systems and management as having the primary responsibility for effective results. Mistakes are most often the fault of the system and management's myopia in not seeing this -- not problems due to workers. For reference, see Chapter 2 of his Out of the Crisis. Below are Deming's 14 points accompanied by commentary related to software development.

1. Create constancy of purpose towards improvement of product and service, with the aim to become competitive and to stay in business, and to provide jobs.
Consider software development that is bogged down with heavy procedures and reporting, focusing more on plans than working software. In contrast, think about software development focused on maximizing the value to the customer in the minimum amount of time. A constancy of purpose calls for a focus on software, not on process, documentation or conformance to plan.

2. Adopt the new philosophy. We are in a new economic age. Western management must awaken to the challenge, must learn their responsibilities, and take on leadership for change.
Workers cannot adopt a philosophy of constant improvement if management doesn't do it as well. For software developers to be captive of rigorous project management processes that miss the fundamental dynamic that software is product development, not rote manufacturing, removes their opportunity to continually improve their means of working and creating great software. Management must come to recognize that what is needed are reliable means to generate software, not repeatable processes that sacrifice innovation and adaptability that results from a robotic and misguided religiosity of "conformance to plan".

3. Cease dependency on inspection to achieve quality. Eliminate the need for inspection on a mass basis by building quality into the product in the first place.
Design quality in, don't use inspection to find errors. Mistake proof the system.

4. End the practice of awarding business on the basis of price tag. Instead, minimize total cost. Move toward a single supplier for any one item, on a long-term relationship of loyalty and trust.
Recognize that outsourcing is often a consequence of accounting that focuses on human utilization, assuming that for software development labor costs are variable instead of fixed. A better measure is to focus on minimizing the time from concept to cash and having the appropriate personnel to do it. Focus on developing great teams that can deliver great software and the rest of the negotiations become minimized.

5. Improve constantly and forever the system of production and service, to improve quality and productivity, and thus constantly decrease costs.
Improvement is a constant process, it is not a big-bang perfect system. Avoid prescriptive systems as they are immutable and suppress improvement.

6. Institute training on the job.
Adequate training equips workers to make important decisions at the point of the work reducing needless variation and avoids slowing things down for management approval. Ensure that people are equipped to perform and then let them.

7. Institute leadership. The aim of supervision should be to help people and machines and gadgets to do a better job. Supervision of management is in need of overhaul, as well as supervision of production workers.
Distinguish between leadership that motivates people and engages them from quotas and schedules which are rudimentary management tasks.

8. Drive out fear, so that everyone may work effectively for the company
In a fearful environment, workers do not operate in the organization's best interest; instead their energies are by necessity focused on self-protection.

9. Break down barriers between departments. People in research, design, sales, and production must work as a team, to foresee problems of production and in use that may be encountered with the product or service.
It's necessary to recognize for effective organizational performance that departments and groups serve each other, not the hierarchy or the fiefdoms of local managers.

10. Eliminate slogans, exhortations, and targets for the work force asking for zero defects and new levels of productivity. Such exhortations only create adversarial relationships, as the bulk of the causes of low quality and low productivity belong to the system and thus lie beyond the power of the work force.
  • Eliminate work standards (quotas) on the factory floor. Substitute leadership.
  • Eliminate management by objective. Eliminate management by numbers, numerical goals. Substitute leadership.
Mistakes typically come from bad systems not bad workers. Don't exhort people to work harder or smarter; instead create a more intelligent workflow and system tailored tot he essential nature of software development as human collaboration (not just coordination) such that people can excel.

11. Remove barriers that rob the hourly worker of his right to pride of workmanship. The responsibility of supervisors must be changed from sheer numbers to quality.
Production quotas create incentives for poor quality goods. Objectives presume the world is stable and unchanging, thus squashing any hope for improvement in ongoing processes.

12. Remove barriers that rob people in management and in engineering of their right to pride of workmanship. This means, inter alia, abolishment of the annual or merit rating and of management by objective
Afford the opportunity for people to do excellent work and be adaptable to the situation at hand instead of being constrained by an abstract process of paint-by-the-numbers.

13. Institute a vigorous program of education and self-improvement.
Hopefully, this is self-explanatory.

14. Put everybody in the company to work to accomplish the transformation. The transformation is everybody's job.
Management must avoid the tendency of "do as I say, not as I do." Avoid having "change agents" as their efforts will be spotty at best. Instead, empower everyone to act to constantly improve the overall situation.