The thought process is that many times the barrier to adopting a better technology is just the time investment. So if you're sick of working with a problematic system, but the team doesn't have the time to fix it, fixing it away from work might remove that pain point from your life. And since often these projects begin and even end as just an experiment, there's not much reason to tell the team until you have something.
It doesn't really seem to have much of a downside - assuming you're just presenting whatever you come up with to the team later as an option, and not going crazy and replacing production systems without asking.
Just deploying it without consulting with anyone in place of the original production system would be a poor quality behavior.
If you think you have something, make an isolated test deployment of it for internal evaluation, and so on. No matter how the existing system sucks, at least it has some mileage in deployment and has been through some QA.
Imagine you committed time and energy to build a decent system - not perfect, but most people are ok with. You feel a sense of ownership on this system. Then one day, a coworker of your tells your manager that he has built a new system in his off time. He also made a conscious decision not to discuss the effort with you. How would that make you feel?
The problem, of course, is that often the new system is not better, it's just newer. Sure, it may be simpler and easier to understand, but is that because it is an inherently better solution, or is that because it doesn't deal with all of the the real-world conditions that the productions system has grown to support over time?
Even then re-writing is often a good thing. You can re-approach the problem domain with all the insight you've gained building the old system.
Like manning up.
This is snark, but I'm actually being pretty serious here. I would want to know if the new system is going to make everyone's lives easier.
If it's a large system designed by a person on their own in a corner, without interaction, without feedback on features and usability? ... it's unlikely to and I would be rightly wary.
I have however seen existing systems that have pain points that everyone complains about but no-body has the time for fixing, until someone finally takes a few days out to experiment with something different, and sometimes the results are excellent. But IMHO that's not exactly a "rewrite".
1) It is a known pain point, so the problem has been discussed. Probably a lot. The pain is the reason for the code, and if there's a new tool involved, that's additional not a main reason.
2) it's usually a technical task - for example something related to faster, more reliable deployments. This means that the requirements are already well-known by the engineer, and that it probably hasn't been addressed yet as it's hard to tie to a business benefit.
3) Experience of the engineer. Senior devs are more likely to chose a good target.
I'm sure the dev ops people will be happy I converted our automation from Chef to Puppet, you're welcome!
Assuming this is done during free time and you're presenting the solution in a respectful way, then that's their problem, not yours. If you perceive this is going to happen within your team then there is already something wrong. There isn't enough trust and cooperation in working towards a common goal. Every solution should be openly presentable and scrutinizable by every team member.
If you suggest an idea, completed or not, and someone is offended by that, it's not your fault. It is a consequence of your actions. And, I'd argue it's not your responsibility to care for others' feelings to such a degree.
Some people may disagree. I don't know how they can survive. They must feel they are constantly walking on eggshells, wondering how people will react to whatever they say.
How this would go down in your particular workplace all depends on the surrounding political and social context. It could either be interpreted as "Wow, that guy is such an amazing programmer that he was able to refactor our whole legacy system in his spare time! We should definitely keep him on board and learn from this kind of work, even if we can't do a full-scale replacement." or "Wow, that guy is so self-absorbed and unwilling to cooperate with his teammates that he went home in a fit of anger and thought he could replace 10 years of work in a few weekends! What an abrasive blowhard. Let's fire him next time he gives us an excuse."
The halo effect is going to be the primary determinant here. [1] If your colleagues and superiors are predisposed to interpret your actions favorably, they'll probably do so until you give them a reason not to, and vice-versa. It takes a lot of work to maintain a good halo, and it should be considered your primary job duty if you wish to have a fulfilling career as an employee.
Humans are social animals and will evaluate everything about you, including your technical competence, by the social signals you output. Successfully managing these can get complicated in the workplace due to the competing interests of the people you come into contact with during the course of your employment.
[0] https://en.wikisource.org/wiki/The_Prince_%28Hill_Thomson%29...
Are you disobeying your manager's direction? (And thereby undercutting their creditability/authority - and how does that make the manager appear to their supers/peers?)
Why can't you go to your manager and ask for permission? If not, why not?
How would you feel if your "great" rewrite is rejected - because someone else was already doing the rewrite; or because the system is going to be redesign entirely? (For example, the code will be ported from .NET to Java - and all the .NET code will be discarded)
If you haven't yet, try being a manager for a while and then see if you still think that this sort of troublemaker.
That's a big if. The fear is that such a person doesn't have the judgment to not be the type of person who goes into personal-overdrive into making unfeasible changes (or, worse, into bikeshedding). It doesn't mean that such a person is a horrible person, just that opening lines of communication should be a priority, rather than letting that person put themselves in a position of difficulty.
Management had a problem with our ActiceX based web apps not working with Macs or OS/2 machines. I offered to rewrite them to use Java instead and I was told no because Java wasn't made by Microsoft and if I wrote anything in Java I'd be fired.
Another job I aaw that VB 6.0 and Windows 98 was too slow and I offered to rewrite the app in C ir C++ and use GNU/Linux to make it faster. Same problem not Microsoft so management didn't want me to rewrite it.
Having seen it done I can understand very easily how someone could not just remove it.
It would have been better yet if the person hadn't created work for others with this homebrewed ORM.
..expectations are low, and there's value in keeping it that way! :)
(all my favoruite stuff has been stuff I've worked on for myself, that doesn't earn any money. I find almost all of it more worthwhile than any of the technical entrenched garbage I've written in the corporate world for the past decade of my life)
I had a boss who came back from vacation that was so threatened by the automated testing harness myself and another coworker created, that she rewrote the entire system herself.
It was very demoralizing.
Because the PM said, "If it can be in a script it should be in C#!"
Of course the C# programmers didn't like being taken off of productive work to build infrastructure tooling which was working perfectly well in PowerShell where it belonged. So they quit. So did the remaining DBA staff. All of them.
So the company told their customers this feature was broken and would not be updated in the foreseeable future. That was a year or two ago.
They could just run the script. But they refuse to on principle. So they suffer and the customers suffer. Companies are great!
Damn! I was thinking about doing that right today for a subsystem we use at work... trying to gauge its performance in the new language and eventually "sell" it to replace the existing one...
I think that attributing resistance to the off-hours rewrite just because of minimizing risk is oversimplifying the issue.
I have worked with this person on more than one occasion and I would love to work with them again. Entire new products and verticals are often the result of such projects.
Companies have such a hard time dealing with risk. They think that the only appropriate thing is to always minimize risk. "Look, I have minimized risk at every opportunity. I am doing a great job!" That's not true all the time though. When exploring new business models or in some other situations high risk activity should be preferred.