We recently had the occasion to hire a Linux consulting firm
for setting up a network and a whole range of Internet-enabled services for our
growing organization. I believe I can share my perspective on Linux consultants
and what we looked for.
We develop technological solutions used by Internet,
telecommunication, and consumer electronics applications. Hundreds of engineers,
support personnel, and administrators depend on the network facilities at
Encore, and hence we needed a setup that was not only stable and easy to manage,
but also comprehensive and highly adaptive.
We wanted all our services to be scalable as we add
workstations and servers to our network in future. We wanted all services to be
LDAP-enabled, because LDAP provides great support for roaming profiles and
single-account authentication. We wanted our e-mail server to be IMAP based. We
also wanted separate incoming and outgoing firewalls, virus-scanning of incoming
and outgoing mail, support for secure access for our mobile users via dial-in
and the Internet, a Virtual Private Network (VPN), file and print services,
internal and external HTTP, internal and external FTP, internal DNS, proxy and
caching, internal CVS repository services, Web-based management, etc.
A major deciding factor in the selection process was the fact
that while most workstations were Windows-based machines, we also have lots of
Sun workstations and non-PC devices. This kind of heterogeneous network needed
special considerations.
While I personally have been a Linux user for years, we
needed to be able to concentrate on our own core responsibilities and strengths,
while getting experts to set up our systems and services. Hence, we decided to
retain a consulting firm when we upgraded our network.
Choosing a Linux consultant
Choosing a Linux consultant is as difficult as choosing a
good medical consultant, an investment advisor, or an architectural consultant
for your house. It’s important to lay down certain parameters by which
you’ll evaluate a set of consultants for the kind of services you might need.
Domain knowledge and competence, track record, cost-effective delivery,
confidence, a cohesive team, and customizability are some of the obvious ones.
First of all, you have to conceptualize your requirements.
Prepare an overall "big picture". Set your expectations and goals, and
try to see if you can come up with a broad design that could meet your needs for
the foreseeable future. What services are the users within your organization
likely to require? What is your security and authentication policy?
This allows you to pin-point certain parameters. What are the
minimal services you would need? Why do you need a consultant? Could you get the
work done in-house? Who will manage the systems and networks in the long term?
Once you’ve laid down the basic criteria, you should ask a
few consultants to offer their proposals.
This will give rise to another set of questions, this time
regarding the consultant. Does the consultant have the special expertise that
you’re looking for? Does he have the relevant skills and experience in
handling multiple platforms, diverse network component technologies, and network
topologies? What is his track record in handling projects of the size that you
envision?
The first rule here is to judge the process by which your
potential consultants come up with their draft proposals. Does a consultant
insist on your first making a presentation of your requirements to his team? If
he does not, and merely goes by your document, politely show him the door. The
consultant and his team should exude confidence, but should have enough
patience, and make enough effort, to understand your needs. I would be wary of
the know-all, one-size-fits-all approach that one comes across quite often these
days. Customizability is the key here. The solution must be right for you. I’m
a bit wary of out-of-the-box services–largely because they require you to
adapt to them, rather than the other way round.
You might even come across a whiz kid who has the greatest
solution for all your needs. Unfortunately, he hasn’t asked for your needs.
Stay away from such a consultant. Networking services is a serious business.
Remember that it isn’t enough just to know Linux–a good consultant has
capabilities that go far beyond just one area of expertise.
Are you paranoid about security? You must be. Is the
potential consultant sufficiently paranoid about security? What are the tools
he’s suggesting? You need to be comfortable with the approach that’s
suggested. You need to evaluate the professionalism of the consultant. Does he
appear to know his job? Does he give you multiple options that achieve the same
objectives?
You must know your technical, time, and budgetary
constraints. Place checkpoints at various targets along the way, whereby you can
review the performance of your network and services as well as the deliverables
from your consultant. Decide whether you would prefer commercial, off-the-shelf
solutions, or whether you’d be comfortable with customizable solutions,
including the Open Source variety.
Decide if you have specific preferences or fads. For example,
which is your preferred OS? As my teenage daughter would put it, "one
system rocks while the one sucks". Decide which one rocks for you. I happen
to like the way Linux can work for me, and I consider it eminently stable,
scalable, predictable, and reliable for the needs of a server-class machine. It
gives me tremendous scope for customization of the range of services that I
need. It also provides a much higher level of performance than competing
solutions on identical hardware, and is available on a range of hardware
platforms. But if my consultant were to think that only Solaris or Win 2K can
deliver, then we’re likely to run into problems. At the other end, a
consultant who cannot work on Solaris or NT would also be a liability.
Finally, I must also mention here that while it’s possible
to evaluate consultants purely on technical and business parameters, it is
important to identify with a group in which each individual has a sense of humor
and a sense of enthusiasm in the task being performed. You have to deal with
them for extended periods of time. At the end of a very long 25-hour day, when
your services are being fine-tuned while your users are clamoring for
uninterrupted online access, be prepared for disasters and breaks in service. At
such times, you need people with the "can do" spirit. You need guys
who are hands-on and won’t choke at the complexity of the tasks at hand.
Shashank Garg
Software