Why we exist
Why do we exist as a company instead of as individuals? Each of us
certainly should be good enough to make $1000/day or more as an
individual consultant. We have banded together so that
An ArsDigita-built site should be
- responsive to users
- easy to navigate
- a useful service
What control do we have over these items when we're building a site for
a customer? Mostly we have to exercise this control going in. We
should turn down simple advertising splash sites that don't perform some
useful service for the general public. We should also try to avoid
simple e-commerce sites unless they go far beyond the simple catalog
sales sites that we were building back in 1995. We should avoid
intranet sites unless it is something that will be of use to many
similar companies and we retain all rights to the source code and can
give it away. Otherwise, the intranet site will be visible to only a
handful of people and will not serve as an advertisement for ArsDigita.
These kinds of sites will increase our sales and marketing expenses
(currently very low because we've done so many high-profile public sites
whose excellence and complexity is apparent to potential customers).
Bottom line? If ten years from now you ask a user to name ten sites
that changed his or her idea of what the Internet can do, we should have
built three of them. If ten years from now you run into a programmer on
the street, half the time that person should say "I've learned a lot
from your [site, book, source code]."
We do not expect to grow to the size of the world's largest technology
companies, e.g., HP, IBM, Microsoft, Oracle. Yet we want to have a larger
positive impact on the world than any of these companies. The only way
that we can achieve this is by educating other people. Part of our
mission at ArsDigita must therefore be to
- educate people by building great sites; someone who has used the Q&A;
forum at http://photo.net/photo/
would probably end up building better discussion software even if he or
she never downloaded our source code. This is another argument in favor
of building high-volume sites. Vastly more people will experience
www.scorecard.org than will visit
the average ecommerce site.
- educate people by distributing knowledge and ideas in the form of
books, e.g., Philip and Alex's
Guide to Web Publishing should be merely the second of many
interesting book-length technical documents
- educate people by preparing courses that we can give face-to-face,
at MIT and Caltech and on the road; make the materials for these courses available
on the Web for free so that other people can use them to teach
face-to-face classes or learn on their own
- educate people by distributing open-source software that will help
them build whatever Web services they wish
- make our community toolkit ever more useful for
educationally-flavored communities (which is where it started after
all); this way our software will have a positive impact in educating
high school kids about science, Harvard and MIT students about various
subjects, people worldwide about photography, etc.
We don't have to be 100% altruistic. If a Fortune 500 company wants to
sponsor one of our classes and cover the costs, we take the money. But
we don't have to be 100% greedy either. If a girl in India wishes to
learn what we know, we don't charge her. We do a reasonable amount of
work to support her effort, e.g., by making sure that our public Web
material is current and complete.
Our first principle is that we do not lie to customers. If a service
goes down because of something we did wrong and should have known not to
do, we tell the customer exactly what we did wrong in as clear language
as possible. Even if the customer might not know that this was a stupid
thing to do under Unix or Oracle, we explicitly tell them "this was a
stupid thing to do." If we slacked off and partied all weekend and
didn't finish some work that we promised, we admit it rather than
conjuring up mythical technical dragons to slay. We do not take
advantage of customer ignorance to hide our mistakes, a practice that is
depressingly widespread in our industry.
The above principle is non-negotiable and we must not ever get away from
it. If it means we sometimes have to eat a month's hosting fee (our
standard means of self-flagellation), I think that in the long run we
might actually save money from adhering to a strict no-lying policy.
For example, if we were to develop a broad set of corporate lies, we
wouldn't be able to let new hires talk on the phone with customers until
we had spent a few days training them in the official lies.
Beyond that, we don't worry about corporate culture. We have a certain
set of customers. We have a certain set of people. We have a certain
set of tools. Discussions or theories won't change any of those things.
If any ArsDigita member wants to change ArsDigita, he or she need only
add to the customers, add to the people, or add to the tools.
We do not skim money from each other. People should get paid according
to their contributions to projects and the company. Here are the
elements of a typical ArsDigita project:
- landing the contract
- hosting the site (requires buying hardware, negotiating and paying
for colocation space, negotiating and paying for RDBMS licenses and
- training any new programmers who've been brought into the company to
handle this project
- custom development and extensions to the toolkit
- managing the customer, e.g., helping the customer evaluate alternative
design and service ideas
- more senior ArsDigita members will do code review, pitch in when the
customer calls and the main developers are on vacation, help out when
the developers get stuck
- working the generically useful portions of the new software into the
- documentation, documentation, documentation, both for the customer
who paid for the project and to go out with the toolkit
All of these activities are compensable.
Goal for each Member
Each member of ArsDigita is eventually expected to become an
internationally famous Web developer capable of managing an entire
project from start to finish. That doesn't mean that each person needs
to acquire all the skills necessary for a site, but he or she has to
understand what skills are necessary and where to get them within
Obligations to other Members
We live or die by customer satisfaction. It is safe to assume that the
customers' priorities are (1) getting down services back up, and (2) getting
new services developed on time.
From these priorities, we can infer that the first and primary
obligation of an ArsDigita member is to preserve the reputation of
ArsDigita by pitching in
to get a down service back up. It doesn't matter
whether this is a service that Member X has worked on or whether it is
even our fault (e.g., it might be a hardware problem and the action that
Member X has to take is calling 1-800-USA-4SUN to get the Sun
Microsystems guys over).
The second obligation is to help other ArsDigita members look good on
development projects. So, for example, the senior nerds must help the
junior nerds tune their SQL and clean up a page by using an outer JOIN.