This is a two way street with software development.
The GoodEarly adopters are integral to improving new hardware, software, etc. There is an entire subculture around people who will always try out the newest toys. But without those people, how well would Apple really have done with the iThings.
Not only do they help the proprietor of the new technology with feedback and bug reports, they also generally get to take advantage of it and can in some cases, drastically improve in the area the technology is relevant.
The BadWhile you have a chance of improving, you still are left with a giant risk with an unproven technology. Another pain point is the training required for the new technology, and finding answers to problems with the technology is near impossible, as there are not that many people (think early .Net 1.0 times).
I generally approach new tech libraries with many questions:
- Is it released?
- Does it cost money?
- Is it really worth that money for what it provides?
- Is it complicated to get up and running?
- Does it have a good feedback loop?
- Is the content creator responsive to feedback and requests?
- Is it Open Source?
- How many contributors are there?
- How many pending pull requests are there?
- How many open issues are they, and how old are they?
- When was the last commit?
- Who else used/is using it?
- Did they have something to say about it?
- Are they still using it?
- Why did they stop?
- Is there online documentation?
- Is it up to date?
- Are there training videos?
- Are there up to date ones?
- How many different people are contributing videos? (YouTube, Pluralsight)
- Are there any books written on it?
- Are they actually any good?
- Who wrote it?
- Are there people blogging on it?
- Does the API/Code follow proper language best practices?
- Will it blend?
- Does it fit with the software I am building?
This pretty much sums up my evaluation for software, in answering some of those questions, I will spend a decent amount of time doing research.
I am in love with AngularJS right now, I want to use it, and I want to use it for everything. However over 15 years of experience has taught me that doing due diligence on the tools is going to save me tons of headaches and time. After roughly a month of casually investigating AngularJS, I am finally ready to sit down and actually use it.
I am 100% confident at this point that with the project I am working on it the absolute best fit for the technology gap that I have (JS UI framework), and am completely signed off on the interface, content, and training available for it.
Just remember, due diligence up front with new technologies when your software relies on it will pay off in droves later on, just don’t be afraid to take calculated risks where appropriate.
Now I just need to figure out how to get my new website to work with Oculus…