What I do
My specialty is computer systems development and implementation. This includes:
-
Systems analysis and design
-
Computer Programming
-
Preparation of systems and user documentation
-
Interfacing new peripheral equipment
-
Embedded systems development
-
One of a kind systems not addressed by off the shelf systems
-
Porting applications to new environments
How I Work
-
We'll start with some sort of description of the project.
- I'll review it and return with my written understanding of what is required and
how long I expect it to take. This is helpful for the following reasons:
-
It helps clarify any ambiguity.
-
Often I can see opportunities to make the job better, easier, faster, simpler etc.
by making small changes in the project design. For example, it's possible that such
a project description might contain a detailed design of some fancy control. I might
propose using some closely equivalent off the shelf component to shorten the task.
It could well be that such a compromise might be very attractive to you. So having
the design go back and forth is very helpful in getting the project done better,
faster, easier and on time.
-
It lets me break down the different aspects of the project in smaller tasks which
can become milestones. This list of tasks will generally correspond to the marketing
department's wish list. This list has the fundamental features at the top and moves
down through "nice to have" to "great ideas if we had nothing else to do" at the
bottom.
-
It permits me to give an estimate of the time required to meet the specified milestones.
I can then give you a cost estmate.
- Once we agree on the project design, scope and cost estimate, I can get started.
My normal approach is to:
-
always have something working - even if it's incomplete.
-
proceed down the task list. At each point I can deliver a new working version of
the project. Always working - hopefully bug free - but never complete.
-
you, your staff, and/or the marketing department can try out the application as
we go. It often occurs that during this testing the original task list changes.
When the application is used, it will become clear that some tasks on the original
list must move up or down in priority. By the same token, some new features will
have to be added.
-
As we proceed down the list - the tasks become harder to do and the features less
valuable. At some point it gets to the point where implementing the next feature
isn't worth the additional cost.
-
At this point we're "done".
-
At any time, you may transfer the responsability for the project. This may be convenient
so that smaller future changes ("program maintainence") can be done in house.
This approach has the following advantages:
-
Even though every project has some ambiguity, technical surprises, changes in plans
and priorities along the way, you can still have a fairly good idea what the project
is going to cost you and you're still in a position to control the costs as the
project progresses.
-
This approach recognizes the reality that software development is an iterative process
where progress on the technical end can influence design choices during the course
of development.
-
It can sometimes become apparent that the original design is flawed in some fundemental
manner. With iterative development, this will be detected as soon as possible and
permit the project to be abandoned with a minimum of wasted expenditure.
- This avoids certain problems with the traditional (discredited) approach sometimes
referred to as "waterfall". In this approach information goes only one way - from
the project description to the code. It suffers from the following problems.
-
It's not possible to write the project description that anticipates all the trade-offs,
opportunities, and difficulties which present themselves during coding. So it can't
be used as a realistic basis for predicting cost.
-
New information arises during development. Sometimes this is of a technical nature.
Other times, while testing the project, it becomes apparent that some features "required"
by the project description weren't a good idea but that other features are required
instead. This new information, had it been known at the time, would have been used
to make a better design. But now the project description is sort of frozen. In fact,
it might even be part of a legal contract. So the opportunity to make the project
better, simpler and more likely to be on time cannot be exploited without re-negotiation.
-
It discourages incremental development. There is a large disincentive to deliver
anything until it has all the features of the project description. So you don't
get any idea how things are progressing until - the project is way overdue.
-
You don't get any opportunity to participate in the "real" design decisions they
get made by the program interpreting the project description.
-
Once the project is "done" you have to re-negotiate changes, improvements, etc.
-
Cancelation of the project for any reason will result in complex negociation to
resolve pending work/billing.
Terms and Conditions
Professional time of Robert Ramey will be billed at an hourly rate quoted upon agreement
of the scope of the effort.
In addition, the client will reimburse all expenses.
Expenses include all out of pocket costs such as travel, telephone, printing
and copying, postage, user fees for on-line information retrieval, computer software
required to realize the clients project, publications, independent contractor assistance,
and similar items. Other costs such as mileage will be treated as expenses at rates
approximating local commercial charges.
Bills will be submitted bi-montly. Bills are due and payable when submitted
and are consider overdue in 15 days.
The client always has the right to terminate the assignment. In such a case
the client has no liability for charges beyond those incurred on their behalf through
the date when notice of termination is received.
It is understood that I and my contractors, if any, shall be in the relation
of independent contractors with the client, and nothing herein shall be construed
as designating us as employees or agents of the client for any purpose.
I agree to assign to the client all right, title and interest in copyrightable
or patentable material developed for and paid for by the client. This excludes programs
not developed and paid for by the client which may be incorporated at no charge
into work submitted to the client.
I will guard as confidential all information concerning the affairs of the client
that is gathered during the course of the assignment. I agree to hold such information
in strict confidence, and not to disclose it to others until such information is
released by the client.
I will not serve two or more competing clients in areas of vital interest without
first informing each client.
Qualifications
Before dedicating my time to computer systems consulting, I was owner of
a data processing service in Guayaquil, Ecuador. This was the largest business of
its type in the country. This enterprise was founded by me in the mid 1970's and
sold in 1985.
During those years I installed business information systems in hundreds of companies.
These systems were designed to solve the kinds of problems that every business has:
accounting, inventory, personal, customer service, etc. On occasion, I also did
consulting for local government such as control of traffic citations and records.
Since moving to Santa Barbara, I have dedicated my time to varied activities
such as computer programming and writing articles for computer journals.
References are available on request.
I hold a Master of Science degree in Operations Research and Finance from the University
of California, Berkeley as well as a Bachelors degree from the same institution.
For more information, see my
Professional Responsibility
The basic responsibility of every business consultant is to put the interests
of clients ahead of his own, and to serve them with integrity and competence.
I know that I am being hired for independent judgement and objectivity, technical
expertise, analytical skill and concentrated attention to the solution of a problem.
I will provide those skills. I will be impartial.
I will guard the confidentiality of all client information. I will not take
financial gain or any other kind of advantage based on inside information. I will
not serve two or more competing clients on sensitive problems without obtaining
the approval of each client to do so. We will inform the client of any circumstances
which might influence my judgement or objectivity.
Before accepting an assignment, I will confer with the client in sufficient
detail to understand the problem and the scope of study needed to solve it. Such
preliminary consultations are conducted confidentially, on terms agreed to by the
client.
I will accept only those assignments I am qualified to perform which will provide
real benefit to the client. But I cannot guarantee any specific results such as
the amount of cost reduction or profit increase. I present my qualifications on
the basis of competence and experience. I perform each assignment on an individualized
basis, and develop recommendations specifically for the practical solution of each
client problem.
I do not accept commissions or pay them to others for client referrals. Nor may
I accept fees or commisions from others for recommending equipment, supplies, or
services to his clients, as this would affect my impartiality.
Why Retain a Consultant
The only justification for any business decision is improvement in long term profits.
My expertise, efficiency, and objectivity guarentee that each and every project
undertaken on client behalf will yield results far in excess of the costs incurred.