I am a pretty good developer. I know how to build controls, and I know how to build amazing user interfaces. I can design an experience with the best of them. If you agree with any of these statements, than I want to have a talk with you.
Are you that do-it-yourself developer? You know what I mean, are you the developer that can build everything you need for a web site? If you’re a rockstar ninja developer, you don’t really need external libraries, controls, or anything! You can build all of the resources needed for a website project.
Be careful. It is very easy to get excited and proud of yourself. There are some valid reasons why you should consider bringing in external technical resources to assist you. Don’t be disheartened by these reasons, we all know that you are capable of creating great code, but we want you to be able to create the great code where we need great code.
Yes, I am a developer evangelist for Telerik, but I have been a developer who prefers to build every component needed for my website. There are many arguments that can be made against purchasing external tools, and I have agreed with these points in the past. However, after seeing how much time and resources my team was wasting by re-inventing the wheel, I learned to love these external resources.
Here is a list of some of my favorite reasons not to use an external library of web controls:
There is one constant in technology: change. Every day new technologies are released, new browsers, new operating systems, and new devices. It is difficult to keep up with every browser released, and every feature of every device that hits the market. You simply cannot lock your customers into a single version of a single browser. They will eventually want to access your website with modern software, modern devices, and mobile devices too.
This problem is compounded when a browser vendor releases an update and forces all of their users to apply that update. Suddenly, all of your users that you were expecting to be using one version of a browser are now using a different version.
Do you really want to spend the time identifying how to make your site work with the latest Android browser? Do you really need to continue support for Internet Explorer 5 in your application? On the other hand, would you rather spend your time delivering high value functionality and content to your customers?
Price is such an immediate shock to people, and it is such a fallacy. Let’s break this down for you: How long does it take to build a simple date control? Will it take you two or three hours? Great, and then how many hours will it take to make it work with the latest version of each of the major desktop browsers, tablet browsers, and smart phone browsers? Perhaps another hour per browser to investigate, test, and enhance. Are you at 10 hours yet? Let’s also make sure it works in other locales, languages, and of course works with touch inputs. If you are getting paid $100 an hour to build these controls, you are stealing money. You have already spent more than $1,000 to build ONE CONTROL. Oh, and you will need to maintain that control in the future, which will cost you more time and money.
If you can purchase a control set that costs less than $1,000 per control that you need for your website, you are much better off buying the controls and saving the time. Let someone else maintain them and get updates to those controls with no additional charge for the duration of the license, you will thank me for it.
Yes, you want your website to look unique. Yes, it is important to have a professional look and feel to your site. However, you probably won’t have the project timeline of Duke Nukem Forever. Don’t spend any more time than you need to in tuning HTML and CSS. Get your site released earlier with a great look and feel by choosing to purchase a set of web controls.
When you purchase a control library, the user interface was probably designed by a professional and built to be modular. Remember: a control vendor wants to be able to maintain and improve the controls as much as you do. You can be sure that a professional collection of controls from a first-class organization will have a phenomenal interface that you can rely on to be consistent from version to version.
If you are writing your own user interface components, it is hard to maintain them and keep some reasonable amount of documentation available.
We have all been there. It is very hard to dedicate time to maintaining documentation with deadlines and pressures on deliverables. Documentation is typically the first thing to be cut when trying to save time or money.
A great control library is going to have professional support available online, a phenomenal library of API documents, and dedicated support personnel that you can contact offline to work with. Don’t struggle with writing and re-writing components of your own to get around a problem that someone else has already solved and documented.
When you build your own user interface tools, you need to train and recruit developers who can work with it. That means they need to be able to learn the controls that your developers have already built. This training process can take months, sometimes years to complete. By choosing to purchase controls, you now have the ability to recruit developers who already know how to work with the tools you are using. How many developers know how to build a website with your homegrown tools? C’mon is that ComboBox that your team built unique enough to waste time training someone else to maintain it?
I hope these points show you that a user interface is not something that needs to take all of your time and resources. Let go of some of that burden, and acquire a control set that can move your project closer to completion in a faster, cheaper, and more elegant way. Now you have a chance to focus your energy on the writing the great code that solves the real problems in your web site. Get a copy of Telerik’s ASP.Net AJAX control set that will make your life easier.
Jeffrey T. Fritz is a Microsoft MVP in ASP.Net and an ASPInsider with more than a decade of experience writing and delivering large scale multi-tenant web applications. After building applications with ASP, ASP.NET and now ASP.NET MVC, he is crazy about building web sites for all sizes on any device. You can read more from Jeffrey on his personal blog or on Twitter at @csharpfritz. Google Profile CodeProject