1. What type of organization do you represent?
Rationale: I may give discounts for individual or non-profit work, or charge more for industries
where additional constraints on technologies and designs are likely to apply.
2. What type of software development is required?
Rationale: Development of simple software is cheaper, because it involves fewer headaches and requires fewer skills. Complex
applications and scientific software tends to take more effort, requires more skilled developers, and entails higher risks.
3. What primary development language will be used?
Rationale: Certain programming languages require more skill and more experience than
others. Note that some languages are not well suited to certain purposes. For example, C, C++, and assembly
languages are not normally used in web development, but may be required for math-intensive software where
processing speed is key.
4. What platforms will be targeted?
Rationale: The implications of the answer to this question depend on the previous question's
answer. Certain platforms with certain languages may entail additional development difficulties. Development
for multiple platforms may be especially difficult, depending on the development language.
5. What is the project time frame?
Rationale: Larger, longer projects require a higher level of commitment on my part, and also entail
higher risks. I thus charge slightly less for smaller projects.
6. What is your location?
Rationale: I live and grew up in the Seattle area, so it is more convenient for me to work for companies near
Seattle. Since I spend a great deal of time in China, it is also convenient for me to work for companies in East Asia.
7. How much time must I actually spend working on site as opposed to from my own office?
Rationale: I'd rather work from my own office and commute/travel as little as possible.
Commuting wastes my time and energy. Fortunately with email, phone, and teleconferencing, there should be little
real need for on site work with most projects.
8. Will I be allowed to subcontract parts of the project to other developers?
Rationale: Oftentimes only a small part of a project will require a highly skilled developer,
and other parts can be written by less experienced developers. I would still carefully
inspect and be responsible for any code written by these other developers.