Hacker News new | ask | show | jobs
by scubaguy 3696 days ago
The "without telling anyone else" part is potentially the problem.

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?

4 comments

Yeah. As I've gotten older I've cared less and less for "my code." If the new effort is demonstrably better than the existing system, then I'm happy. Who cares who wrote the old stuff, this is better.

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.

Ideally there would be good enough tests of the old system that if the new system passes the same tests, then there's high confidence that it will perform correctly in production too. That way we get the benefit of being able to refactor or reimplement entire subsystems while still having almost the same assurance as the old system.
I would suspect that the new system doesn't handle the corner cases. Its easy to say "I can rewrite reddit in a couple weeks" but there are lots of details.
>How would that make you feel?

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.

> 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".

It very much depends on who that person in the corner is. I've seen junior devs waste a lot of time doing this. However, I have seen one or two examples of a senior dev solving a real pain-point that wasn't getting fixed within the system, for one reason or another.
Right; for me the determining factors between the two cases are:

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.

Yeah, I feel like going and redesigning parts of the system that are usually other peoples' area would result in some interpersonal problems at the least.

I'm sure the dev ops people will be happy I converted our automation from Chef to Puppet, you're welcome!

> I feel like going and redesigning parts of the system that are usually other peoples' area would result in some interpersonal problems

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.