Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. What if working as a freelancer needs you to hand out personal copyrighted dlls?

What if working as a freelancer needs you to hand out personal copyrighted dlls?

Scheduled Pinned Locked Moved The Lounge
question
54 Posts 10 Posters 3 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Roy from Detroit

    In any company I have ever been, if a contractor did a great job but based it upon their own .DLL and refused to give us the source (or worse, tried to charge more money for it when the project was done), the company would refuse to pay the contractor and go out of their way to damage the contractor's reputation (or worse). For all the company knows, you deliberately put some of the work you did for them in your .DLL, and now you are trying to "hold code they paid for hostage". Even if the company trusted you and used your .DLL, that is part of the company's product which they cannot debug. If you are not a vendor of 3rd party components and not selling a complete binaries-only software product, I do not think you can compare yourself to Microsoft or other software vendor. Companies which sell components or turnkey software products have multiple programmers, testing specialists, support staff, a hotline, etc. What happens if you get hit by a truck tomorrow? The company is stuck with a mystery .DLL and a prayer that it will work forever. Yes, the company was foolish for not having you sign a document saying they owned all source code, but as a freelancer, you rely upon a good reputation and the company can seriously damage it with little effort. If I were you, I would: 1. Apologize profusely for the way you have been acting, say you are under stress, have problems at home, whatever it takes. People are used to programmers being...different, they may be understanding. 2. Do whatever it takes to make the customer happy. Do not demand more money. Perhaps make a version of your DLL which only has the parts they need with the source. If you make them happy enough, perhaps they will offer more money or future work, but you will not know if you slam the door on your customer. I am sorry. This may cost you time, but you learned to disclose your plans about using your .DLL earlier. I am sure many customers would be OK with it (especially if it saves them money), as long as you give them a choice. For what it is worth, that's my opinion.

    J Offline
    J Offline
    Jimmi Galagher
    wrote on last edited by
    #45

    Thank you for your replay Roy. Most of what you say is quite right but I guess along all the replies -it's somewhere there...- the fact that my client did not payed what agreed makes things a bit different. As I said in the beginning this is not a contract, but more of a gentlement's agreement work. The part where I disagree with you totally is where you say "Do whatever it takes to make the customer happy". We are obligated to do what we are payed for and in good faith I always do more. When the client does not pay you what agreed then the agreement fails. It is terrible to act on fear and lose what you have rightfully earned. I do not want to work anymore with that person for that and a lot more reasons. I would only give a portion of the dlls rewritten which would need time and it costs hence I requested a small amount of money for that. I have nothing to apologize from my side. There are allways bad customers who would try to create bad reputation even if all you did was excelent and even if you worked for free...

    R 1 Reply Last reply
    0
    • J Jimmi Galagher

      Thank you for your replay Roy. Most of what you say is quite right but I guess along all the replies -it's somewhere there...- the fact that my client did not payed what agreed makes things a bit different. As I said in the beginning this is not a contract, but more of a gentlement's agreement work. The part where I disagree with you totally is where you say "Do whatever it takes to make the customer happy". We are obligated to do what we are payed for and in good faith I always do more. When the client does not pay you what agreed then the agreement fails. It is terrible to act on fear and lose what you have rightfully earned. I do not want to work anymore with that person for that and a lot more reasons. I would only give a portion of the dlls rewritten which would need time and it costs hence I requested a small amount of money for that. I have nothing to apologize from my side. There are allways bad customers who would try to create bad reputation even if all you did was excelent and even if you worked for free...

      R Offline
      R Offline
      Roy from Detroit
      wrote on last edited by
      #46

      In my experience, companies which treat people badly get what they deserve. Only the worst employees will work for them and they go out of business. I understand where you are coming from. On two occasions, I refused to work with customers who treated myself or my coworkers badly. Those decisions cost money, but everyone was happier to just have the bad customer gone, so I have no regrets. I think this thread shows you are doing all you can to carefully consider your options, which is good. I think the state of the economy is making me especially reluctant to suggest turning away work. It does not matter who is at fault, if you have to throw empty apologies at a customer to feed your family, then that is what you do. Words cost nothing and some customers just want to hear someone say they are right. You have not been fully paid, but they do not have everything they want either. If you can work out a simple trade to give what they want for a small amount of your time, it might be worth considering. If it is a large amount of your time or you do not trust them to pay you anyway, then you might want to just walk away. I wish you the best.

      J 1 Reply Last reply
      0
      • R Roy from Detroit

        In my experience, companies which treat people badly get what they deserve. Only the worst employees will work for them and they go out of business. I understand where you are coming from. On two occasions, I refused to work with customers who treated myself or my coworkers badly. Those decisions cost money, but everyone was happier to just have the bad customer gone, so I have no regrets. I think this thread shows you are doing all you can to carefully consider your options, which is good. I think the state of the economy is making me especially reluctant to suggest turning away work. It does not matter who is at fault, if you have to throw empty apologies at a customer to feed your family, then that is what you do. Words cost nothing and some customers just want to hear someone say they are right. You have not been fully paid, but they do not have everything they want either. If you can work out a simple trade to give what they want for a small amount of your time, it might be worth considering. If it is a large amount of your time or you do not trust them to pay you anyway, then you might want to just walk away. I wish you the best.

        J Offline
        J Offline
        Jimmi Galagher
        wrote on last edited by
        #47

        No matter how bad the economy is, it should never be a leverage for the bad employer. And this is the case more and more often nowadays. Like you said, eventhough I am very frustrated and annoyed with all, I created the thread in order to see all opinions, there were some useless, some preocupied and some good as yours, even though I can not persuade my self to agree with you totaly..:) It is a very sad true that sometimes it is needed to just play along for the sake of living. I have too much pride for that to play along this time. Pride costs, I know. I would mostly give away the source along with a compromising letter for the sake of my reputation. I know from experience how awfull it can for future emploers to hear bad things for you "eventhough the coding was excellent", just because you didn't do the clown and did not lower your head in all cases. I do not trust them to work again and being with them for some time I have realized they wont exist for more, unless they become professionals, which I don't see it happen in their lifetime...But I can not forsee the future and that is always a possibility in which our paths may come across again. I think your opinion was quite enlightening and had clean and stable arguments. Add the fact that my wife holds the same opinion...I see myself bending towards it. Thank you for your response.

        1 Reply Last reply
        0
        • J Jimmi Galagher

          Let's say you are working as a freelancer and along with the executables you hand out, in the end of your cooperation the source is asked by the client. Within the source though lie some dlls of your personal framework and the client insists on you giving it also. My response was to pay extra for all, about the 2/5s of the overall price, as most companies selling components do to hand out the source code. In any way I would not hand out the source to my framework, rather rewrite using only necessary classes and methods. What's your opinion?

          J Offline
          J Offline
          Joe Woodbury
          wrote on last edited by
          #48

          Do you really think your "personal code" is all that valuable? If it is, package it and sell it, if not, plaster a public domain license on it, give it to the client and stop worrying about.

          J A 2 Replies Last reply
          0
          • J Joe Woodbury

            Do you really think your "personal code" is all that valuable? If it is, package it and sell it, if not, plaster a public domain license on it, give it to the client and stop worrying about.

            J Offline
            J Offline
            Jimmi Galagher
            wrote on last edited by
            #49

            ...

            1 Reply Last reply
            0
            • A Albert Holguin

              I see that you're just trying to justify your actions... when you use mscorelib.dll, you know up-front that you don't have access to the source. Did you tell them up-front? That's what I explained earlier to you.

              D Offline
              D Offline
              destynova
              wrote on last edited by
              #50

              Albert Holguin wrote:

              I see that you're just trying to justify your actions... when you use mscorelib.dll, you know up-front that you don't have access to the source. Did you tell them up-front? That's what I explained earlier to you.

              People compile using third-party libraries all the time. If you're using an open-source compiler - i.e. GCC - and runtime library then fine. But are you suggesting that if you're using Visual Studio to compile something, you have to mention up-front in your contract that you can't provide the source code for the individual Microsoft runtime DLLs? What if you write a web application for a web server which was linked against a DLL whose source you don't have access to? How can you know, before you even start the project, exactly what parts of the execution hierarchy you will and will not have the source code for? Or do you write some kind of generic catch-all clause in your contract? Or perhaps you'd liaise with the stakeholders and say "we're going to use IIS to host the program. We don't have the source code for IIS"? I don't know. It seems like one of those sliding scale things. If the library in question holds some essential business logic central to the application, then perhaps it should be discussed earlier, at least if there is a contract and it asserts that the source code is required. On the other hand, if the library is totally incidental to and separable from the program logic - like the Qt library or RICHEDxx.DLL, then that's a different story. Recently I was bitten by the same problem - working for several months with no contract; just a useless verbal agreement. It didn't work out very well for either of us...

              A 1 Reply Last reply
              0
              • D destynova

                Albert Holguin wrote:

                I see that you're just trying to justify your actions... when you use mscorelib.dll, you know up-front that you don't have access to the source. Did you tell them up-front? That's what I explained earlier to you.

                People compile using third-party libraries all the time. If you're using an open-source compiler - i.e. GCC - and runtime library then fine. But are you suggesting that if you're using Visual Studio to compile something, you have to mention up-front in your contract that you can't provide the source code for the individual Microsoft runtime DLLs? What if you write a web application for a web server which was linked against a DLL whose source you don't have access to? How can you know, before you even start the project, exactly what parts of the execution hierarchy you will and will not have the source code for? Or do you write some kind of generic catch-all clause in your contract? Or perhaps you'd liaise with the stakeholders and say "we're going to use IIS to host the program. We don't have the source code for IIS"? I don't know. It seems like one of those sliding scale things. If the library in question holds some essential business logic central to the application, then perhaps it should be discussed earlier, at least if there is a contract and it asserts that the source code is required. On the other hand, if the library is totally incidental to and separable from the program logic - like the Qt library or RICHEDxx.DLL, then that's a different story. Recently I was bitten by the same problem - working for several months with no contract; just a useless verbal agreement. It didn't work out very well for either of us...

                A Offline
                A Offline
                Albert Holguin
                wrote on last edited by
                #51

                destynova wrote:

                But are you suggesting that if you're using Visual Studio to compile something, you have to mention up-front in your contract that you can't provide the source code for the individual Microsoft runtime DLLs?

                The runtime DLLs are provided with Windows (or by Microsoft under their terms), they're not something you have to provide.

                destynova wrote:

                How can you know, before you even start the project

                That's your job as a professional developer. If you can't tell that to some accuracy up-front, you shouldn't sell yourself as an experienced developer. What I'm saying is, it doesn't sound like the OP was up-front with their use of a personal library with their customer. Whenever you use someone else's code in your project, you always know the terms up-front. To turn around after all is said and done and say... "no, I can't give you that code, it's part of my personal library", is just dishonest. As a contracting developer, you shouldn't use code you're not willing to turn over.

                D 1 Reply Last reply
                0
                • J Joe Woodbury

                  Do you really think your "personal code" is all that valuable? If it is, package it and sell it, if not, plaster a public domain license on it, give it to the client and stop worrying about.

                  A Offline
                  A Offline
                  Albert Holguin
                  wrote on last edited by
                  #52

                  :laugh: Although it might sound a bit brash... this statement is actually pretty accurate. It's not the code that's valuable, it's whether you know what to do with it to make something useful.

                  1 Reply Last reply
                  0
                  • A Albert Holguin

                    destynova wrote:

                    But are you suggesting that if you're using Visual Studio to compile something, you have to mention up-front in your contract that you can't provide the source code for the individual Microsoft runtime DLLs?

                    The runtime DLLs are provided with Windows (or by Microsoft under their terms), they're not something you have to provide.

                    destynova wrote:

                    How can you know, before you even start the project

                    That's your job as a professional developer. If you can't tell that to some accuracy up-front, you shouldn't sell yourself as an experienced developer. What I'm saying is, it doesn't sound like the OP was up-front with their use of a personal library with their customer. Whenever you use someone else's code in your project, you always know the terms up-front. To turn around after all is said and done and say... "no, I can't give you that code, it's part of my personal library", is just dishonest. As a contracting developer, you shouldn't use code you're not willing to turn over.

                    D Offline
                    D Offline
                    destynova
                    wrote on last edited by
                    #53

                    Albert Holguin wrote:

                    The runtime DLLs are provided with Windows (or by Microsoft under their terms), they're not something you have to provide.

                    Yes, but they don't provide the source code. But as I said, it depends on how central the library is to the task your program solves. You could argue that the runtime libraries providing GUI/networking/etc functionality are to some extent irrelevant and replaceable. On the other hand, of course, the entire business logic of the program could be encapsulated in the library, and the "main" program might just be a wrapper which calls a single function in the library DLL - in which case that library's source code would be entirely necessary to do any maintenance. So it depends on what the OP's library did, and how central that was to the program in general. Without knowing that, it seems presumptious to make assumptions about whether it was right or wrong to withhold the source code (if the other party had fulfilled their end regarding payment, of course).

                    A 1 Reply Last reply
                    0
                    • D destynova

                      Albert Holguin wrote:

                      The runtime DLLs are provided with Windows (or by Microsoft under their terms), they're not something you have to provide.

                      Yes, but they don't provide the source code. But as I said, it depends on how central the library is to the task your program solves. You could argue that the runtime libraries providing GUI/networking/etc functionality are to some extent irrelevant and replaceable. On the other hand, of course, the entire business logic of the program could be encapsulated in the library, and the "main" program might just be a wrapper which calls a single function in the library DLL - in which case that library's source code would be entirely necessary to do any maintenance. So it depends on what the OP's library did, and how central that was to the program in general. Without knowing that, it seems presumptious to make assumptions about whether it was right or wrong to withhold the source code (if the other party had fulfilled their end regarding payment, of course).

                      A Offline
                      A Offline
                      Albert Holguin
                      wrote on last edited by
                      #54

                      destynova wrote:

                      Yes, but they don't provide the source code.

                      Not for the windows DLLs... but for a lot of open source libraries, you do get the source code. Heck, even for MFC you get the source (even if it might be cryptic). Again, comparing yourself to a large company is really not a fair comparison at all, specially to a customer who paid for development. In any case, as a project manager (and engineer/developer), I could tell you that wouldn't fly in my company. Having a contractor say he used his own library and can't provide the code for certain sections would be unacceptable.

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups