There are a lot of aspects of my job that I feel could be better automated to save me some time. It gets to the point sometimes where I generally end up writing my own scripts to perform the more repetitive tasks, but when it comes down to it, every large company needs an internal application of some sort – whether it’s to track data, house documents, or just make information available. In my case working at IMH, getting an application to manage our servers, IP address allocations, and almost every aspect of our systems, was fairly impossible, so I had to to write it myself. The application I designed over a year ago is still in use today, and has widely expanded as our needs became more defined.
So that brings up the question – when should you purchase, outsource, go open source, or develop your own?
Purchasing would fall along the lines of buying software that was already developed to meet the needs of general buyers. For instance, WHMCS is targeted specifically for hosting providers who would have a general need to manage hosting accounts and billing. When you purchase an application, you’re usually getting it “as-is”.
It tends to be cheaper to purchase software than outsourcing or “in-housing” its development. This is because the company you’re getting it from already has the software, and now they’re pretty much sitting back and making money from it. Keep in mind though that a lot of paid software has open source alternatives, which will be reviewed later in this article.
One of the main reasons companies choose to purchase software is for the security of knowing they get support for it from the company itself, assuming that support actually comes with the software. You’ll want to check on your support options before buying anything, as some companies do not include support as part of a software purchase, or limit the support to a certain timeframe.
Updates and Expansion
Generally the developers of purchased software will be responsible for updates and security patches, which will either be a good thing of a bad thing. The bad part is that you have to wait for them to do it, as their software will most likely be closed source to where only they can update it. The good part is that you know that they are responsible for fixing the problem, and you can usually hold them accountable for doing so.
Outsourcing would basically entail hiring a third party company to do software application development for you. You’d need to describe exactly what you need the application to do, and hope that the company you’re hiring is on the same page. I generally recommend using caution in outsourcing software development that your business may be fully reliant on for its operations.
Developing an applications tends to be very costly. A custom CMS can cost you hundreds or even thousands, so you’ll want to be sure it’s actually worth spending money on. You also need to have all your ducks in a row – in other words, you need to know exactly what you want the application to do while keeping in mind that if your needs change, you’re probably going to spend a good amount of money getting your application changed by the company that wrote it, if they’re even willing or able to change it.
Before outsourcing application development, make sure the people doing it are able and willing to support it as well. This means, if there’s a bug, security issue, or a problem with the application itself, they are able to address it. That being said, you’ll definitely want to know what kind of support you’re going to get when you outsource application development from a third party. Are they willing to help you if you have a problem?
Updates and Expansion
I’ve seen a lot of our customers get stranded with insecure or buggy software because they purchased it from a third party that either went AWOL or isn’t willing to update it. The first thing you’ll want to check on when negotiating development is whether the company is able to accommodate your changing needs as a company, and if they will be responsible for software updates and security patches if needed. This means that you’ll really want to choose a reputable software developer or an actual company, rather than an individual that you know nothing about that was hired as a freelancer.
Going Open Source
Open source software is a huge thing nowadays – almost any major enterprise software has an open-source alternative that is just as functional, without the cost. For example, you can easily save a few hundred bucks by opting for Open Office instead of Microsoft Office, 0r using Gimp instead of Photoshop. While this may not be practical for everyone, it’s certainly something to take a look at. You’ll also probably find that your company’s CMS needs are already met by the open source community. So you might want to check around sites like osalt.com or opensourcecms.com to find something that’s right for you.
Open source software literally costs nothing. You may at one point need to pay for addons or modifications from third parties that build on the application’s functionality, but those are completely optional.
One of the things about open-source software is you basically get the support you pay for – none. The license that the software is released under generally covers the fact that the producers of the software can stop development of it at any time, that the software is provided “as is”, and there is no official support for it. The good thing is that so many people use open source software that you can usually find answers in the documentation, support forums, or online support groups, which are actively maintained by thousands of people. Just keep in mind that there is no guarantee of support, but getting support is generally not a problem.
Updates and Expansion
Open source software is essentially managed by the open source community, so and people make changes to it all the time. The advantage to open source software as opposed to proprietary or outsourced applications is that the source is literally out there – anyone can update it and fix bugs and security issues, and release it either independently or through the developer. Most open source software (WordPress is the best example) has a large user base that develops plugins that can be easily used to expand the functionality of an application. Therefore, problems are generally fixed very quickly since everyone has access to the code, as opposed to waiting for the developers to fix it themselves.
I could really go on about open source software, but that’s not the focus of this article. You can read on about there here:
At some point during your research on software solutions you may become aware that your needs are too specific to your business’s design to where there’s literally nothing already out there for you, and you don’t want someone else to manage your application for you. This is when you either hire an in-house developer that works specifically for your company (not outsourced) or use a skilled person you already have, to create an application for you. Most of the internal applications we use in the system administration department at IMH are either internally developed, or open source. It gives us complete control of what features we need.
It’s hard to calculate how much internally-developed applications cost to make. I’d say that if you have a full time developer that you pay $45,000 per year, that’s how much your application costs per year, which is probably too much. Our systems department at IMH is not dedicated to development, but most of us have programming skills so we spend an average of 1-2 hours a day on development among doing our other work.
The only really annoying thing about application development is that you always have people nagging you for changes, features, and bug fixes. The good thing is that if I wrote something, I can fix it. But no one else can…and that tends to be a problem if I’m busy or not around. I them become the go-to guy whenever there’s a problem, and I’m also the person that is held responsible if productivity, security, or anything else is messed up as a result of a problem in my application. Therefore, if you’re going to invest in custom development, be prepared to have to support it and accept criticism and suggestions from picky users – though that doesn’t mean you have to indulge them.
Updates and Expansion
The biggest advantage to in-house development is that you really have complete control. You know what the applications needs to do, and if those needs change, you can do it yourself. This tends to provide the most value for companies that have needs that are too specific to be met by commercial/proprietary or open-source software.