So yesterday, we had an article outlining 5 reasons for not writing your own code. Of course, using open source or commercial software is not always possible, and often, can be outright senseless (does anyone really want to write their own forum when there are so many already out there you can customize well). So here are five good reasons for writing your own code:
1) The Education is Worth It
The best way to learn anything is to do it. Back when I was in college and for a couple years after, I had the time to learn a lot by always writing my own code. Nowadays though, I have to balance time with payoff, and most coding is pragmatic. But once in a while, usually on "vacation" or during slower times of the year, I'll pick up a book and code a few things from scratch in a new language.
2) The Code IS the Product
Obviously, if you're building software with the intention of selling the software, it makes no sense to have the majority of that software be open source. Sometimes, the main reason I'll write my own apps is because I know I can sell it to future clients as "highly customizable software" in the same way that designers can sell their own personal stock vector art or photography to clients.
3) The Real Solution is Simpler/Faster
I've always admired the robustness of CMS programs like Joomla and Drupal, and give due credit to the great programmers behind such products. However, although most of my clients do want their own content management system, often it's just so they can change their About page. So it makes more sense to develop something simpler, easier-to-use, and self-branded, than to retrofit one of these systems to a simple need. I also do the same for eCommerce solutions that only have one product or web apps with monthly fees. Just make sure you really understand a client's needs before you decide to create your simpler solution (few things in coding are worse than feature creep). So if you already have the expertise and code to create a simple app, go for it...
4) You'll Be Reusing the Pieces
I do a fair share of Flash and .Net work. Although there's no shortage of Flash and .Net code and frameworks out there (and many are very helpful and educational), if there's a component that I know I'll use again and again, I'd rather have it done with my stylistic preferences and include it in my personal library. On the flip side, many sites are "one-and-done" with very unique animations or functionality and in those cases, I'll just use whatever is quick and whatever works. So if you're a developer who's pretty locked into a language or a role (whether that be eCommerce sites, CMS systems, or websites for small businesses), it's always better to have your own library than to always use other ones.
5) The Customization Dictates It
To be honest, almost every client (including yourself if it's your own project) would rather have a custom solution over a generic one. Then you show them the cost difference, and they opt for the generic. But when you get a job that both requires a custom solution and has a time/cost budget for it, then there's no point feeling bad for taking the time to write your own code. I find that these situations are wonderful, giving the client exactly what he wants, and giving the developer the opportunity to do something fun and challenging. If only money wasn't an issue...
When I started writing the backend for this blog, I operated under point #3 and #5. As it turns out, I was wrong on #3 as I failed to take into account many additional features a normal blog must have (and which I must now write) -- features as ubiquitous as RSS feeds or Trackbacks. However, now that I've gotten over the majority of the work, I will say that it's nice to be able to customize anything in any way. Now I just need to come up with some unique customizations...
Community Comments













