The problem usually is getting clear specs out to the outsourcer. I'd say
you can do it if the project is really "de-coupled" from other code you are
working on. Personally I outsourced some pretty complex development once to
Sergei Gusev (gu...@saintmail.net) and was very satisfied.
Olivier
We are a small but growing company having new Delphi projects to be build
immediately, as well an existing Delphi project which needs improvements.
Since we want to have all done ASAP we think of outsourcing some of them to
consulting firms.
I would like to get your opinion on the pros/cons outsourcing & recommended
outsourcing consulting firms.
TIA,
Simon Braver
Rene
--
Ing.Buero R.Tschaggelar - http://www.ibrtses.com
Asking a question like this here is liking asking Bill Gates whether he
thinks Microsoft products are worth buying. Most of the folks here are
consultants anxiously seeking work. Most will tell you outsourcing is a
great idea and then probably offer you their services.
Amos
"Simon Braver" <sim...@adspays.com> wrote in message
news:3c6feddd_1@dnews...
> We are a small but growing company having new Delphi projects to be build
> immediately, as well an existing Delphi project which needs improvements.
> Since we want to have all done ASAP we think of outsourcing some of them
to
> consulting firms.
I am currently working with Deepak Shenoy (www.agnisoft.com) on a project
for a customer of mine that had similar requirements. So far so very good.
--
System Architect
Borland Certified Consultant
-----
http://www.msdelphi.com (home of the DSOAP Toolkit 2.0)
al...@msdelphi.com (primary)
king...@hotmail.com (if you have troubles with the others)
[Note: I work for a company that is an outsourcing firm, so my view might be
biased]
I believe outsourcing requires a lot of effort from both parties. It's not
something that's very easy to do: you cannot just say "I'll outsource this"
and start up. Some of the issues you might need to look at are:
- NDA, Contract and Non-Compete agreements. You want to make sure all this
is in place right up at the beginning. Usually outsourcing companies will
have boiler plate documents in case you need it going asap.
- Assessing Talent: You will need someone with the best skills, and
sometimes one company is good for one thing, and another company for
another. Usually outsourcing companies will do a small "pilot" project for
no charge (or at a lesser rate). This helps build confidence about skill
sets, and quite importantly also helps the company who's outsourcing the
work see the work involved at their end - like setting up FTP sites (to
retain control over the binaries/source), communication, code management and
basic change control. It is good to have the company do something that you
want done - either a component or a tool - so you can assess its value, the
time it took, the effort from your end, and how smooth the communication was
between you and the outsourcing company.
- Communication : The Internet has changed the way we communicate, and you
can use this to your advantage. Phone, Fax and Email are primary tools, but
you can also consider using secondary tools like Netmeeting, ICQ/Yahoo/MSN,
BuddyPhone (www.buddyphone2.com) and such tools to build sustained
communication. Time zones are an issue if you are outsourcing to places far
away: it could work against you unless you work out a time when you know
there would be synchronous communication from both parties.
- Language issues: Usually this isn't a problem if you're outsourcing within
your own country. But sometimes things as small as an accent, a
"terminology" specific to your business or a metaphor could turn out very
expensive later. It helps to write down very clear specifications and it's
important to note that this adds a lot of time and effort at your end also,
either on the end of evaluating such specs or having to write them.
- Some of the important but easy-to-ignore stuff: Effective email
communication (how to say something without leaving any doubt on the mind of
the reader, because it wastes time) , FTP and HTTP servers, SCC servers
(Starteam, VSS etc), code reviews, constant mails (always mail everyday,
even if its just a one word thing that says "what's up?") and a bug
report/time log report format and policy (like coding standards, components
etc.)
- Very important (as I've learnt) is the necessity to have a clear Testing
Policy and plan, and to establish appropriate milestones in every project
where you can get a working piece of the puzzle. At each such milestone you
will need to test the milestone and see if this is really what you need.
This might require that you allocate some resources to accepting such
intermediate (and final) milestones. Demand from the outsourcing company
that they will actively support the product through (and perhaps a period
after) maintenance.
- Long term committments: It might seem totally unnecessary but it really
helps if both the "outsourcer" and "outsourcee" see the long term business
value in what they do. In a project situation it's important for a developer
to know how his/her work will be used, in what context, and why. This can
significantly improve the quality because then one has the whole picture.
Also it's important to see which direction both companies are headed because
that gives room for additional synergy (okay, that may be a PHB term).
- Things in the software development world change very often and because of
this specs do too - such changes in requirements, validation etc. affect an
outsourced project more because of the "why" and "how much" that needs to be
communicated. Changes need to be managed and the policy also needs to be
agreed early. Post mortems and change management won't go away :)
Outsourcing has it's pro's - it's part of the "do what you do best,
outsource the rest" strategy many companies follow (or are attempting to
follow). The cost advantage could be big if managed right, and you can get
more work done without as much of an investment in infrastructure and staff.
There is also the advantage of being able to define more performance
metrics.
The cons, in my opinion, are largely what I've described above - given that
all those barriers exist, it takes a time, effort and money to overcome
them. Some of the issues require constant effort from the part of the
company outsourcing the work, and it's not usually as simple as say
outsourcing payroll or accounting.
Please feel free to mail me (she...@agnisoft.com) your comments...
--
Deepak Shenoy
Agni Software
http://www.agnisoft.com
> [Note: I work for a company that is an outsourcing firm, so my view might
be biased]
Well, a "thank you" for promoting (see my post) wouldn't have hurt <G>
Hey a VERY BIG THANK YOU!!! I was going to send that by private mail :)
Cheers,
--
Robert
Alessandro Federici wrote in message <3c70c597$1_1@dnews>...
I guess I am unusual among the denizens of this newsgroup in that I am a
full-time employee and not a consultant. My experience from this side of the
fence is that consultants are a rather expensive alternative, and I don't
just mean financial costs. Often a poor job is done conveying the business
rules from the employees among which they are dispersed to the consultants
who are totally unfamiliar with the firm. If you add another layer of
indirection by having those consultants outsource to other consultants then
you are just asking for trouble. Unforturnately, many firms can't afford the
full-time employees to do the job themselves either.
Tom Masterson
"John Jacobson" <johnjac@[nospam]xnet.com> wrote in message
news:3c71337f$1_2@dnews...
I think outsourcing is often *more* successful precisely because it becomes
so much more obvious that effort needs to be made to fully identify and
develop the requirements, and more effort is put into setting milestones in
order to keep tabs on the consultants. If the same care were common when
dealing with internal software departments, there'd be a whole lot less
failures and wasted time and money.
> If you add another layer of
> indirection by having those consultants outsource to other consultants
then
> you are just asking for trouble.
If there is any doubt of the primary consultant's ability to deliver, than
that's a guaranteed disaster. If the primary consultant has done a good job
working with the customer to elicit the requirements and made the effort to
understand the business, then it's rarely a problem. From a contract point
of view it's important that the customer does not *recognize* anyone but the
primary contractor - i.e. the primary contractor legally assumes 100%
responsibility for fulfilling the contract regardless of whether he
subcontracts any portions.
--
Wayne Niddery (Logic Fundamentals, Inc.)
RADBooks: http://www.logicfundamentals.com/RADBooks/delphibooks.html
In a tornado, even turkeys can fly. - unknown
If you have a very good in-house process, you can easily integrate outsourced
development / consultants, etc. If you have a poor in-house process, you're
screwed either way.
My employer recently decided not to outsource, for now. In this case, they
were proposing booting an existing IT staff. So you can believe we researched
this, although we focused on why it would be bad, of course <g>.
Outsourcing can get you access to highly qualified people, who have training
in the niche you need, without requiring you to constantly train your own
people. It can also free you from lots of administrative headaches,
especially HR stuff like benefits, etc. However, you still want to be able to
retain some control, like approving vacations, or specifying vacation blackout
days (sure, have fun on your vacation that starts two days before application
release, and ends two weeks later...).
The one thing outsourcing cannot get you is an understanding of your
organization and your customers. That understanding is usually only developed
over time, through experience, and frequently is never picked up by some
people. If you are already skilled at communicating to new employees those
kind of business relationships, then you're probably equally likely to be
successful either way.
It boils down to how much control you want to have, and how much time you want
to spend in administrative trivia (or where you want to spend that trivia
time). If you have an HR person, if you decide to outsource you shift the
burden from HR to yourself, for contract administration, special circumstances
negotiation, etc.
You don't specify whether you want local outsourcing, if you care about
overseas development, etc. You probably need to be more specific as to
exactly what level of outsourcing and what kind of company you're willing to
accept.
--
-Brion
Team JEDI, 2001 Spirit of Delphi Award Winners
http://www.delphi-jedi.org
Fresno Area Delphi Users Group
http://groups.yahoo.com/group/FresnoDelphi