Contracting Services
I can design and implement solutions, from requirements to code.
Contracting services
will result in a product that will be delivered to the client.
The product could be a specification, a language design,
a domain analysis, a software architecture or design,
or a completed software system.
Estimating the cost of a complete software product is an
art based on past experience.
However there are well known factors that influence the
overall cost of software development that I will use
to give an estimate (either in hours or as a fixed price)
for creating a piece of software.
Based on these estimates, my services can be purchased
on either an hourly rate or fixed price.
Factors in the cost of software
- Functionality:
the set of features, both the quantity
of features, but also the interaction between features is the
major determinant of software cost
- Reliability:
robustness and ability of the software to handle error situations;
the level and quantity of
independent testing
- Performance:
time, space, bandwidth; increasing the efficiency
of a system will also increase the complexity and therefore cost
of software
- Flexibility:
software should be easily adaptable, maintainable,
and extensible to preserve its value in the long term
- Schedule:
software that must be developed quickly costs more
- Changing specifications:
once software development
has started, changing the specification is the largest
single factor that increases the cost of development
- Compatibility:
a requirement to be compatible with existing systems will
increase the cost of the software, particularly if the
existing systems are not well documented
- Portability:
platform independent software will cost more, even if it is being
done in Java, to insure that it will run properly
for a variety of Java virtual machines (this can be particularly
tricky if you wish applets to run on older browsers as well as
current browsers)
- Usability:
"usable" software will require more upfront investment
in requirements, prototyping, GUI design, and user testing to insure that
"real" customers will be able to use the software effectively
- Appearance:
graphics, audio, and good web page design will require
expertise from subcontractors
- Ownership:
in typical cases, ownership of the software
will be transferred to the client, however in some cases, it
may be desirable to share ownership or reuse existing software
owned by others. A discount will be given
to clients for shared ownership.
Also see my consulting services
and instruction services.