Fog Creek Software
Discussion Board

Giving code away

I've just spent a  year writing a C++ system for a bank.
I was the architect, team leader, gun developer and driving force behing the project that was delivered succesfully.
Now I'm looking for a new job.
Yesterday, one of the people I worked with at the last job
(by no means a C++ developer, more of a trainee C++ developer) rang me saying he had a job at another bank doing a similiar thing and would I help him by letting him have the the source code that I wrote as a favour. Now, I like this guy, and have helped him with lots of stuff over the last year, but basically I'm unemployed, and he's talked himself into a job way, way beyond his abilities and wants a copy of my code to see how it could/should be done.

Of course I gave it to him, because I've always helped those who need it. After all, this guy has always tried hard, and is not stupid, but I'm a bit miffed about it all.
Now he's using my infrastructure, application design and code to deliver a project that he could not have done without it.

And I do'nt have a job!

Should I have said no? How do you say it nicely?
Or have I done the right thing?

Mr Jack Harrison from the outskirts of san Diego
Wednesday, March 27, 2002

Wow!  You're a hell of a lot nicer guy than I am!  A push in the right direction?  With pleasure!  A couple of functions or algorithms?  Yeah, sure, no problem?  A whole freakin' banking system?  I don't think so!

Wednesday, March 27, 2002

Isn't it a bit late to be asking this question?

I don't see why you can't charge him/his client for your software.

Wednesday, March 27, 2002

Can you give this guy "a work for hire" you did for a third party.

Wednesday, March 27, 2002

Um... aren't you breaking NDA and all that legalese sort of contract with your previous company?  As I recall, from having signed a ton of those things, you can't even talk about specifics of projects, much the less sourcecode, until the NDA runs out.

Hoang Do
Wednesday, March 27, 2002

> Should I have said no? How do you say it nicely?

"That's interesting. Is there any way that I can benefit too?"

> Or have I done the right thing?

If it was your code to give (and not owned by the bank you wrote it for), then it wasn't wrong.

Christopher Wells
Wednesday, March 27, 2002

Alfred Heineken always said:
"I never give away my beer, because that's how I make a living."

Jan Derk
Wednesday, March 27, 2002


you really must be a very nice person, I think. I usually try to help other people along, but handing over a complete project worth a year's work would seem too much to me. In your situation I would probably have tried to "sell" some of my knowledge and experience to the other guy. After all, he gets paid at the moment and you aren't.

Aren't you a bit worried that the company you wrote the original system for would notice and mind what you did? Very often I've seen contracts where you hand over all the rights for your own sourcecode together with the program. I mean, you have somehow helped their competitors by offering them the code you developed for them (and with them paying for it). 

If the sourcecode is yours and you can do with it what you like, why not try to make a shareware or demo version out of the program and try to publish it over the web? I doubt that there is much chance for a shareware banking system out there, but even if you do not get money out of this, it might help you finding a new job and getting your name known by the right people.

I am not telling you to be less nice to others, just try to be a little nicer to yourself.

Have fun,

Jutta Jordans
Wednesday, March 27, 2002

Sounds like you have a potentially marketable product, assuming the code isn't owned by your previous employer.  I'd talk to a laywer about 1) getting your co-worker to sign a legally binding NDA, and 2) forming a business to sell your product.

Personally, I'll start giving my code away for free when they start giving Ferarris away for free.

Brandon Knowle
Wednesday, March 27, 2002

I do not believe that you did the right thing. Your action hurts our profession by pushing the career of one who is incapable of building good systems at the expense of someone who *is* capable (you).

This person will probably not be able to enhance or even maintain the system adequately, but since he delivered the initial product, he looks good to management. He will now be able to blame future problems on those around him, thus hurting the careers of those more competent than himself. (Further hurting our profession).

Like doctors, engineers, police, whatever; we have to police our profession for our own good.

Wednesday, March 27, 2002

Next time he calls (and he will), give him your current hourly billing rate and let him know that you charge in fifteen minute increments.

