Why NOT to Write Your Own Software

For those of you who, like me, enjoy creating using their own software rather than somebody else’s software; here are some reasons why you should NOT create your own software, but use an Open Source software instead.

Is your comfort worth it?

Sure, when you write your own software (or libraries) then you are (or should be) very comfortable with it. You, out of everyone, should know how to use it the best. However, if you use that software during a project of yours, assuming you eventually leave the project, it could lead to disaster… The project is now left with an unpopular software or technology. This will cause the project managers to train all new-comers to their odd ways. If you would have used a more common software, it would be easier for the project to unload new people.

Is your comfortability worth the hassle?

How resourceful are you? Really?

Personally, I think that the best developers in the world are not only good programmers, but also highly resourceful. They are not afraid to use other projects that fits their needs and makes their project faster. I would go so far as to saying that I would hire a worse programmer if they were more resourceful. It’s easier to teach programming than resourcefulness.

There are better projects than your own…

I’m not discounting your undoubtedly fantastic programming skills. However, there are many projects out on the market that have such a big community behind them that you would need to work 1000 times as hard as any single contributor to create something just as powerful. For instance, I, foolishly, used to use my own CMS/Blogging Platform “WebWorks CMS” that was pretty sophisticated, however, people kept asking for more and more features… I started to realize that solutions like WordPress or Drupal already included those features AND had been using them for much longer than WebWorks CMS had even existed.

You don’t have the time.

As with my last point, when you publish your own software, you automatically become bound the the rules of maintenance. You must keep up with bugs, new features, complaints, modernizing the UI, and countless other things. I would have saved maybe 5-7 hours/week of I had used/helped develop WordPress instead of insisting on using my WebWorks CMS.

The dreaded docs

As a developer who has done this many times, I guarantee you that when it comes to writing the documentation, you will almost wish you had never started the project in the first place. For example, I created yet another python web development framework ObjectWeb. While I still use the library and I believe it is quite fantastic and I wouldn’t use any other library for web development unless I really needed to, it still lacks ANY documentation… I would recommend the library to anybody I know, EXCEPT, it has no documentation. I curse libraries with poor documentation, however I also created one…

Grow in the light created by others

I believe that my best education in programming has been from looking at other people’s code. It has exposed me to different people’s coding styles. If you haven’t learned to read other people’s coding styles, stop reading this article and start learning. You will thank me later.

Nothing in this article is saying that you should NEVER write your own software, that would be stupid (and quite hypocritical for me to say)… However, really weigh the risks and see if you can afford it for your time, money, and sanity.