Every modern office uses computers, typically there is one on everybody's desk, and that means that even the smallest office needs IT support. You can outsource your IT needs, but after the company reaches a certain size it becomes cost effective to bring some of these IT functions in-house. Initially your IT department consists of a hardware tech whos job it is to keep the computers and printers running and to install any required software. You would still subcontract things like server management, new networking infrastructure, VPNs, network security, software / database development, etc. As your organization grows your IT department will increase in size to absorb some of these functions. There are a number of ways to configure the IT component of your operation, below are the pros and cons of the common ones.
Staff vs Contractors. If you have enough work for a full time person then you should put that position on the payroll. In-house staff costs are about half as much as what you would pay for contracted services. However there are many tasks and projects in IT that require specialized expertise and are part time or of short duration. It is easier and less expensive just to pay a consultant for this work. For example, you may need someone for a few hours a week to manage server updates or monitor network security, or, if you are opening a new office you may contract with an IT hardware / network consultancy to handle the purchase, installation and setup of all IT equipment at the new location. They would prepare equipment for you so that everything is working when you open for business, and you won't need them again until you setup your next office.
Serverless Environment. This is the simplest setup. Your company has no servers, everything is managed in the Cloud, except for shared printers and network connectivity services. You rent the services you need from a Cloud provider on a pay as you go basis. The huge advantage here is that you are not paying directly for servers or the considerable support that is required to maintain on-premise infrastructure. All your workstations just go straight out to the Internet. You have applications like MS Office running on the local machines, and each workstation has local storage but everything else is provided by the Cloud. Under this scenario you would still need Cloud security advice and network infrastructure consulting but, beyond that, you wouldn't need to hire any IT talent other than hardware techs to serve your desktop computer and shared printer needs. If you wanted to do any custom software development you would need to hire staff programmers and / or third party application developers.
In-house Servers. This is the most common setup. Most companies have at least a few in-house servers. For example, for performance and security reasons, your accounting department may prefer to own and control their own server. If you have a Windows app that needs to be accessed by users on your LAN you will need a server to host it. But with servers come costs; hardware purchases, installation, setup, configuration, maintenance, co-location costs, additional network complexity, server / network security, etc., and all the professional talent you have to buy to set it up and keep it running. So you will need a technician to install, setup and configure your servers, one to setup and configure your network and a security expert. If you are fortunate all this talent might exist in one person. However it is more likely that you will have some combination of staff and contractors to cover all the bases. Once you buy everything and get it set up the costs of keeping it running are minimal. Take in-house email as an example; you might spend $4,000 - $6,000 (or more) on hardware, $3,000 - $4,000 on software and $4,000 - $6,000 on consulting fees to get it set up and running, but then you are done. Your staff hardware tech can add new email accounts as needed. You might bring the server consultant back once a month to tweak the system, but it mostly runs without any intervention. Co-location services might be your biggest monthly expense. So with on-premise infrastructure all your costs tend to be front end loaded, with minimal on-going expenses. Contrast that with the Cloud which is a pay as you go model. With the Cloud, initially your costs are low but as you add more services your monthly expenditures increase, often eclipsing the cost of an in-house solution.
Custom Software Development. There are many reasons to write your own software but the most common one is to implement some business process improvement objective. Once you have defined what you want you can begin the search for an off-the-shelf product that meets the need. Sometimes you can find an OTS product that does most of what you want, and you just live with the limitations. If you conclude that there are no commercially available products that satisfy your requirements your remaining option is to write your own solution. For the purposes of this discussion we are going to assume that you have researched the market and have been unable to find anything suitable.
To begin the custom software development process you will need to hire a business analyst to prepare the requirements document. The requirements document explains what the existing system does and describes in complete detail what the new business process is supposed to do. After the requirements document is complete you will have to hire a systems analyst to work with the business analyst to settle on the architecture and then write the design document. Once the design document goes to the programmers the business analyst and systems analyst will only be required on an occasional basis to clarify any questions in the design.
Having staff programmers or contract programmers write the code shouldn't matter, the result ought to be the same. The disadvantage of contract programmers is that they tend to be more expensive. The advantage of using contract programmers is; when the programming is done you can quickly wind down the relationship. However if you think there might be additional projects after the current one and wish to create some continuity, staff programmers might be a better choice. No matter which way you choose to go with this you will want to get a quote before you begin. The project may turn out to be more expensive than anticipated.
As the software development effort nears completion you will have to hire one or more testers to handle the quality assurance. As the QA proceeds you can schedule the user acceptance testing and organize the documentation, training and support. Once QA and UAT are complete you can schedule the release. After the software is released you will have to provide user support and a little bit of programming time to fix any bugs that may surface.
In Summary. If you have existing infrastructure and in-house talent there may not be any advantages to Cloud services. However, if you do not already have on-premise servers, the Cloud can provide you with solutions that are difficult and expensive to get any other way. Your decision to use the Cloud or in-house servers will have a considerable impact on your IT staffing needs. The Cloud significantly reduces your need for IT people. One area where the Cloud has no implications is custom software development. These costs are same no matter your infrastructure choices.
Comments