Once upon a time, there was a junior developer, Alex, who was fresh out of college. Alex's new team was full of people with multiple years of experience. This made the learning opportunity exciting, while also extremely paralyzing with imposter syndrome. Imposter syndrome restricted the junior developer to use only the practices recommended by the other developers.
After a few years, Alex started gaining confidence in the technology, and was even pointing new/junior developers in the same direction... and that's when Alex realized what a terrible mistake had been made.
You trust what you know. It's natural. New things are scary. But, here's the thing: Technology is changing every day, and if you're not keeping up with it, you're setting yourself up for failure.
What do I mean by that?
There's a lot of mainframe developers that are currently out of a job because they refused to look ahead. (I'm not trying to be a jerk here, it's easy to do..especially when you love something, to become so engrossed in it that you didn't realize everyone has moved on.) Are there mainframe developers today? Yes. Are there as many today as there were in the 80s/90s. NOPEEEE. So now, many of them are scrambling to catch up on 30 years of technology.
Do I want you to learn everything? No, it's not possible. But, you should be dabbling in the new things that come up, especially if it interests you at all. You shouldn't be shooing off emerging technology. Example: I saw someone state they weren't looking into Docker and the fad would fade soon. Okay.. Docker isn't fidget spinners. Docker makes developers lives easier, and many people are using it, so is that a good decision to ignore it? Probably not.
The point is -- LEARNING IS FOREVER IN TECHNOLOGY, AND THEREFORE YOU WILL EVOLVE.
Now that we've got all that out of the way, here's the truth. Alex was blindly following in what was believed to be "the way". As Alex gained experience, and confidence, and took a step back... Alex realized that the goal post has moved. Alex was stumbling over shoelaces, making not only development exceptionally difficult, but also readability, and especially maintenance.
Ask questions to a diverse audience
Junior developers and Senior developers and Architects, and even sometimes project managers all have a different perspective. Sometimes there's a better way right in front of you that someone else will spot faster.
Research alternative routes
Jump on Uncle Google, and see what others in your technology are doing. This is how I found MVVM in iOS and it's made development that much more enjoyable. Maintenance too.
TRY alternative routes and find one that works for your team
It's okay to test drive things. You might not want to do it in your production app, but have a test app somewhere that connects to a web service and displays data. Play with the route there, then if you think it'll work for your project, port it on over.
Every project is different, and NO SOLUTION fits all
Say it again for the people in the back NO SOLUTION FITS ALL.
PS: Alex is me... and probably you at one point too. ;)
Thanks for reading!