How to use OpenOffice’s database tool is a useful tutorial on setting up, using, and developing with Open Office 2.0 Access replacement.
Category: Technology
Google’s Rules
I thought this article by Google’s Eric Schmidt and Hal Varian was really solid so I am linking to it and posting some of the more important parts of the article. Here is Google: Ten Golden Rules
By Eric Schmidt and Hal Varian
Newsweek
Updated: 11:33 a.m. ET Dec. 2, 2005
Issues 2006 – At google, we think business guru Peter Drucker well understood how to manage the new breed of “knowledge workers.” After all, Drucker invented the term in 1959. He says knowledge workers believe they are paid to be effective, not to work 9 to 5, and that smart businesses will “strip away everything that gets in their knowledge workers’ way.” Those that succeed will attract the best performers, securing “the single biggest factor for competitive advantage in the next 25 years.”
At Google, we seek that advantage. The ongoing debate about whether big corporations are mismanaging knowledge workers is one we take very seriously, because those who don’t get it right will be gone. We’ve drawn on good ideas we’ve seen elsewhere and come up with a few of our own. What follows are seven key principles we use to make knowledge workers most effective. As in most technology companies, many of our employees are engineers, so we will focus on that particular group, but many of the policies apply to all sorts of knowledge workers.
* Hire by committee. Virtually every person who interviews at Google talks to at least half-a-dozen interviewers, drawn from both management and potential colleagues. Everyone’s opinion counts, making the hiring process more fair and pushing standards higher. Yes, it takes longer, but we think it’s worth it. If you hire great people and involve them intensively in the hiring process, you’ll get more great people. We started building this positive feedback loop when the company was founded, and it has had a huge payoff.
* Cater to their every need. As Drucker says, the goal is to “strip away everything that gets in their way.” We provide a standard package of fringe benefits, but on top of that are first-class dining facilities, gyms, laundry rooms, massage rooms, haircuts, carwashes, dry cleaning, commuting buses”just about anything a hardworking engineer might want. Let’s face it: programmers want to program, they don’t want to do their laundry. So we make it easy for them to do both.
* Pack them in. Almost every project at Google is a team project, and teams have to communicate. The best way to make communication easy is to put team members within a few feet of each other. The result is that virtually everyone at Google shares an office. This way, when a programmer needs to confer with a colleague, there is immediate access: no telephone tag, no e-mail delay, no waiting for a reply. Of course, there are many conference rooms that people can use for detailed discussion so that they don’t disturb their office mates. Even the CEO shared an office at Google for several months after he arrived. Sitting next to a knowledgeable employee was an incredibly effective educational experience.
* Make coordination easy. Because all members of a team are within a few feet of one another, it is relatively easy to coordinate projects. In addition to physical proximity, each Googler e-mails a snippet once a week to his work group describing what he has done in the last week. This gives everyone an easy way to track what everyone else is up to, making it much easier to monitor progress and synchronize work flow.
* Eat your own dog food. Google workers use the company’s tools intensively. The most obvious tool is the Web, with an internal Web page for virtually every project and every task. They are all indexed and available to project participants on an as-needed basis. We also make extensive use of other information-management tools, some of which are eventually rolled out as products. For example, one of the reasons for Gmail’s success is that it was beta tested within the company for many months. The use of e-mail is critical within the organization, so Gmail had to be tuned to satisfy the needs of some of our most demanding customers”our knowledge workers.
* Encourage creativity. Google engineers can spend up to 20 percent of their time on a project of their choice. There is, of course, an approval process and some oversight, but basically we want to allow creative people to be creative. One of our not-so-secret weapons is our ideas mailing list: a companywide suggestion box where people can post ideas ranging from parking procedures to the next killer app. The software allows for everyone to comment on and rate ideas, permitting the best ideas to percolate to the top.
* Strive to reach consensus. Modern corporate mythology has the unique decision maker as hero. We adhere to the view that the “many are smarter than the few,” and solicit a broad base of views before reaching any decision. At Google, the role of the manager is that of an aggregator of viewpoints, not the dictator of decisions. Building a consensus sometimes takes longer, but always produces a more committed team and better decisions
* Don’t be evil. Much has been written about Google’s slogan, but we really try to live by it, particularly in the ranks of management. As in every organization, people are passionate about their views. But nobody throws chairs at Google, unlike management practices used at some other well-known technology companies. We foster to create an atmosphere of tolerance and respect, not a company full of yes men.
* Data drive decisions. At Google, almost every decision is based on quantitative analysis. We’ve built systems to manage information, not only on the Internet at large, but also internally. We have dozens of analysts who plow through the data, analyze performance metrics and plot trends to keep us as up to date as possible. We have a raft of online “dashboards” for every business we work in that provide up-to-the-minute snapshots of where we are.
* Communicate effectively. Every Friday we have an all-hands assembly with announcements, introductions and questions and answers. (Oh, yes, and some food and drink.) This allows management to stay in touch with what our knowledge workers are thinking and vice versa. Google has remarkably broad dissemination of information within the organization and remarkably few serious leaks. Contrary to what some might think, we believe it is the first fact that causes the second: a trusted work force is a loyal work force.
Of course, we’re not the only company that follows these practices. Many of them are common around Silicon Valley. And we recognize that our management techniques have to evolve as the company grows. There are several problems that we (and other companies like us) face.
One is “techno arrogance.” Engineers are competitive by nature and they have low tolerance for those who aren’t as driven or as knowledgeable as they are. But almost all engineering projects are team projects; having a smart but inflexible person on a team can be deadly. If we see a recommendation that says “smartest person I’ve ever known” combined with “I wouldn’t ever want to work with them again,” we decline to make them an offer. One reason for extensive peer interviews is to make sure that teams are enthused about the new team member. Many of our best people are terrific role models in terms of team building, and we want to keep it that way.
A related problem is the not-invented-here syndrome. A good engineer is always convinced that he can build a better system than the existing ones, leading to the refrain “Don’t buy it, build it.” Well, they may be right, but we have to focus on those projects with the biggest payoff. Sometimes this means going outside the company for products and services.
Another issue that we will face in the coming years is the maturation of the company, the industry and our work force. We, along with other firms in this industry, are in a rapid growth stage now, but that won’t go on forever. Some of our new workers are fresh out of college; others have families and extensive job experience. Their interests and needs are different. We need to provide benefits and a work environment that will be attractive to all ages.
A final issue is making sure that as Google grows, communication procedures keep pace with our increasing scale. The Friday meetings are great for the Mountain View team, but Google is now a global organization.
We have focused on managing creativity and innovation, but that’s not the only thing that matters at Google. We also have to manage day-to-day operations, and it’s not an easy task. We are building technology infrastructure that is dramatically larger, more complex and more demanding than anything that has been built in history. Those who plan, implement and maintain these systems, which are growing to meet a constantly rising set of demands, have to have strong incentives, too. At Google, operations are not just an afterthought: they are critical to the company’s success, and we want to have just as much effort and creativity in this domain as in new product development.
Schmidt is CEO of Google. Varian is a Berkeley professor and consultant with Google.
Quick Link Ubuntu
All about Linux: 10 Things that make Ubuntu a Neophyte’s Distribution is a quick article about some of the things that make Ubuntu easy to use. Most of these things are already available on KDE centric distrobutions but the list is useful from a reference standpoint.
Speed Up
This post pointed me to a tool that I have always wanted without ever knowing it. ccache is a C/C++ compiler cache. It is used to produce code from already compiled sources that have not changed. Its particularly useful for package building environments where package directives change often but the source code doesn’t.
Loads of Links: CVS
I have been doing an overhaul of our CVS tools infrastructure and in the process added some very nice NEW functionality. Here are some links to a couple of the more interesting tools for CVS tracking, management, review, and statistics.
- ViewCVS– The standard in CVS web viewing. Supports diff viewing, visual history layouts, Bugzilla support, and color code previews. Its only real downside is that its a python application. Version 2 will be out any-time-now.
- CVS Web– The original cvs online code viewer. CVSView was originally a python port of this Perl application. Visually it is more flexible (by default) than viewcvs 1.x series.
- Bonsai-Mozilla foundation CVS code viewer. They have not released a packaged version as of yet.
- Cvstat-Perl script that generates some general statistics about a given CVS project. Its biggest weakness is that is can only be run against a given project and now the entire CVS repository.
- CVS Monitor– One damn fine project tracking and project monitoring tool. Includes graphs of file and line activity, web administration, and change-set tracking.
- Codestriker– Code auditing and review tool. Allows reviews to make line by line comments of projects directly against CVS. Sub-projects can be created to review specific feature proposals. Includes file viewing (via viewcvs or webcvs), color code (via LXR), diff creation, package/file download access, life-cycle management tools, and integrated support for Bugzilla.
- Bloof-Java based CVS metric tool. Provides interface for analytical processing of version control data. Its capable of providing an amazing number of reports based on hundreds of criteria.
Quick Tip: CVS
Via this link, I found a VERY useful command that I was not aware of for CVS. Basically it creates a distribution ready package from a given CVS tag (i.e. removes the CVS directories, attic files, and file changes betwen current and the tag.)
user@localhost$ cvs export -r foo-1_0 -d foo-1.0 foo
user@localhost$ tar czf foo-1.0.tar.gz foo-1.0
The first command is the interesting one (the second command simply makes your tar.gz package.) The command is run after you have correctly done a cvs login.
No Title Today
I have not been in the mood to blog lately. I am not entirely sure why, but it may have something to do with just being burnt out. In spite of how I feel I must get these links up. That said, I have been scanning news feeds for articles about Linux authentication mechanisms. Linux (via PAM) has the uncanny ability to authenticate to everything from a Windows AD network to SSL shared keys. I am fairly sure it would even be possible to get PAM to use the current state of my toaster oven to validate a user. Of greatest interest to me is, getting Linux to use use LDAP for network authentication. As such we have todays links.
- Basic Linux LDAP authentication– Getting a client setup to use LDAP.
- Advanced LDAP Authentication– More of the above but with encryption and management.
- SMB Browsing with KDE-Tutorial on getting KDE to use SMB and browse an SMB network… ala “Network Neighborhood.”
Hopefully I will be back to my full blogging glory after this weekend. Lots has been happening in the world, in my life, and in my home; but until I get out of this slump my body just keeps saying “NO blogging today!”
I Do What?
So you have recently been described (or maybe reclassified) as a Software Architect. So exactly what does that mean? This question is asked often enough by re-christened software engineers that you can actually find wikipedia entries on it. Well, thankfully, informait.com Do?” href=”http://www.informit.com/articles/article.asp?p=417090&rl=1″>has the answer. Besides of fun of design (obviously boring part of the job) you also get to write a whole new class of reports… and meetings!
Super Suse
Yesterday, Open Suse released Suse Linux 10. The upgrade has been painless for me and adds a significant number of improvements over 9.3. With community support for Open Suse, things are even getting better. The default Suse 10 install is Free Software only; but this overview will get you everything you need to complete your Suse install (i.e. commercial applications line Adobe Acrobat, Real Player, Java, Windows Media Codexes, and Flash.) So far its been a really nice ride.
AJAX Development
With the success of maps.google.com intrest has begun to grow in Ajax programming. Functionally AJAX programming JavaScript, DHTML, and XML to “communicate” between a web browser and a server without the need to refresh the screen (actually AJAX is about a great deal more than that, but this is the part that everyone seems interested in.)
To get a good intoduction into AJAX I have found a couple simple tutorials. Using AJAX is a basic tutorial (with examples) for getting web developers familiar with using and developing AJAX. Guide to Using XMLHttpRequest is a baby steps approach to setting up the communications interface between JavaScript and your application server. Finally, be sure to check out Dojo Toolkit, probably the most mature AJAX based API currently available. It dramatically simplifies the process of developing AJAX applications.