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.
Back to Home Page