If he says something like "My boss won't go for that", ask politely for his boss's name and offer to talk to him directly.  If he balks at that, remind him that you did him a great favor in giving him the code.  Tell him you'd greatly appreciate the opportunity to speak briefly with one of the decision makers on his project, if only to offer your services as the most qualified person to modify & extend the code that's now in possesion of the company.

If he still balks, remind him that you did a great favor by lending the code.  Ask him if there's any way that he can see for you to profit from your experience with regards to his company.

If it basically comes down to him saying (or not saying) "they don't know, I want them to think it's all my work", then tell him that you believe he's being unfair.  Offer him the opportunity to let his boss know that you'll be calling to offer his services.  Tell him that you'll do it one way or another, and that you prefer if he make the referral.

If he still balks, call his company, talk to the receptionist and work your way through the company to find the name of his boss.  Call the boss, leave a message saying that you implemented a very similiar system and would like to offer your services as an independent contractor to facilitate the project.  Let him know you know about the project because of your friend, and that you gave him a complete system at your friend's request.

If you're friend's not willing to help you, if he simply wants to copy your homework and take full credit, fuck him!

And if you don't have complete rights to the code you gave him, call a contract lawyer (or IP lawyer) immediately.

Timothy Falconer
Wednesday, March 27, 2002

make that:

....calling to offer YOUR services....

Timothy Falconer
Wednesday, March 27, 2002

Jack - Live and learn my friend. No big deal, what's done is done. I used to be as nice as you are, it's still a struggle for me to be mean. If you want to survive in today's world, being nice will destroy you.

I'll always remember my manager's words : "Being nice will get you nowhere, unless you want to become a priest." This was the best advice anyone gave me.

Wednesday, March 27, 2002

as some have said-when the guy comes calling for help on support-give him your rate.  consultants can overcharge too :)

Razib Khan
Wednesday, March 27, 2002

It sounds like it is to late, the horse is gone, no way to close the barn door now.
I though of a side question. I assume the code was yours and there was not a ownership problem with the original contract. Did the person you gave the source code tell his employer the code came from someone else? Did they sign a sicky NDA that gave ownership of the finished product to their customer?
IANAL, but there could be real legal issues here.

Doug Withau
Wednesday, March 27, 2002

I'm not saying "don't be nice"; I'm saying "think about *all* of us" once in a while. By helping someone jump-start a career that is not ready to take off, you may be saddling a shop full of competent, well-meaning programmers to a rough ride.

In 12 years as a pro, I have worked with very few incompetent programmers. One of them was a team lead and was the only person I've met who could destroy a project AND ruin my day just by walking into the room. Whoever put him in that job (an incompetent manager, by the way) made it impossible for the rest of us to do good work.

All the other team leads I've worked for or with have been pretty good. It makes a big difference.

Wednesday, March 27, 2002

There's no damage done in giving the code away, the two applications will be different enough to justify all of the 2nd application being written from scratch. The issue is that the person I gave the code away to would probably not have been able to rewrite from scratch himself. I dont think he has ever built a complete application in C++, i.e all the Db connectivity stuff, error handling, code structure etc. Its really the big picture he was looking for rather than the micro application stuff.

Mr Jack Harrison from the outskirts of san Diego
Wednesday, March 27, 2002

Well, he learned from the sourcecode, no?

On a discussion board like this, sourcecode is a resource to hoard.  In a more opensource-oriented place, it's a vital ingredient in learning.

Some have noted that being "mean" is needed in the corporate world.  Well, whatever.  I think you've gained someone who owes you a favor, for being kind and just giving away something that cost you nothing.

Put the bite on him for a job there, or put it on your resumé as a consultation.  Have him pay you $1 and refuse to disclose how much you made.  It would be honest, since you were directly resopnsible for the success of a project.

Remember -- it cost you nothing, and gained you a Favor.

Greg Neumann
Thursday, March 28, 2002

Well, you realise you've given this other guy and his bank about $150,000 or more? That's the cost of having to *pay* for the expertise you can provide, and which you've spent a lot of time and money developing.

The bank won't give you anything. Why give your work away for free?

Hugh Wells
Monday, April 1, 2002

*  Recent Topics

*  Fog Creek Home