Not legally an Engineer Yet, Call me an EIT
So you’re starting a new business and want to setup your IT services. There are a lot of different things you’ll need and a lot of different ways to set them up. Here are a few items to get yourself started. I’ll try and keep this up to date as I think of more items that may be relevant to staritng a small business. So far Email Services.
Using @gmail looks tacky, at least in my opinion. It is at least not as bad as using an ISP provided address like @telus or @shaw (Goodness why are those even offered). Services abound to have your own custom domain email address.
I haven’t tried the majority of these options, but they are all ones that look quite good on paper and have the backing of a larger company. If you have specific data needs or peripheral services it’ll change what makes the most sense; however, barring VERY strict data requirements don’t go self-hosted. It’s far too much trouble to manage the service on your own, and far too easy to accident yourself onto a black list. Don’t get me wrong there are open source options for running your own mail server, but you’re going to want to have an IT department of your own to handle any complications that may come of it. Even large organizations like Universities know it’s cheaper and easier to just let someone who specializes in it handle the job.
You need all sorts of Cloud computers.
There are a lot of different cloud providers out there. Each with different flavors and different levels of hassle. Some resellers that wrap the larger cloud providers in easier to use services, others that have their own servers. If all you need is computers, then pick a service with a data center near your customer base and load up a virtual machine that can handle what you need. If you need something specific, then, honestly no you don’t. If you’re building greenfield then you want to try and be as non-commital as possible, if google raises their prices then you want to be able to jump ship to amazon, if amazon raises their prices, then jump ship to azure, if again you don’t mind Alibaba jump ship there. There we have it that open source software has made at least early stage vendor lock in substantially less intense, you may have to change a front end piece of your code to change from Lambda Cloud to an IBM function, but you can still change. And if you’re using containerized applications like docker, then you can change without really adjusting anything other than your deploy instructions.
So you have say… 10 employees. Or you expect to scale to that number of employees fairly quickly. How are you going to manage computing for all of these people. Are you going to have everyone in an office, or are you supporting work from home plans. Do these employees need to run specialized software, or are they doing office work type tasks. All of these are going to determine what you need to get. To be fair I haven’t done a fleet deployment so these opinions are just that, opinions.
Bring your own Laptop. This is the cheapest option for you you, but it is also begging for trouble. You have no control over the hardware. You have minimal control over the software. You have no guarantee of security. You have no guantee of reliabilty. You have no guarantee of support. You have no guarantee of compatibility. You have no guarantee of anything. This is still quite often the direction people go with, but I’m not a fan. For one thing, it’s foisting what I would consider the employers reponsibility off onto the employee, and if you’re not paying appropriately for that responsibility, it’s really not fair. Then companies wanting to protect their data will ask employees to sign their systems into a device management and negatively impact their employees ability to enjoy their own laptops during their own off time. Then you have the scenarios where an employee leaves, and will likely be taking any data they loaded onto their machine with them.
Buy a Fleet of Machines. You have 10 employees, you need probably 10 laptops, plus a couple spare. This is where ditching the individual consumer mindset becomes important. You don’t want to be limited when a machine fails. Don’t fall into the trap of thinking of this as a one time expense. Or thinking you’ll replace them as they die. It’s far more effective to plan on their failure at a specific point, before they fail. I may not have done a deployment, but I have taken over active ones, specifically ones that haven’t been preplanned appropriately. The we replace as they fail attitude leads to obsolete equipment hanging on for dear life because nobody wants to go through the hassle of replacing it, until you end up with sudden cascade failures of equipment where your hardware fails consistently. Going the fleet route, I lean towards Framework laptops for their easy repairabiltiy. It’d be easy enough for a small company or IT contractor to keep a handful of replacements parts on hand to repair sudden failures, and order replacement parts in advance of scheduled upgrades. The increased upfront costs should likely balance out over the lifetime of the hardware, plus the customizability is ideal for these potential fleet deployments.
Use virtual machines. If you don’t want to manage all that hardware, one idea that I’ve floated and seems to have a lot of advantages is using a Desktop as a service (Daas) provider. This is essentially where you use remote desktop for everything. If you have physical hardware, you keep it cheap and dumb such that it’s only task is to connect up to the desktop and render it. You could do this either as a single server hosting multiple desktops, or use a more dedicated Daas provider that gives desktops as indiviudal machines with management and control built in. Azure virtual desktops (Microsoft likely makes a lot of sense for hosting these) looks to host roughly $100CAD / month for a team of 10 people connecting up to virtual desktops, although it may be more depending on the exact workload. It may also be less, if you’re willing to suffer an initial loading time first thing in the mornings, you’re not paying at night. Or on Weekends. Or when you go on a company trip. While this risks a blow up in costs if not correctly configured, it also offers substantial advantages for smooth scaling as a business. Small dumb terminals can be purchased and setup with specialized software for relatively cheap and then your monthly costs guarantee a always functional properly backed up system.
I’m not going to lie, I have a bit of a dislike of services like Squarespace. Don’t get me wrong. They can be awesome. And they are easy and quick to set up with a clean looking store front. But all their sites a certain sameness to them. And then once you’ve made your site, they host it for you. You’re locked in unless you want to rebuild your site from scratch. If they were a piece of software you paid $500 for and it exported a site, and they happened to offer a monthly hosting service. I wouldn’t mind so much. But the lock in really rubs me the wrong way.
Why did I state $500 when squarespace has a free tier and doesn’t have any sort of upfront cost like that. Because really it’s just tricking you into not seeing the cost properly. The most basic plan is $252 per year, which being incredibly generous at 5% interest per year is equivalent to roughly $5000 upfront cost. So could you get a clean custom, mobile optimzied site done for that much, well easily. Could you then host it for much less than $21 per month, yeah also easily up to some pretty heavy site traffic.
Hosting a website on your own server requires a few things. You want a static IP address and business level internet. If your site goes down you’re losing traffic, and money. You also should have a real server. The difference between server and desktop hardware is that server hardware is intended to be run 24/7/365, with minimal downtime. Don’t fall into the trap of thinking you need full uptime, going above 99% is going to start costing insane amounts of money. However, 99% is a reasonable target with reasonably priced server hardware. Expect to spend a couple thousand on a good server to last you roughly a decade of service. Ongoing maintenance for security is a must; however, this shouldn’t be a major problem with a proper setup.
Hosting a website in the cloud, is likely the way to go. Several services exist to consider when it comes to hosting. Services like AWS amplify completely abstract away your frontend requirements, and have options for the backend as well which can make hosting cost as little as dollars a month. If you’ve paid for a custom designed storefront running on these platforms, you’re not going to run into any sort of hosting issues and you can sit back and let Amazon handle hosting your website cleanly. I use amplify for my consulting company website, and i don’t pay for hosting because I’m not getting enough traffic to even tick over their free tier. If you have need of a dedicated virtual machine because of how your site is architected, you can get these setup for as little as a few dollars a month, and vertically scale with your demand manually up to massive servers when required.
You can check out an example website hosted on AWS amplify here.
So using AI can be a recipe for disaster for companies. What happens when someone convinces your fancy new AI to hand over your product for no money, or promise things that your company doesn’t offer. This could be the start of a don’t automate things rant; however, I’ll push a middle ground. Put your AI in a box and automate away using more reliable systems. Instead of having a chatbot that will answer any question and potentially make things up, have an AI system which relies solely on preplanned chat flows and hands off customers to your email system the moment that things aren’t directly within its wheel house.
If you’re looking for a Chatbot for your website try Watson X Assistant. I really hope to have the chance to create a deployment of this; however, the idea as I understand it is you have a helpline through either chat or voice, and the AI detects basic intentions which match up to questions or actions that you’ve preprogrammed, and you put points where the AI either provides basic actions you can reliably perform, or has smart hand-offs to humans to minimize the need for humans to answer repeated questions.
Outside of the latest and greatest with AI, there comes the more generic realm of automation. What is and is not worth the effort to automate. A great rule of thumb that I found and have introduced to many an engineer is the XKCD comic “is it worth the time” link. The lesson is that you don’t want to automate tasks which won’t see a return on the time investment; however, the return on time investment is actually quite a lot larger than most people think.
You will obviously be starting with your own phone number. However, this is likely not how you’ll want to carry forward. Using solely your phone as the business number doesn’t work once you start to hire employees. It doesn’t work when you start wanting multiple people to start to answer. But how do you manage this effecively without a significant upfront overhead.
Electronic Sim Cards (ESIMS) are an easy solution for giving yourself or your employees additional numbers that they can access from their own phones. A simple pay as you go line, converted to an ESIM to act as an initial business line can be setup and handled for as little as ~$150/ year. That won’t get you a significant amount of time, but it may be sufficient for setting up a clean professional facing phone number. This is a simple solution that doesn’t take a lot to set up and can be easy to hand over to employees at a moments notice, with only a slight overhead of setting the numbers on various profiles assuming that you don’t go with a more long term plan. For those of you not aware, having multiple sim cards associated with your phone (Either E-Sims or Physical cards if your phone supports multiple) means that you’ll be presented with options in terms of which phone to make calls with, and notices as to which number is being called. This means you can tailor the number calling, and your greeting to the appopriate degree of formality.
Google Voice. You may want a more elegant solution. At $10-20USD per month per user you can get phone numbers for your employees and an entire call forwarding system so that people can contact your business without needing to figure out who exactly to call. This is an easy way to get started and present like a much larger business while giving yourself the ability to sit someone in the line-up to direct calls or handle frequent inquiries. Essentially a sales call likely shouldn’t go directly to the CEO, at least unless it’s a truely large contract order.
Full and Proper Business lines are going to be quite expensive. If you’re looking for cell phone plans, then it’s no cheaper than buying as an individual. It’s like your employees make the largest family plan possible, but certainly not cheap. If you’re going for lines in a business office, it’s going to start to get truely eye watering, especially when you start adding all the equipment associated with those phone lines. That said you can get some good deals that I wasn’t originally aware of. Telus Business Connect Voice Plus provides a phone number and auto attendent similar to google voice. There are a lot of optional extras such as different call recording features (I recommend it strongly for dealing with CRAZY clients) and a toll free number to alongside your main.
IP Telephony. A lot of the moderner services are doing voice over the internet and simply interacting with the phone network at an end point to provide a simple solution. These tend to give very cheap results overall; however, some of the cheapest (I Looking at pricing I think one could get it down to ~$5/month) will take a lot of setup and maintenance to get started, and may not be the most friendly. I’ll update this if I come to a more satisfying answer, but for the time being I think traditional esim or voice services are likely your best bet.
If you’re already using a Google Email, seriously this problem is already solved. Stop trying to use something else, you’re already paying for simple through that platform. I’ve seen people pay for google and then proceed to use Zoom when google meet is included in their plan up to over a hundred participants. No advantage. Stop that. Get some help.
Don’t use free accounts though. Free tier accounts tend to have limited time scales (Alongside less annoying restrictions). Nothing looks tackier and cheaper than just letting your meeting run to a time limit cause you can’t be bothered to setup something properly. Zoom isn’t free, but it isn’t so expensive as to make having a call with a client drop acceptable.
There are “Free” alternatives. I have two on my to investigate list “jitsi” and Apache OpenMeetings. Both have their fans, and there are certainly alternative programs; however, these seem to be properly functional and what’s best is self-hostable meaning no monthly fee so long as you have a computer to run it. You could have that computer in your cloud, or physically in your ofifce, and it shouldn’t make any difference.
Every Startup Owner that I’ve known has too many ideas. Honestly myself included in that, although my numbered corporation is mainly for minor consulting work, I’ve had FAR too many ideas to every pursue them all myself. So what do you do when you have a small budget, and an idea that you want to test out. You get a capstone team. A lot of universities do something similar, but the program I’m familiar with works essentially like this:
Honestly considering that you’re not paying anything for the labor. You’re getting a steal of a deal. You’re not getting guaranteed results; however, you are guaranteed a good faith effort to complete the project, and if the team is actually slacking on their end there is recourse in your grading of them.
So you may have a system like google docs which handles collaboration between individuals allowing multiple people to work on the same document at the same time. The primary issue with platforms like this is that you don’t have any form of version control system built into the platform, you also lack significant editing control. There are a couple of less common options which I’d suggest consdiering if you’re wanting to have consistent docuemnts across your organization, and want to have some level of approval process built in for your documentation.
Using Git and Github for document managmeent and control. If you’re already a programmer you’ll be familiar with the platform; however, if you’re not it’s a version control system that functions very well with any text based files. This is the reason that programmers use it. Uncompiled code is text based, and having clear version control of said code, allows for clean testing and management of files when many people may be working on the same project at the same time. The getting familiar time for git may discourage non-programmers from fully seeing the value of it; however, you don’t need to be a git wizard to get enough out of it to make it worthwhile. Simply allowing multiple versions of the files, and merging those versions back into a master is enough to simplify approving document changes over time. The only disadvantage is that git is misserable at handling binary based files. So things like doc files are a no-go. Instead you’d be writing your files in markdown or something similar like latex. There are further advantages here in that you can have really clean documents which always cleanly correspond to the style that you’ve established. No rogue employee will use the wrong colours on a certain document giving a discordant setup.
Using Apache Subversion for file control. Git is non-centralized and you can mix and match repositories as needed; however, apache subversion requires a central server to act as a source of truth. There are some nice things about apache subversion however that may make it preferable to anyone who is set on working in binary files. It handles binary files relatively cleanly storing differentials between them as versions change. There are clean windows utilities that I feel a basic computer literate individual could handle without substantial headaches. Tortoise SVN is on my to learn list and is a client for a subversion server implemented as a windows shell extension meaning that it is smoothly connected into the operating system. It still won’t merge different versions of binary files together; however, as nothing will do that outside of microsoft deciding they want to provide ways to cleanly handle it, the ability to strictly version control documents and work across multiple people may be sufficient to change from google docs or word to Subversion.
Windows File History is underappreciated and should likely get more use than it does. Useful for managing groups of peoples home directories and ensuring that nobody accidentally deletes that critical file at the last moment. It’s a fairly simple feature on certain windows versions that allows you to tell windows to snapshot your files at specific intervals and store them at another location. Be prepared for large numbers of files and storage requirements; however, you can setup a system whereby everyones critical documents are backed up according to a set timeline, and old versions are removed according to another timeline. I’ve read in some forums (Cause I haven’t gotten to use the feature in several windows versions) that it may be being sunset or changed into windows backup, but I honestly hope that isn’t the case, as this simple snapshotting mechanism is ideal for any organization with lots of critical data that is being worked on over a time period.