The Medium PostA few weeks ago, Răzvan Dragomir wrote a post on Medium titled “I Almost Got Fired for Choosing React in Our Enterprise App” and linked to one of our React Wednesday shows on React in the Enterprise. Our website analytics went through the roof as a result. Răzvan wrote an honest assessment from his viewpoint on why his project went off the rails. It was a great post, not just about React, but about the problems that happen in enterprise development. In particular, those that happen when adopting a new development paradigm when teams aren’t prepared for, aren’t trained, or, worse yet, don’t realize it requires a new approach.
What is React?It’s just a library. A library that helps you turn data into a user interface. Some might call it an opinionated one, as it does expect adherence to certain rules and approaches to be optimal (read: not drive yourself and your teammates crazy). But the beauty of adopting these approaches is access to a vibrant ecosystem and evolving set of tools that you can assemble the toolchain that makes the most sense for your situation.
Do We Recommend React for Enterprise Application Development?For sure. But we also recommend adopting any technology, especially one with significant differences from Java and .NET enterprise stacks, with open eyes and an understanding that new technology often calls for new patterns, new understandings, and training for the team. The problems associated with forcing square pegs into round holes are well understood. When considering React for Enterprise application development, we usually recommend the following items to our clients:
- A training path for developers to learn to think in React
- It’s a new way of expressing ideas
- Trying to use existing patterns is the coding equivalent of just speaking louder to someone who doesn’t understand your language
- Sensible library and dependency selection
- There are a lot of options… but just because you can do something doesn’t mean you should
- A code-review process
- You need someone more experienced than you to tell you when you missed the point
- Using a standards-based approach
- Every situation may be unique but there are a lot of smart people that have already solved a lot of hard problems, we can learn from them