Jump to content

[semi off topic] - Your code in a corporate environment


kinch
 Share

Recommended Posts

Hi guys,

I'm a low level tech support dude in an organisation supporting approx 6000 users.  Alot of our processes are manual, slow, and use outdated tools.  While I can't do much about the tools (since most of them are used by the whole company in various forms and I can't just update it myself), I have found that I can automate and greatly speed up the manual and slow processes.  I've been working on 3 tools over the last few months.

Now I'd like to iterate that I'm low level - I have pretty limited access and realistically, this kind of thing is above my pay grade; not because I can't do it, but because we're dealing with high level managers and corporate-wide communications.  Frankly, I shouldn't be taking responsibility for doing things like this.  However, I'm the only one in my team smart enough to do it.

My managers are insisting that the code be well-documented, maintained, and easily modifiable.  They're also insisting that all my code be available for our area (and technically anyone else) to modify if need be.

I'm a little conflicted here: I literally spent months working on these, and even learning AutoIT from scratch to do so (I had previous experience with VB and HTAs, so it's not a huge transition, but I'm always learning new things).  It's my code, I worked on the vast majority of it on my own time because I was too busy doing tech support at work.  There's no one else in my team smart enough to do it.  However, in the other teams, there are people smart enough to take my code, modify it, and then claim it as their own.  We have no corporate rules about this (we're not a programming organisation and we almost always use external vendors for this.)  Even if we do have code we wrote, it's always owned by "the company".

I understand this is normal, but I feel a great sense of ownership on my code, that I built, because I took the initiative at work to learn it.  I identified the need, I taught myself the language, and I built the app(s) from scratch.  And my code will be available for anyone to modify and then show off to their managers "what they've done with it".  And who will get the credit then?

Does anyone else feel the same way?  Do you sometimes restrict access to your code somehow?  How do you handle managers who demand that everything you do is technically the property of the company (and these are nazis managers who could make your life miserable if you argue and say the code is yours)?  Code that probably couldn't be used in other organisations because it's very specifically coded to your own environment...  Ideally I think I'd just like to keep the source at home, and only make the .exe available to the company, but the managers are going on about "single point sensitive" and "team ownership" and the like.

I guess I'm just looking at how other people/companies work in this regard, since I'm not sure if I'm just being overly protective of my intellectual property.  Alot of you guys have made your code publicly available with UDFs, so I'm curious what you think about this topic.

Link to comment
Share on other sites

Most companies, if they're smart, will tell you that anything you create on their time is their property unless stated otherwise.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Link to comment
Share on other sites

So in conclusion you should not release anything, at all, ever, to anyone;  because they will steal it, modify it, and take all your kudos?

What if these 3 scripts are insanely useful and create a niche where you get to write office automation on the clock?  Why would you not believe that positive things would occur by adding value?

,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-.
|(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/
(_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_)
| | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) (
| | | | |)| | \ / | | | | | |)| | `--. | |) \ | |
`-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_|
'-' '-' (__) (__) (_) (__)

Link to comment
Share on other sites

I'm in a very similar situation to you Kinch. I've spent ridiculous hours outside of work building something that has allowed myself and my close coworkers to do our jobs a lot better. I want what I've spent doing to be useful not just to my group though, as there are tens to hundreds of other employees in stores who could benefit from what I've done.

I'm at a point now where I feel like I'm ready to test my work live in stores and my managers are going to allow me to do that. So what I'm doing now is building a UDF that should make it easy peezy for anyone else in the company who has a fundamental understanding of programming to build on what I've done. People may be interested, they may not. I would be thrilled if other people began to make their job easier by building on what I've done, which has tons of benefits. I also believe credit will be given where credit is due. I believe if things go accordingly, in time I will be relieved of some of my more menial responsibilities and allowed to write automation on the clock, which is what I've be working towards. Isn't funny that once you start doing stuff like this you kind of get the bug? I could very easily enjoy the problem solving involved day in and out until completing a bunch of projects and I became bored of my objectives and looked to involve myself in bigger things. 

