That New Beta Software Smell

TL:DR; Don't use a framework until it's released.

Bob: "We should absolutely use the new Sarlacc 2.0 Framework. It's amazing!"

Jason: "But should we use it for a production app? It's on Release Candidate 4..."

Bob: "The documentation is great, and it's much better than the Sarlacc 1.0 framework. We should definitely use it instead of v1."

......

How often have you been in a similar scenario? There are a lot of things to take into account when choosing a framework, and I think a lot of us get very excited when something new and shiny comes out. When that new thing is well documented, and getting a lot of hype, it makes it even harder to resist trying to use it everywhere.

I saw this quite a bit when React came out, and then again for Angular 2, and it's something that repeats itself throughout the years. I've also seen the same hype and love for failed frameworks (and not just Javascript). We all love new things, and we all love learning new things. However, we often seem to have some trouble walking the fine line between using that New Shiny (tm) in our personal projects and our production apps.

Recently, I fell into this trap myself.

It happened very much like the conversation up above. We were looking at whether we should use 1.0 vs 2.0 of an app, and after much debate, we decided on 2.0, because it was much cleaner, prettier, and better documented (more on that part to come) than the 1.0 version.

We all dug in, and started looking at the 2.0 documentation, following tutorials, and in general reading up on everything we could possibly read up on for it. I imagine we all created the typical "Hello world" in the form of a ToDo list app and then experimented on improving upon that.

The time came for us to start our real project, and we dug in with vigor. Things were going well. Then I ran into a minor bug. No big deal, these things happen. I went to Google to see if it was reported or if there was a workaround. I went through every developers personal hell, in that I went to the second page, of the search results to see if it wasn't on the first page for some reason.

It wasn't.

There was no record of this bug. So I went to StackOverflow.

Again there was nothing.

So I posted an issue on the forums for the framework and waited patiently, since I was sure someone would answer soon. And then I waited some more. I'm still waiting. Same problem with the Github issue I created.

We still aren't sure how to resolve this bug in our unit tests for our production (or soon to be production) application. So we currently don't have a comprehensive test suite for our application.

If that doesn't set off alarms in your head, you should read up on why you should write unit tests.

There are a lot of reasons to use an established framework.

  1. You know it's unlikely to disappear tomorrow
  2. It is likely well maintained
  3. If a lot of people are using it, your problem has most likely been asked and answered on StackOverflow

That new beta software smell is amazing when you first start a project, but as you start running into bugs, you may find yourself looking at the bottom of your shoes to see what that smell is.