It really depends on the nature of the project. There are a lot of variables to consider.
If it''s something they expect to re-sell, then they are more likely to want to own the source, or at least own a chunk of the "intellectual property" the project represents. And in that case, you''re going to want to go through and designate "exceptions" to their ownership. This boils down to specifying which parts of the project (source, graphics, sound, etc) you own *now* and that you will not be giving up ownership of. And you should expect them to do the same. That way, everybody involved knows which parts are "yours, mine, and ours."
However, if it''s just an internal-use-only application, it could go either way. These type of programs typically have very little resale value because they are specifically tailored to one company. So "ownership" isn''t a big deal. They needed something done, you did it for them, and they paid you. End of story.
This is such a fuzzy area, with so many different issues to cover, that it''s impossible to give any definitive answer.
A lot depends on how much you''re bringing to the table.
In my case, I don''t come "alone"...if I''m doing a project in Delphi (which is about the only way I will do a project, but that''s beside the point), I come "armed" with a rather extensive collection of data structures, utility procedures and functions, and components that I''ve either developed myself or purchased the right to use (and probably modified).
And since I expect to keep all of that "core material", as well as any extensions to the core material that are made to support this project; and because I don''t expect to get permission to release the source code to third party components, I make a point of retaining all source code. I may agree to provide them a copy of the source code that is specific to their project, but they will probably not have everything necessary to build the project.
If the company wants me to sign a non-compete clause specifying that I won''t create a similar product, either for another company or for end-user sale, I may sign it...depends on the nature of the product. To me it''s just another negotiating point.
I do very little contract work, however. I consider myself an "independent developer" not an "independent contractor." So I''m in no way an authority on this...
Thanks for the advice!! The pice of software in question is a stupid tool band in IE5 so its no biggie. I really like the idea of being an independant... well anything! But I think that maybe I should get that magazine you spoke of, Independant Consultant or some such. Im tired of working for the big man.