When a bright new technology appears, it sometimes fascinates us and makes us think that everything is possible.
As we see it exceeding our expectations in some areas, we start believing that we can use that technology anywhere with relative ease. Past experience has proved otherwise: it's rather a recipe for pain! I am going to talk about my experience as part of the thoughtworks.com team using AngularJS to implement the interactive tech radar.
A bit of context
The interactive tech-radar was implemented in AngularJS. The choice of AngularJS enabled a fast path towards a Minimum Viable Product. It also allowed implementation of a richer client side interaction. The final product was a great improvement from the boring static page full of text we had before.
The war story
For the second iteration more features and bug fixes were on the list. As we started playing the stories we felt the burden of the learning curve more heavily. Small stories lasted for days, as we improved our understanding of AngularJS. We anticipated that, but underestimated how much time it would take us. The main reason was the framework nature of AngularJS. As any other framework, it promotes its own peculiar view of the world. In order to get the most of a framework one has to accept and use its way of doing things. Frameworks are wonderful in the sense that they can get you fast to a Minimum Viable Product but you have to pay the price of maintainability and evolution on the long run.
A set of useful tips for developing an AngularJS application can be found in this Insights article by ThoughtWorker Tania Gonzales. Details about a similar experience with AngularJS can be read in this blog post (also see the Hacker News discussion sparked by it). Different opinions can be read here or here. I am very keen to hear other interesting experiences with AngularJS. Please share yours in the comments section.