Hi. I'd like to reach out to anyone here who's developed widgets before. I'm personally not a developer, but I understand that the time and effort that goes into developing a widget depends on the complexity of the widget. And I work with a team of developers, so I understand the design, develop, test, deploy, etc phases of development. That said, I'm trying to get a feel of how much time it takes to develop some of these OOB ThingWorx widgets so my estimates aren't way under or over.
I'd imagine the button widget takes 40 hours. The gauge 60-80 hours. The grid, assuming that it uses some open source table structure.. 60-80 hours.. and the trend.. assuming that it also uses some open source charting/trending tool.. 80-120 hours?
Any insight or sharing of your experience with developing widgets are greatly appreciated.
Really hard to confirm or deny those numbers, because there are just way too many variables. That being said, I'm not sure anyone will call you crazy for the numbers you have thrown out there, so consider the ballpark at least correct.
I've created a handful of custom widgets, and the best advice I can give is to look at the code for existing OOB widgets and see how they work. You can usually get some good insight in there if you are looking to copy or model OOB functionality in any way. Of course, the first time around you will want to follow the Getting Started guide, or whatever documentation ThWx now provides on this. You can grab the widget code from the the in your Tomcat folder, under Thingworx/Common/thingworx/widgets. Your extension widgets end up somewhere else (I forget where exactly now, but its not hard to find). I often started with a modified version of a OOB widget, depending on what I was making.
Also, I found it pretty invaluable to muck around in the browser dev tools. You can see your widget code loaded in there in the CombinedExtensions.js (or.css) files. You can set breakpoints in there which helps debug stuff, but more importantly you can edit the code right in the browser tools (at least in Chrome). If you reload the page by using the Thingworx mashup toolbar's reload button (not the browser refresh button), your code changes don't get wiped out. In this way you can develop pretty well right in the browser and see instant results. Its a tad dangerous, you could lose code or crash the browser, but its invaluable as a tool to use when you are testing out how the browser reacts to certain things.
Best of luck
Thanks for the feedback and tips Alex! Yeah, I know it's tough to validate those numbers. Sounds like we'll have to take the plunge and give it a try to validate my estimates.