Nicholas Martin
2 min readMar 12, 2021

--

Just to jump on the "it's not React's fault" bandwagon... I like to read people's opinions of React, which the title implies it would be, but as many people have pointed out, this post isn't about React at all, but instead poor management of the project.

Roadblock #1 - Going from a .NET WPF application to a React-based app is a pretty steep learning curve. I've been in the same situation as you, but I made it very clear to management that there should be a clear distinction between front-end (React) and backend (.NET).

Roadblock #2 - You would face the same issues in .NET where they have Nuget packages for most things.

Roadblock #3 - Sounds like everyone is writing in their own style and PR reviews aren't happening... how are you meant to debug things if there's no consistency from one file to the next? How are the engineers able to contribute effectively without standards to follow? Then you mention the team is in favour of Redux Hooks and so suddenly there's no consistency anymore... was it consistent in the first place? Tech debt is normal, but you need to have a process in place to tackle it at some point.

Again, not really a React problem, as the same would have occurred if someone introduced a Nuget package to the WPF app.

Roadblock #4 - Something is seriously wrong with the codebase and CI setup if it's taking 15 minutes. You mention you've got over 1,200+ NPM dependencies in the project... this is likely a symptom of just using an NPM package for everything, not caring about the size impact, and not using tree-shaking effectively. A lot of NPM packages try to solve many problems when in reality, you just need it for the one problem. Take `lodash` as an example, there are so many things it can do, but you might install it JUST for it's `_debounce` function. That function is tiny compared to everything lodash can do, so you've got lots of bloat unless it is tree-shaken.

Roadblock #5 - You're totally right about it dying out, however, this also happens in the .NET world and pretty much any language or framework. You were right to flag it as a high-risk technical debt, but the questions the product manager asked aren't simply because you chose React, but because standards and best practices clearly weren't being adopted or followed.

The important thing is that we learn from doing, and we learn the most by making mistakes, but your conclusion of not encouraging the use of React for enterprise applications is pretty harsh as it really just boils down to poor project management.

I've certainly made similar mistakes and faced similar problems in the past, but that's the definition of "experience".

--

--