1. Solid technical work first. Solid technical work foremost.
Solid technical ideas, practical techniques that can be prototyped, rigorous experimentation serve as the bedrock of all that we do. Glitter and tall talk cannot cover a hole in any one of these. In the end, good ideas will win the battle for brains and minds.
2. We do one or two things really really well.
Rather than a bunch of ideas, moderately well. We want to do things as best as we can and so that the world and we ourselves can respect the contributions that we make. This is so much better than dabbling in too many ideas. We know we can build dependable systems through software and we focus on doing that as best as anyone else in the world.
3. We cooperate with one another and share credit generously.
We know the best ideas are challenging to bring to fruit and they need heavy lifting by multiple people. So we cooperate with colleagues in academia and in industry and we generously share the laurels that come for our work. Likewise, we are not afraid to admit when we are wrong and we work to make sure we are wrong less and less often.
4. We are not bounded by rigid disciplinary boundaries.
We collaborate with people from different disciplines, without waiting to or needing to quibble about what is Computer Science or Computer Engineering. For example, computational biology is a vast promising frontier for our work and we sit down with biologists and geneticists to try to understand the computational challenges. What comes with the territory is the need to listen well and learn fast.
5. Don’t just speculate — do it, prove it works or does not work.
We are not arm chair Computer Scientists or Computer Engineers. We learn by doing things – building prototypes, building simulation models, and then by testing them. Words – on Word, Powerpoint, etc. are cheap. Doing it is the best way to show there is steel behind the words.
6. We let wild and seemingly crazy ideas take flight.
We believe in the power of ideas, even if they may seem wild and crazy now. Idea for a free online email, idea for sequencing the genome, and idea for a computer in the palm of your hand were all wild and crazy when they were first hatched. However, as we launch into these ideas, we keep our feet planted by asking ourselves the question: What can be done within a reasonable time frame? What pieces of supporting technology do we need for our idea?
7. Fast prototyping is better than a slow marinade of an idea.
Build it, let it in the hands of testers, and then users, and see if the idea translates into practice. We do not let a yearning for perfection get in the way of getting things done. This motto is a driving principle in leading, adventurous software companies. We see that even in our academic world, this is incredibly powerful.
8. We are not in the paper business, we are in the finding answers business.
Paper publishing is an important part of what we do. But it is not the goal of our work, it is one of several manifestations of quality work. We aim for the top conferences when we publish, but our main goal is finding answers to challenging technical problems. Some of our results are negative results of the form that some idea does not work well in practice because of one of myriad reasons that are not obvious at the outset. Such negative results typically do not lead to publications, but they are well worth the effort. In the end, the road to finding answers has some necessary, and sometime picturesque, detours.
9. We don’t need to be chained to our desks to find answers.
We do not need to punch in a time clock and be at our desks, or our labs, to get to these answers. We work from where we like (having a high speed internet connection is desirable, having some internet connection is useful), and when we like. We do not have to put artificial constraints of time and space to our ideas taking flight toward the solutions.
10. The world is full of wonderful questions that need answering.
We cannot imagine getting enervated with our field of Computer Science and Engineering. The world is full of such wonderful, and relevant, questions that need our expertise. We have the potential to make a difference with answers to such questions. We do not feel the walls closing in on opportunities in our field. In complete contrast, we see vast unexplored and explorable areas. Just imagine how much difference we can make to making more reliable larger and more complex systems, systems that will pervade our daily lives, systems that will improve the human condition by letting us lead longer and fuller lives. There are algorithms and computer systems needed for all of these.