So, when does it make sense? This is a tricky one to answer and should be addressed on a case by case basis.
At SurveyMonkey we decided to pass on jQuery UI and rewrite the widgets ourselves. My initial thoughts were: “Are you guys crazy?! We need those jQuery widgets! “The work is already done, so we should focus on developing our app!”
…Let me give you a little back story:
My first programming gig was at a small, scrappy startup. The full-time team was comprised of one back-end engineer and myself on the front-end. Strapped with little cash and a great idea, we had no choice but to take an ROI (return on investment) approach to every decision we made. Our main strategy was to harness development practices that would get us the biggest bang for our buck.
One bright sunny day, I met jQuery. What was once a Sisyphean task was now trivial. I wasn’t getting bogged down in the dirty details of different browsers, and this allowed me to expedite the development and design of valuable features.
With this new tool in my belt, I was high on the productivity. I wanted more. jQuery UI looked like it could also offer some more development power, so I decided to take it for a spin. Immediately, its simple and expressive API blew me away. With easy one line calls to the API, we had beautiful, cross-browser, and feature-filled UI widgets. It saved us time, customers enjoyed the improved UI, we made money, life was good. Naturally, I wanted to continue using jQuery UI at SurveyMonkey.
Now that we have almost finished rewriting our own version of it, I have some pros and cons to share with you from our experience.
1. We are able to decide what the browsers we support, and since we do not support IE 6, we have a few more CSS tools at our disposal.
2. By writing our own CSS, we can take advantage of the latest CSS3 techniques. Namely, using CSS3 gradients for background effects and Pictos Font Icons for our icons, instead of using background images.
4. We now have control over future development, and we aren’t dependent on changes to jQueryUI’s API.
1. A few team members had to spend a considerable amount of time developing and documenting code.
2. We will continue to pay maintenance costs as we move forward.
For my smaller start up, the cons completely outweighed the pros. Time spent on feature development was paramount. We needed to survive with very little help. At SurveyMonkey, we have more than just one front-end engineer; we have TEAMS of front-end engineers. We have the luxury of being able to dedicate a couple people to making awesome, custom jQuery widgets, while others can simultaneously develop our app. Also, SurveyMonkey has a much more heavily scripted UI than my smaller start-up, so asset downloads and JS performance really start adding up.
Have you made the decision to write your own code for your web needs? Sound off about why or why not in the comment section below.