Thursday, March 6, 2014

Oh shiny, that new framework for…

Let’s face it, all of us at some point in our lives, have looked at something and became completely obsessed with it because it is new and shiny.

This is a two way street with software development.

The Good

Early 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 Bad

While 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?
    • Casing
    • Naming
    • Testability
  • 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


Unknown said...

I've been using Angular for the past few months. I really love it.

Unknown said...

Tom, we are currently evaluating Angular too- teammates really like it. We have the new DevCraft Complete Telerik Tool set and are looking at Kendo for web responsiveness, mobile- it is also compatible with AngularJS. I think there is something to be said for using the controls so that you can focus your already strapped resources on the business logic. Any advice?


Unknown said...

Larissa, make sure they evaluate each of those plugins, once you adopt a 3rd part control kit for example, it could be pretty painful to find out later that it doesn't work out.

I would recommend having test pages for each use case you guys might have for the controls, that allows you to easily find out if it supports what you need, as well as test out any updates, etc...

Ritu said...

Thank you for such a nice article keep posting, I am a Regular Visitor of your website.
Lucent GK

IT said...

The development of artificial intelligence (AI) has propelled more programming architects, information scientists, and different experts to investigate the plausibility of a vocation in machine learning. Notwithstanding, a few newcomers will in general spotlight a lot on hypothesis and insufficient on commonsense application. machine learning projects for final year In case you will succeed, you have to begin building machine learning projects in the near future.

Projects assist you with improving your applied ML skills rapidly while allowing you to investigate an intriguing point. Furthermore, you can include projects into your portfolio, making it simpler to get a vocation, discover cool profession openings, and Final Year Project Centers in Chennai even arrange a more significant compensation.

Data analytics is the study of dissecting crude data so as to make decisions about that data. Data analytics advances and procedures are generally utilized in business ventures to empower associations to settle on progressively Python Training in Chennai educated business choices. In the present worldwide commercial center, it isn't sufficient to assemble data and do the math; you should realize how to apply that data to genuine situations such that will affect conduct. In the program you will initially gain proficiency with the specialized skills, including R and Python dialects most usually utilized in data analytics programming and usage; Python Training in Chennai at that point center around the commonsense application, in view of genuine business issues in a scope of industry segments, for example, wellbeing, promoting and account.

The Nodejs Training Angular Training covers a wide range of topics including Components, Angular Directives, Angular Services, Pipes, security fundamentals, Routing, and Angular programmability. The new Angular TRaining will lay the foundation you need to specialise in Single Page Application developer. Angular Training