I'm afraid I'm just a commentor, not a GA Researcher.
Your question interested me, so I added a comment, which enables me to
search for my ID and locate your post.
As it happens, I do have some knowledge of outsourcing software
development. Having been a programmer for quite some years, I've been
involved, in and observed such things in action.
Much depends on how much experience you already have.
One of the first points I would make is that you wish to make a clear
break between programming and analysis. This is not unusual, but in my
view a programmer who is not an analyst is a menace, while an analyst
who is not very familiar with programming is ... rather dangerous.
The problem with breaking the two functions apart is that one runs a
risk of programmers cynically 'writing to specification' so you get
exactly what you asked for, but not what you need.
In my experience as one starts working on a project, one sees
possibilities and wrinkles that were not obvious during the planning
stage. Often they relate to future requirements, but sometimes one
realizes that one is 'painting onself into a corner'.
Software production is not a 'production line' operation, it is closer
to providing highly specialized custom built machines for installation
in a factory.
Analysis is not easy, the analyst needs to understand the customer's
business better than the customer, he/she also needs to brutally
separate the client's 'wants' from their 'needs'.
Because clients seldom have much analytical ability, they tend to
complicate matters - in effect they want to replicate their existing
mess.
For example, once in a foreign bonded warehouse, I pointed at a stack
of containers containing high(ish) value goods and said: 'They are not
there, they are in Dubai'.
It took a little time, but eventually the client realized that what
appeared to be a complicated 'special case' was just a matter of
translating physical location to logical location.
I have numerous tales of projects that have gone badly wrong, and I
have cleaned up a fair number of messes in my time.
I strongly suggest that you are very cautious, supplying custom
software systems is a lot more risky than it appears on the surface.
In my opinion your best bet would be to locate a niche market and
produce a generic system that is highly configurable, so that you can
(in effect) sell the same software many times over. That situation can
be relatively profitable, it also means that become experts in that
specific area and the clients regard you as providing consultancy -
rather than hawking software.
It is also wise to rent software rather than sell it outright with a
'maintenance fee'. It reduces the up-front costs to the client and
makes it very difficult to come up with a financial case for
dislodging you.
Also it means that you can enhance the systems 'for free' as you
install new functionality paid for by another client, that goes down
well, and secures your flow of income. I know some very wealthy people
who used that model.
Going for tenders, especially Government ones, is a waste of time.
They take years to convert and you face competition from the 'big
boys' who can be rather unscrupulous. The sales costs are horrendous.
Best of Luck. |