It seems like you may be in a situation where your relationships with your upper management might not be as smooth, and that is a tricky place to be in. In my experience, if you don't feel that you're getting the recognition you deserve for your efforts I could understand how that could instill some doubts about whether what you're doing is actually going to help you get ahead if you honestly have the companies best interests in mind. You also have to be able to ask your managers what their plans are if your project is successful. You have to get a solid understanding of how they view your value. If its not realistic then you need to walk away, because at that point your allowing yourself to be exploited. If you are shaving hundreds of man hours of work across your company per week or month and your managers are not willing to discuss what is possible for you in the future with confidence, WALK AWAY!

My best advice is to offer the perspective of the manager. Lets say you have an accident and are unable to work, or you accept a new job offer, what good would any of your hard work be if it became frozen. You have to be fully in the mind set of the best interests of the company, and people will recognize that if you are. Don't make them ask you to have well documented code, do it anyways because maybe they want to give you a better job and have someone else maintain your work. 

As an entry level employee, regardless, it's a leap of faith, and you're either willing to take it and accept success or failure, or you're not. 

Edited by Prime03
Link to comment
Share on other sites

you make a good code, then as Prime03 said, you either go with it or you don't. I advise you go with it, because that's what you want to do. when you do, you have to present it in the most beneficial way. one more thing to your attention: maybe one manager is a bulkhead who rejects progress and overly insists on rules and regulations, but that won't be the case when two or more are required to joint decision.

here's what i did when i was exactly in your position:

recon you have to deliver these concepts:

focus on the company:

1) what you offer is of great value to your team, your manager, and to the whole company.

2) you can make it even better in the future.

focus on you:

3) it shows your high professional standards.

4) you did it as exceptional effort, not within your responsibility or resources.

with some help, i wrote a very impressive presentation, taking the side of my manager, explaining these concepts as if he would have to explain it upwards.

i showed this presentation to my manager and to our security officer, whom i knew would be thrilled to apply my solution and push it to formal implementation.

then i let them decide.how to proceed. i sat still, doing my routine, for about a week, until i was informed that my solution is accepted, and i am formally declared "project-dedicated personnel". i was relieved from help desk shifts and i was assigned more advanced and challenging projects. and although no raise was involved, i was happy just the same.

yes, you may say i was lucky. but i went for what i felt right, and i wish you the best of luck.

P.S. #1: you say:

"However, in the other teams, there are people smart enough to take my code, modify it, and then claim it as their own"

to my experience, even if that is true, it's more likely they will approach you for customization. partly because it is more convenient, and partly because not everyone is keen on learning a new scripting language, and knowledge of AutoIt is not very common among organization coders.

P.S #2: your managers insist on proper coding and documentation, compliance with company policy, etc.? that's good, for two reasons: 1) you get to polish your coding skills, and 2) you get to show off, because fulfilling these demands is not hard.

P.S #3: as common sense, and as part of the company regulations, as your managers insist, the code must include a reference to support (i.e. contact details. specifically: your name). make sure your name appears in the code comments, documentation, or change log.

P.S. #4: just a thought: if you fear intellectual property theft threat, consider preemptive action: before your code goes public, introduce it to your close peers (you probably already did, to get their feedback, right?). so when someones tries to take your credit, you have some back wind from people who knows you made it.

Edited by orbs

Signature - my forum contributions:

Spoiler

UDF:

LFN - support for long file names (over 260 characters)

InputImpose - impose valid characters in an input control

TimeConvert - convert UTC to/from local time and/or reformat the string representation

AMF - accept multiple files from Windows Explorer context menu

DateDuration -  literal description of the difference between given dates

Apps:

Touch - set the "modified" timestamp of a file to current time

Show For Files - tray menu to show/hide files extensions, hidden & system files, and selection checkboxes

SPDiff - Single-Pane Text Diff

 

Link to comment
Share on other sites

It's my code

 

 

And I would challenge you to post some code that is "yours".  My last script was 80% Melba, 10% Malkey, %9 Guinness (to try and speak all proper to the interpreter), and 1% me.

Edited by boththose

,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-.
|(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/
(_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_)
| | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) (
| | | | |)| | \ / | | | | | |)| | `--. | |) \ | |
`-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_|
'-' '-' (__) (__) (_) (__)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...