Logo
Programming

 

Programming for Hire Explained...

Need for programming help

Many other sources may provide you with enough information to allow you to write many of your own programs. However, many situations require hiring an "outside" programmer. As you decide if you want to use the programming services offered by Ian Johnson, examine the approach and procedures explained below.

Program ownership

For any program written specifically for and paid for by you, you own the program's copyright. You then have the legal right to govern the program's use and sale. Not only would it be illegal for a programmer to write a program for you and then sell that same program to some else it is also unethical.

However, the above applies to the program as a whole; it does not apply to any algorithm, module or subroutine within the program. If a module is not unique to your project, then the programmer is free is reuse the module within other programs.

(Algorithms, modules, and subroutines are very small portions of a program which perform specific tasks. They might make certain calculations, provide for a specific input from the user, manipulate a file in a certain way, or do any other particular task. They are not complete programs in themselves; they work only as parts of a larger program.)

There is a good analogy to the above concept in the field of machine design. When a machine project is completed you own the machine patent and the rights to produce and sell it. However, the designer could have used any number of standard parts in that machine which can be used in other machines as well. You own the design (the entire machine), but the designer is free to include the same standard parts in another machine that he/she designs for someone else.

Project Scenario and Payment Schedule

The sequence of events for a typical, medium sized project are summarised in the table below. The programming agreement mentioned below in step 4 would include a description and deadline for each subsequent step. Naturally, this agreement needs to be tailored to each unique situation.

You (client)do this:

I (programmer)does this:

(1) Initial contact. Provide a general description of the needed program(s).

(2) Check project schedule, etc. Confirm possibility of doing project. Provide a "ballpark" estimate of the fee.

(3) Provide a detailed written description of program including all input and output.

(4) Compose a detailed programming agreement including actual project fee.

(5) Sign & return programming agreement. Provide complete set of specifications, drawings, etc. needed to do the programming.

(6) Program and debug a functional (but not final) version.

(7) Pay half of project fee.

(8) Deliver functional (but not final) version of program for testing (including draft of instructions and documentation).

(9) Test program. Provide written statement of bugs.

(10) Revise program to produce final version. Finish documentation (including instructions). Deliver finished project.

(11) Pay remainder of project fee.

 

Smaller programs might combine some of the above steps. Larger projects might involve additional steps, such as more cycles of testing and revising, instruction in the maintenance and use of the program, etc.

You can contact me at enquiry@ijcad.co.uk.