I've thought of something useful I could potentially build for my team that I'd like to work on in my off time. It would be a simple tool that helps with communication. It would mostly be for my own practice and something I don't want any strict deadlines on as it's just something I thought would be handy. Would presenting this when it's finished be viewed as a good thing or would it be seen negatively? My reasoning is that it could be viewed that I should have just put that effort into assigned tasks A.K.A my work.
I would suggest you tell your manager/boss that you have an idea that will make communication better. If he/she thinks it's a good idea you might actually get a go ahead to do it as part of your work. If he/she does not think it is a good enough idea to spend resources on (which is not the same as it not being a good idea) then ask if it would be ok if you worked on it on your own time. Worst case scenario you are once again told no, and you can just make it anyway to practice but never implement it at work. Asking after it is already finished might raise questions on when you created this tool.
As long as your "pet project" does not cause you deviate from your assigned tasks, you're welcome to have them.
My reasoning is that it could be viewed that I should have just put that effort into assigned tasks A.K.A my work.
Not if you complete your assigned activities in time, with quality.
However, there's a silver lining.
- If you're doing it in "overtime" (outside company-paid time) and using your own resources, it's fine.
- However, if you're using company resources (hardware/ software) and if you have no problem with your company claiming the ownership of the developed tool, you're good to go. Otherwise if you want the tool to be licensed for yourself, or, even open-source, you should check your contract once again, there might be clause mentioning any work you do using company provided resource belonging to the company.
- If you have significant amount of "free" time (i.e., company-paid time for which you have no work allocation) that you're investing (or planning to invest) into it, you may need to inform your manager about your work assignment, and then run the idea past your manager, to get an approval.
It's a bit of a complicated area of law sometimes. But it is possible. Things to keep in mind:
- Anything you work on in the office will probably belong to the company
- Anything you work on using work materials, equipment, code, APIs, etc. will belong to the company
- In some jurisdictions, if it is related to the company in some way, it will belong to the company
- Some company policies (attempt) to make anything you work on while employed, their property
- Even if you're happy with all of that, you still must work on your assigned tasks
If the above are true, working on it at home may breach company policy
Other than that, feel free to work on it. Tips:
- Make the tool generic and not tethered strongly to work
- Work on it solely at home. Upload it to github/etc.
- Seek permission from your boss before you download from github
- Don't be discouraged if they decide not to use it
- Ensure you use your personal time
You can do whatever you want in your spare time. If it implies bringing added value to your employer while in the meantime learning something new, I really don't see how your employer would consider this a bad thing as from their perpspective it's basically free stuff.
However, I would suggest being careful as people tend to get entiled, even with free stuff. As soon as you will have disclosed this tool nobody ever wanted to pay for, people will start thinking about how it could be improved with new features. As soon as people will start to use it, they will probably discover bugs and expect you to solve it. As the initial work was done for free, some might expect you to do these changes and fixes for free too, maybe with some kind of emergency especially if this is really useful. So I would be very careful when delivering the product and mention the "support policy" right away. i.e: "I wanted to learn xxx and in the meantime we were in need of a tool for doing xxx, so I gave it a try. Please be aware that I can not offer any guarantee over the stability nor the future support of it"
As a side remark, while some people will probably consider (it's already the case in comments) that working for free is stupid, I personnally appreciate that kind of mindset: you're basically not "working for free", but learning stuff while practicing on real-life situations, and the ROI you'll probably get in the long term, not immediately. From my perpective, solving real problems is the best way to learn new technologies/languages. The downside is that people easily take this behaviour for granted and may have a negative feeling when/if you suddenly stop doing it for whatever reasons.