47

So I made a program that does my own job.

I worked about 9 months on it, using the time I saved from not having to do my job, plus staying after work, plus working on it on the weekends.

The company makes every employees sign a letter that they own any and all intellectual property in any form that I could make, including if I make it at home and up to one year after I leave the company.

Early this year I approached my boss about an idea and they had me talk to IP lawyers and they submitted my idea as a patent. They gave me a small bonus (0.75 of a week's pay) and reminded me that they owned my idea as I was inventing it.

So it's pretty clear that they will not give me anything for my effort that is comparable to just doing whatever I want with my free time from now on. Or even something that is proportionnal to the effort I put in this program (about 800 hours, 27 thousands lines of code).

I'm not a programmer in my job and this company doesn't hire programmers anyway. I have no path of advancement by letting them know what I did. They'll just take my program and re-assign the three persons doing this job, including me, probably to a worse job that can't be automated this time.

So with all this, what are my options? Should I just hit delete? I am concerned that if they even figure out that it is automatable or how I did it, then even if I delete my program, I will suffer the same negative consequences.

Any advice for me?

thanks (Also I can't quit because this job already pays as good as a senior programmer)

marked as duplicate by David K, gnat, yoozer8, IDrinkandIKnowThings, Chris E Nov 15 '16 at 20:01

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • 60
    Where are you? I doubt "we own all your IP including stuff you make after we fire you" will hold up in court in many places. – Erik Nov 15 '16 at 8:05
  • 26
    As for your last sentence, anybody who has the skill and motivation to automate away three full time jobs will get work anywhere. So you absolutely can quit (and if your management is not supportive then maybe your should). – Eike Pierstorff Nov 15 '16 at 8:44
  • 13
  • Comments are not for extended discussion; this conversation has been moved to chat. – Jane S Nov 15 '16 at 22:04
  • 1
    a lot of the upvoted answers seem to suggest to either slack off or simply to give up getting any benefit out of your work. i disagree. if the comapny accepts your work, they still need someone to maintain it. as a responsible boss i'd have you continue your work manually and using your program at the same time for a while (if possible) to make sure it is actually working properly. at least closely monitor its outcome. i might lay off the other two and have you be responsible for the whole workload now, but i have to be careful. if you quit, then noone knows how to maintain the program. – eMBee Nov 16 '16 at 10:53

12 Answers 12

74

Any advice for me ?

If your job truly can be automated this easily, then it was only a matter of time before it disappeared.

Instead of just kicking back and using your "free time" to do whatever catches your fancy now, use this time to find a new job - perhaps one that isn't so easily automated. Or as @DavidSpillett points out in his comment, use this time to learn/improve valuable skills that will be useful to this job or what-ever one you end up doing next.

You knew that you wouldn't be compensated any extra for your unauthorized side project, but you did it anyway. Don't expect that now you can somehow get paid for it - that just isn't going to happen.

  • 9
    "use this time to find a new job" - or at least to learn/improve valuable skills that will be useful to this job or what-ever one you end up doing next. Even if the company can claim ownership of anything you create, they can't take ownership of what you learn. – David Spillett Nov 15 '16 at 14:00
  • 12
    @Kilisi, it took 800 hours for a non-programmer without practice and without programming infrastructure in place. Even if you take a pretty good hourly rate of 50€ for an decent programmer, that's only 40.000 €; maybe he is also faster, then let's call it 30.000€ or even 20.000€. That's peanuts for high impact proprietary software. I'd surely call that "easily automated". – AnoE Nov 15 '16 at 14:13
  • 1
    @Kilisi, plenty of assumptions on both our sides, I'm happy to agree to disagree. – AnoE Nov 15 '16 at 14:25
  • 2
    @AnoE - easily programmable doesn't mean the programmer has the background to know the logic the program should use. Writing a program is easy, relatively. WIthout proper logic and architecture though you can ruin even the best programmed software. For one if the logic is flawed from the beginning it could take that 800 hour project to 2400 hours. In many jobs if you can't build the flexibility of the landscape in the software, it might be obsolete before it is done. I get paid a lot of money building middleware because of your exact thought process. – blankip Nov 15 '16 at 18:54
  • 3
    The source code is IP produced at least partly on the job, and covered by the IP agreement just as much as the executable. – Patricia Shanahan Nov 15 '16 at 19:29
44

Don't mention it, don't try and claim ownership of it or anything else. Just use it as a time saving device that makes your work easier. Don't even share it with the others doing your job.

Defer worrying about it at all until you need to eg,. about to get fired, or quitting, or your role changes. And don't develop it to the stage where it will work without you.

  • 13
    And perhaps, as others did, to look for another job that's not so easily automatable – in other words, that does not make one feel like a machine. Even wasting time away during hours gets tedious after a while. – The Vee Nov 15 '16 at 13:21
  • 1
    Surely. I can spend months on much less than that amount of code (if I strive for perfection). But no kLOC should be enough to replace a human brain. The feeling of being entirely replaceable by a machine is a good recipe for depression, and if 27 kLOC can do it then (in relative terms) it is too little. – The Vee Nov 15 '16 at 14:33
  • 4
    @TheVee ,many jobs are replaceable by machines and many have been, it's not a matter of replaceability, it's a matter of the cost to replace. There is a lot more to automation than just deciding to do it and hiring a programmer or engineer. And not every business see the need or has the budget to do it even if they do think it's possible. – Kilisi Nov 15 '16 at 14:38
  • 7
    The OP did something pretty special, he thought outside the box, made a plan, ran with his idea and perservered until it worked. Not many people do that. But it's that mindset that drives humanity forwards (or backwards depending on the idea). – Kilisi Nov 15 '16 at 14:46
  • 1
    I have to say keeping quiet was the most tempting option and probably the course of action I should have taken. Thank you – Shodan Nov 16 '16 at 8:34
26

Do not hit delete.

You probably overdid the job. You could have automated it without working the weekends in a longer time frame, but you were overzealous.

However, the company is not responsible for this, and is entitled to the intellectual property of the code. Deleting it would basically mean they paid you for nothing in the past 9 months, and would break the letter you signed.

They might indeed reassign you to another job, and this would be normal, because they pay you to bring value to their company. You will have the opportunity to develop other skills through this new assignment, which you will be able to value when looking for a new job.

You mention that three persons are doing the job with you. What if the company decides that now, they only need two ? They will keep the two most competent, and the quality of your work will speak for you.

EDIT : Earlier this year, you did a good job, and they gave you a small bonus. You mentioned in the comments that you already are at the top of the payscale. It seems you have a relatively simple equation.

The first option is that you do not reveal your work to anyone, and you keep doing your job and nothing more. You will get your current pay and your workload will stay at an acceptable level.

The second option would be to reveal it and hope for a large bonus, which you would get in exchange for a heavier workload, and a positive reputation in the company. They might not recruit right now, but they might recruit in a couple years - and people you have worked with will know you, building up your professional network.

  • 8
    The bonus was for explaining another idea I had and working the company's IP lawyers to fill a patent. I'm currently doing the job that was asked, which in no way includes making a program to do it all automatically. If I don't keep the program, they still got all the work that I did. With my program only one person would be needed to do the job and the job I would be doing (I'm pretty sure I know which one) is harder and doesn't pay more and I already know I can't automate it. A net loss for me. – Shodan Nov 15 '16 at 9:19
  • That clears up some things, I'll edit the answer accordingly. – Thalantas Nov 15 '16 at 9:20
  • 1
    Also if I'm the one person doing the job, well my workload would be back to what it was before I made the program so in effect all my efforts would be for nothing. There is no path of progression for me in this company I am already at the top of the pay scale. – Shodan Nov 15 '16 at 9:20
  • 9
    @Shodan you seem to already know the answer. There is no path of progression for you in this company. Either you stay there, let your program do your work and slack off, or you search for a different job. – Josef Nov 15 '16 at 15:05
15

The company pays you to do a piece of work. The work is being done. If you hand off your program, company will save your salary (you will be moved to do something else, or even let go if company is that stupid). The upside for you? Maybe a pat on the back and tiny bonus for all the effort.

If you calculate the time you invested in developing the software, you are probably still behind on time. Treat the time savings now like a dividend off a large investment (800 hours certainly look like it).

Spend the free time learning new skills. Perhaps go into programming, as you seem to have interest?

Can you work from home?

  • 2
    The OP doesn't have to tell the news to the management right away. The OP can keep refining and refining their program until they are ready to talk to management and they are ready to tell management that the program is done to their exacting standards. The OP should use the time gained to look for other opportunities, because they have a pretty good idea what's going to happen once they tell management. – Vietnhi Phuvan Nov 15 '16 at 15:23
  • @VietnhiPhuvan if there are no likely upsides of telling the management and a lot of possible downsides, why tell at all? – ya23 Nov 15 '16 at 16:41
  • 1
    Management will find out eventually and if management finds out, it's best that the news come from the OP. Hiding this stuff forever doesn't seem like an indefinitely sustainable situation to me. – Vietnhi Phuvan Nov 15 '16 at 16:47
  • 1
    Then OP should enjoy it as long as it lasts and use the time to learn skills to move on. If "caught", he can state he haven't mentioned it just yet as there are issues and it is not fully tested. He can then present a version of software that is not fully complete or has obvious problems. – ya23 Nov 15 '16 at 17:19
14

From the perspective of a programmer

I'm not a programmer in my job and this company doesn't hire programmers anyway.

I'm sure you did a fine job automating your job but what if... what if your program contains a bug? What if it makes a wrong decision? What if something goes wrong? Do you blame the program?

I'm sure (or at least I assume) your job isn't to keep an eye on life support, but let's say it is. What if your program, for whatever reason, fails to notify the required staff when someone's heart stops beating? Ok, a little less drastic: what if your job is to make sure people's insurance doesn't expire... And even less drastic: what if your job is to keep enough stock of toilet paper. There's many shades of grey here and, depending on what your job is, the implication(s) will differ as well..

If you're not a programmer then there's a good chance you may have made an oversight (and even experienced programmers drop the ball on a regular basis, there's no such thing as a bug-free program) which might get you into trouble down the line. If the company you work for trusts you to do your job and you 'pass it down the line' to some (to your company's) unknown program which isn't formally tested, approved, whatnot then you may get yourself in more trouble not telling them about it than just coming clean about it and having it tested/approved or even binned by them.

  • 7
    "If you're not a programmer then there's a good chance you may have made an oversight" - Actually, if you are a programmer you will already know that you probably made an oversight somewhere. Every programmer knows there is no such thing as bug-free software. And if there are more users of the software, there will be a need for maintenance. Right now it is just a one-person program, a "personal program" or "script" in colloquial terms (almost certainly not robust). – Brandin Nov 15 '16 at 15:20
  • 1
    @Brandin I have clarified it a little; you are, indeed, correct. – RobIII Nov 15 '16 at 16:11
  • 1
    Also, introducing the program to others may create a new job in itself: maintaining the software and enhancing it for further use. – leigero Nov 15 '16 at 19:00
  • 1
    @leigero yes, been here. Just because I could automate my job away didn't mean that the others could use it. Many programs are like this they work in the presence of their author but fall into instant decay when he is not around. – joojaa Nov 15 '16 at 20:13
  • 2
    This is a valid concern, I would say 1/4 of the lines are about sanity checking and error handling. When I started making it, the program would basically pause at every decisional branch. I made a settings page where I can enable/disable each of the "are you sure" questions, and I did disable most of them over time as I gained confidence. I made each section of the program as standalone as possible to avoid "cross talk" and other possible interaction, at the end of the day I am responsible for the program as if I did the action myself. I find it does less error than I would doing it manually. – Shodan Nov 16 '16 at 8:42
11

I'm a developer - 20 yrs now. I had to take some different work after the dot-com bubble burst, for a large hospital chain. They didn't know anything about my background in development, because I probably wouldn't have gotten hired even though it was a temp job.

I found a way to automate a key component of my boring, monotonous job. But I kept the details to myself, and just found other things to do - like studying for my next role after the economy rebounded - with the extra free time. The management expected that my duties would take X hours per day, and as far as I was concerned, I was determined to let them keep thinking that.

My project probably wouldn't have passed snuff to get gobbled up by their massive IT department anyhow. It wasn't that it anything was wrong with it, but simply the fact that my little program served to automate an old-fashioned green screen and it's very, very specialized work; and anytime the green-screen stuff is modified, it'd require modification in kind. So the ownership thing didn't factor in at all, nor did I worry about it.

I suggest that you keep your mouth shut and turn this into a resume-builder. Don't tell anyone on the job about your capabilities -- at least not yet. Some steps:

  1. Find out what related skills are in demand in the market. Learn them with the extra time.
  2. Take online skills assessments to determine if you're up to snuff compared to others in the field
  3. Determine what you are WORTH in the market.
  4. Do some interviewing. If nothing else, you'll learn what gaps you have.

After you've done the above, THEN you disclose what you've been doing so that if nothing else, your current employer give a referral that says, "Yes, he did x, y, and z here" to your next prospective employer. Or maybe you can get the money you're worth from your current employer. Right now, you don't have much leverage, and that's what you need.

The worst-case scenario -- but easy to occur -- is that maintaining this thing gets added to your other duties without any prospect of a raise, and then you're screwed. Don't run into the same situation as occurred here.

Best of luck.

  • 1
    That is sound advice thank you. Where I work we also have borg-like all encompassing IT-tentacle-monster which makes projects like what I've done almost impossible or worth doing. That the doors I have used to make my program were still opened was probably an oversight. I'm pretty sure as a programmer I'm not worth more than what I already do. Keeping it to myself seems like the safest and most profitable course of action. – Shodan Nov 16 '16 at 8:47
2

There's another possible approach, depending a bit on how well you interact with your current boss. You might talk with him about moving to a different position within this company, with more responsibility (and a new pay-category so you can get better paid).
Trust me: nobody ever remains happy in a job purely because of the monetary compensation. You may very well end up happier after moving to a different company, even at a lower pay rate, if the new job fits your goals better.

And one other note: check with a lawyer about the exact "reach" of Canada's IP laws. Typically in the USA, anything you develop that is outside the current and anticipated scope of your company's interests cannot be claimed by them.

  • 3
    But the software is clearly is in the scope of the company's interests. – paparazzo Nov 15 '16 at 14:25
  • @Paparazzi That particular effort might be -- just because they patented it and used it to streamline some internal procedure doesn't mean it was in the company's scope before it was revealed to them. Like I said, he needs a local IP lawyer. – Carl Witthoft Nov 15 '16 at 14:44
  • Before? If it applies to his job then it is in scope even if the company was not aware it could be automated. – paparazzo Nov 15 '16 at 14:56
  • 1
    I can't think of any scenario where work you did tied specifically to your job and performed on company time would not be the property of the employer. – cdkMoose Nov 15 '16 at 15:00
  • @Paparazzi That's not what I said. Suppose the company makes only Widgets, but as a result of this fellow's off-the-clock-efforts, they file a patent to make Thingamabobs as well, even though there's no connection between the two products. – Carl Witthoft Nov 15 '16 at 19:18
2

Situation:

  • Your boss already knows that you are working on the program.
  • Your boss doesn't know that you are finished with the program.
  • If I am correct you are assuming that you will be set to a worse job than before.

Conclusion:

This means you will have to some day deliver the program and take the risk of being put into a worse position or let go.

Measure

You could know use the time you where developing the program to search for new job opportunities while the program is taking some of the work load of you.

Let's call this a test phase for your program ;)

When you got a contract for employment ready to sign you can go to your boss tell him that you finished the program and tested it.

  1. If your boss really will put you into worse position you can bail out and take the new job offer.

  2. If your boss sees the value in you and puts you into a better position than the job offer you have on hand (maybe you will be the administrator and developer of the program, who knows), you can decline the job offer and continue with your company.

1

All questions aside (like, why do you think that every position in that company would be worse for you), how about letting your manager know that you seem to have a bit of spare time on your hand and that he can give you more work to do? Ask them for 1 day per week additional work, for a few weeks, and see what happens. If it turns out that the new stuff is all fine and well, go ahead and increase that amount. Over time, you will progress into other areas.

Generally speaking, a company should be happy to have a worker that is able to automate himself out of business. If they let you go because of that, well, that would be more than stupid on their side. I have, as a software developer myself, often made software that lessens the workload of white-collar people; in fact, in the line of IT I work in, every single software has to pretty much prove that it has a positive net worth, measurably directly in € - hence always compared against "man hours saved".

Never have those people been off worse because of it. They got different work to do (for example, fixing problems that a software cannot fix; or increasing quality instead of quantity; etc.).

1

The script you wrote likely does need a person who can maintain it. If no one else can program in your company you might be the only person who can maintain the code.

You can ask your boss to allow you to work from home some days in the week while offering to do more work at the same time.

-1

Why not hire yourself out as an independent contractor doing whatever job it was that your script is now doing? If the script is really effective then you should be able to do the same job for 4 or 5 different companies at once, collecting all those salaries. That's not cheating, that's how the economy grows. It's how innovation is supposed to work.

  • 1
    This is far easier said than done. – Xavier J Nov 15 '16 at 18:54
  • Unfortunately, what I do is very specific to this company and in particular requires handling parts (it's not entirely automatable) – Shodan Nov 16 '16 at 9:07
-3

You should absolutely not mention this to them. Use your spare time to look for newer better opportunities. After your one year contract period expires you should approach your old company with a 'new software' that c an automate your old role. Do not sell it to them. Rather, you should license it to them after getting your own IP.

After this jut sit back and receive a check in the mail every month

Not the answer you're looking for? Browse other questions tagged or ask your own question.