Outsourcing
28 Apr 2014
I've been running elsten sofware for almost five years now. I follow a fairly standard 9-5 Monday-Friday where possible, plus reacting to the odd emergency situation, if one occurs at the weekend. Other than that, that means the weekends are supposedly kept free. In reality I've had very few days where I have done nothing for the business on a weekend day, whether it's simply checking or actually answering emails. Holidays longer than a weekend work like weekends; no 'productive' development work, but I do check and answer emails.
I want to change this. While I don't think I'll ever get the business off my mind, I think by enabling myself to not have to perform any type of task for the business for several days in a row I will become more relaxed, and holidays and weekends will be more relaxing as a result. Everyone needs downtime if only to refresh your mind.
Furthermore, of course, time is money. Time gained avoiding work unrelated to elsten software's core competencies (computer software development) is time that can be spent on making bliss or OneMusicAPI better, improving the business.
Just running elsten software on a day-to-day basis it soon becomes clear what tasks need to be outsourced. There are different categories of these tasks. Most obvious early on were skilled tasks, which are beyond my competence to complete in a satisfactory or timely manner. An example is year-end accounts. I have always used an accountant.
On the other hand, there are very monotonous tasks; these are easy to spot over time. I used to personally reply to bliss sales with the same email. I occasionally customised these emails, but only very occasionally, so the benefits of sending these manually were pretty scarce. Another example is month by month book-keeping; keeping track of income and expenditure. These two different examples show two different solutions. In the former's case, I was able to automate "thank you" emails totally by sending an immediate email response via my servers when a customer completed a purchase. In the latter case, total automation of book-keeping, without a completely integrated financial and banking service, is impossible and so I found a reputable assistant online via ODesk. This has been working very well since.
Those are the low hanging fruit; tasks that have been fairly easy to outsource because they are easily describable. In recent months I've been attempting to take this further with outsourcing customer support. However, one of the big concerns I have is heading off on holiday and a problem occurring on a server which stops some critical part of our infrastructure from working. As a result I'm now looking at outsourcing operational sys-admin tasks on the various servers elsten software operate.
Outsourcing system administration
This is probably the biggest outsourcing challenge yet; supporting elsten software's servers is a business critical process. If our servers die, we stop gaining revenues. Documenting our architecture and processes require a precision and level of detail beyond what I've had to provide so far.
My thoughts so far are to separate documentation into two areas: architecture and processes. Architecture will describe the machines we run and the services that run upon them. Then, in more detail, how to administer the machines and common tasks on the machines.
Processes describe common day-to-day operations. They may describe common troubleshooting procedures, or routine maintenance. I'm thinking of modelling this as an input (this might be some sort of alert or notification, or even a time based event) to which a prescribed set of actions should be performed.
For example, I use Are My Sites Up? to notify me when a server becomes inaccessible. I write an event for a "DOWN" alert from Are My Sites Up?, describe the reasons this DOWN alert may be sent, and describe remedies. If none of these work, it's time to contact me.
As well as reacting to events, there are some routine tasks on our servers. There's the monthly Aggregated Database extract and import, for example. This takes a couple of days to perform because of the time taken to extract information from the constituent databases, and while that's not two days of solid attention, it still diverts my attention from other things so it would be better for someone else to do it.
Stepping back
I've learnt that one reason that it's best to approach automation by first using humans is that you really begin to learn all operational aspects of your business, and get a feeling of where the inefficiencies are.
But the next step is to act on that; iron out the inefficiencies and outsource to others. I think that's the best way of building a sustainable business, not just in terms of financial sustainability, but also your own mental sustainability!
Thanks to pavlinajane for the image above.