Book Image

Going IT Alone: The Handbook for Freelance and Contract Software Developers

By : Leon Brown
Book Image

Going IT Alone: The Handbook for Freelance and Contract Software Developers

By: Leon Brown

Overview of this book

Table of Contents (19 chapters)
Going IT Alone: The Handbook for Freelance and Contract Software Developers
Credits
About the Author
Acknowledgements
About the Reviewer
Preface

Defining your motivations


Knowing your motivations for freelancing will help you to focus on achieving your ambitions. The following are some of the reasons that have motivated people to get into freelance software development:

Boosting employability

Keeping in mind that the purpose of freelancing doesn't have to be a permanent arrangement, freelancing to boost your employability can be a smart move in times where the jobs market has more applicants per job and fewer jobs available. Graduates often suffer the most from this dilemma, as the jobs they seek demand a level of experience that isn't gained from the lecture theatre, which puts them at a disadvantage when they are competing against people who already have several years of experience.

Freelancing to boost employability isn't primarily about getting the best payment rate, but about strategically building your employability portfolio, so make sure to keep focused on only seeking and accepting the type of work that adds value to this—anything that doesn't fit this motivation will only increase the amount of time it takes you to get to the level of employability that you require. Elements of your employability portfolio you should be aiming to improve through freelance activities should include:

A list of people who would be happy to provide you with a reference:

  • People who are willing to recommend you to people they know

  • Hands on experience of skills specified in the job adverts you plan to apply for

  • An understanding of how businesses work

  • Useful information to use at interviews that demonstrates both your technical and business process awareness

Not to be confused with volunteering or contributing to open source projects, freelancing to boost employability should be specific about where your involvement and responsibilities start and end. The following are some suggestions on what you should make clear to your freelance clients:

  • Payment: Never work for free, as this risks you being perceived as free labor which can generate the perception of your time not having value

  • Rate: The rate you charge for your time is a signal to clients how much you perceive yourself to be worth; setting a rate that is too low can lead to a perception that you don't value your skills to be at the same standard as people who charge a higher rate—or that what you are providing isn't worth paying a premium for. At the same time, smaller businesses are not able to afford the same types of rates that bigger businesses can afford, hence you should research the standard rate for the market segment you are targeting; standard contractor rates in northern England are in the region of £300 per day for mid-weight PHP contract roles in established higher turnover organizations, but you may struggle to get half of this rate for projects with small start-ups, simply because they don't have the cash

  • Time: Specify the duration of your availability in terms of days and working times, as well as the duration of your project involvement. This avoids you getting involved in situations where clients are expecting you to provide support far beyond completion of the project and interrupting your other freelance projects or the job you eventually win

  • People: Be specific about who you want to be dealing with on the project. For the purpose of boosting your employability, you want to be gaining credibility with people who are influential and are well connected, hence being in the position where they can recommend you and provide you with leads. Additionally, you want to ensure that there are specific procedures on how and who contacts you with details relating to what you are being asked to produce; the last thing you want is for people with no authority asking you to develop features that aren't authorized by key decision makers in the client's organization, which could then reflect badly on you and affect your chances of being recommended

  • Tasks: Make it clear what you do and don't do. People often make assumptions about what your job role include, which can lead to clients becoming unhappy when they perceive that you have been lazy by missing out important parts of their requirement. An example of this is that a lot of people think that a web designer also does SEO (gaining high positions on Google), web development, database development, and everything else to do with websites—leading to situations where they complain that the website they have purchased isn't on page one of Google, where this wasn't part of their request. Regardless of who is right and wrong in this scenario, customer dissatisfaction will only result in you not being recommended and possibly causing negative word to spread about you, which goes against your motivation of boosting your employability. Avoid this by clearly stating what you do upfront, even if you believe that the client already knows—stating it to them, preferably also in writing for future reference, avoids any scope for confusion that is detrimental to your primary motivation

Learning new skills

Whether it's learning about organizing finances, negotiation, project management, or new software development skills, freelancing will open many opportunities for you to learn skills that you wouldn't learn in a regular job. In addition, freelancing often offers you the opportunities to learn the skills you want to learn, rather than the skills that your current employer wants you to.

Where learning is a significant motivation for freelancing, consider listing the types of skills and the reasons you wish you to learn and gain experience of them. This could be part of boosting employability, or to complement studies on a formal course, such as a degree. Whichever the reason for wanting to learned new skills, take some time to consider the order and timescales to invest in learning them so that the exercise of learning can be best applied to the purpose. For example, learning a set of skills in the wrong order for the purpose of improving results on a formal course would have little benefit if skills being learnt from freelancing were in the reverse order of the course, as early course subjects will be missed from freelance exercises and knowledge gained to be applied to later subjects in the course schedule could be forgotten.

Taking a break

The motivation to go freelance isn't always as serious as developing a career or a main source of income. Using freelancing to take a break from full time working provides a solution to the following concerns:

  • Employment gaps: When the time comes to go back to full time employment, having a gap of employment on your CV is something that can prevent you from being invited to interviews, as employers can see this as an indication of you needing to refresh your skills in order to become productive. Doing small amounts of freelance work during your break allows you to fill this employment gap with details of the type of projects you have been involved with, which may also benefit your employability due to increased exposure to complementary skills and knowledge gained

  • Network drain: The people you know are the most important asset you have—regardless of whether you are self-employed or employed, so it's important not to cut your connections and to be pro-active about making sure that people remember who you are and what you do. When it comes to getting back into full time employment, having people who can recommend you or who may be able to offer you a position can make the difference between having a significant advantage for getting your next role and simply not being invited to interviews. Additionally, working on freelance projects for an existing employer is a good way to keep options open to return to their employment after you've taken your break

  • Outdated skills: Areas of software development such as front end web development and games programming for consoles have a higher than usual demand for developers to be learning new techniques and to be aware of upcoming technologies. Taking a break of anything longer than a few months introduces the risk of making your skills outdated by the time you decide to return to employment, making it difficult for you to secure your next role. Freelancing during your career break ensures that you are at least aware of new developments and can gain exposure to them to keep your skill set relevant

Increasing financial security

Going into business of any type, whether it is freelance or otherwise, is always a risk that starts with financial insecurity. The financial security from freelancing occurs over time, as you become established with the right types of clients and income sources. The following are details of factors that can combine to make long term freelancing more financially secure—if you are successful and have the right business model:

  • Multiple income sources: Not being dependent on one employer means that if, for whatever reason, a client decides they no longer need your services, you still have the ability to generate income from other clients you deliver your services to. For this to work out, you need to make sure to have:

    • The right type of clients—focus on clients who have the type of turnover (money going into their business) to be able to invest worthwhile amounts into the services you provide; building a business around lots of clients who spend small amounts is both more time consuming and higher risk

    • Trust and reputation—people who spend large amounts are often motivated by buying into convenience in the sense of buying into someone they can trust to get the job done properly and not to cause unnecessary trouble

  • Asset ownership: Developing assets that you own provides you with a significant advantage if you develop something of commercial value, as this provides the option to generate passive income or to sell the asset for a significant amount that would more than justify the amount of time and resources you have invested into it's creation:

    • A major difference between the work you produce freelance and the work you produce under employment is ownership. Obviously, the work you create under an employer's working hours is classed as their property, but it may also be a surprise to find that an employer can own work produced by an employee outside of regular working hours if it is deemed to be within the scope of their employment—that is, if you are hired as a software developer, then software developed outside of their working hours can also be defined as within scope of their employment. This can lead to significant issues should you create something of significant commercial value in your own time while under the employment of someone else

    • Most freelance projects in which you are developing tailored code to the project will have a clause in the contract to state the work you are being paid for is owned by whoever is hiring you—this is fine and to be expected, but make sure that ownership is only limited to what they are paying you to write; that is, make sure that there is no scope for clients to claim ownership of code components written outside of their project, regardless of whether it is used in their project or not

  • Passive income: This type of income occurs where you invest little or no time for it to be generated, and is often as a result of the creation of an asset you have created. An example of passive income is royalties from phone apps; once you have developed the right app for which there is a demand and which supports a revenue-generating business model, the app will generate regular income once it is marketed correctly to persuade people to buy/use the app. Jake Birket is an example of a programmer who set up as indie developer Grey Alien Games (http://www.greyaliengames.com/) and makes a passive income by developing games that he sells through his website and online gaming portals such as Valve's Steam. Once Jake has created his games, he is not limited to how much money he can make, providing that his marketing is able to reach the types of people who want to play his games—and most importantly, pay for them

  • Knowledge: Knowing your financial situation is an issue relevant to everyone, regardless of whether they are employed or self-employed. The advantage of self-employment in this respect is that you have full access to your financials in order to know what you can pay yourself, and of any potential financial issues that could occur. Although being in employment offers you legal protection through employment rights that are not automatically given to self-employed people, circumstances can occur in which an employer who otherwise seemed to be in good financial health goes bankrupt, leaving their employees without pay and looking for new work—something you should be protected against to a degree as a freelancer by being aware of your own finances and not being solely dependent on one source of income, like regular employees usually are

While not being initially the most secure option, with jobs no longer being for life and not necessarily offering you a share of the success your work generates for them, freelancing poses some advantages not offered by employed work—and a greater degree of security if you succeed in becoming fully established; although it should be noted that depending on freelancing as a career isn't for the faint hearted.

Generating a side income

Using freelancing as an activity to earn some money as an activity outside of full time work commitments is a good way to raise money to make purchases such as holidays and hobby interests, or even as a way to increase your savings. Without the pressure of making sure that enough money is being earned from work activities to pay the bills, freelancing to generate a side income allows you to take a much more relaxed approach to how you work and therefore provides more flexibility on which work you accept.

In addition to producing code for other people/businesses, there is the option of creating your own product. This angle has more risk due to not having any guaranteed payment and relying on having the right product features to convince people to make the purchase, but as a side income, this method doesn't risk financial problems and can earn a significant amount if it pays off.

Case study: New Star Soccer

New Star Soccer, created by Simon Read is an example of an independently developed app that achieved commercial success and even beat FIFA 13 and other high profile sports games to win a BAFTA award. The financial success of the mobile game for Android and iOS (iPad and iPhone) peaked at sales generating £7,000 in just one day, and regularly earning £1,000 per day after its release—you do the math to identify how much the game earned.

Not all was plain sailing with the game's development, which had been through several versions until it achieved major success with the breakthrough mobile version. The first version of New Star Soccer was created as a side project to Simon's day job working in IT support and earned him a few hundred pounds per month in sales, which is great to have as a supplementary income to a regular salary and emphasizes the flexibility offered by starting your self-employment on a part-time basis.

Within three years of developing the game as a side project, New Star Soccer 3 was able to generate an average income between £2,000 and £3,000 per month. The sales statistics at this point were enough to convince Simon that taking redundancy from his full time job to concentrate on his game project full time was now viable financially, and resulted in him making his side business full-time. With the project now being Simon's sole income for him and his wife, working on the project was now more serious and not just a hobby that happened to make some income—with the need to make sure that income continued to come in so that bills could be paid and food was on the table, Simon had to work 12 hour days at the expense of a social life. Despite the minor sacrifices for making the project a full-time business, Simon enjoyed a successful first year with continued sales of his game and his wife helping with the admin side.

Although the project had been successful, problems started to hit after Simon was given a £17,000 tax bill for the sales generated by New Star Soccer 3, as well as poor sales of versions 4 and 5 of New Star Soccer and an unsuccessful experiment to launch several separate games outside of the football theme; namely New Star Grand Prix and New Star Tennis. Simon's saving grace was the inclusion of his game Super Laser Race in a game bundle distributed by Valve's Steam game portal; this alone generated £14,000 in just one week and allowed Simon to pay off his debts.

Serious success in Simon's game business didn't return until the release of the mobile version of his New Star Soccer series, which has regularly generated income of £1,000 per day and as much as £7,000.

Several lessons can be learned from the case study of New Star Soccer:

  • Starting a project part-time allows for experimentation to identify where niche demand exists for software products at minimum financial risk to yourself

  • Income generation from developing software products requires time to grow, so don't quit too early

  • Software projects become a lot more serious when you make them into a full time job, so be prepared to commit serious time, potentially at the expense of a social life in the early days

  • Software products need time to mature inline with what users are willing to pay for, hence the first release is unlikely to be the one that everyone wants. Make sure to adapt your software product in response to real user feedback—not just on your own belief

  • Making the wrong software product is costly, if not financially disastrous. Make sure to perform market research to identify what there is a demand for before you even start the design process, never mind writing the code

  • Successful sales will never be constant, so make sure you keep savings to accommodate dips in sales and unsuccessful product launches

  • Tax is one of the only things in life that can be guaranteed, so make sure you set aside money you make from your software product sales to cover tax bills at the end of the year

  • Selling software in volume is the key to making significant income. Make sure to have your software available on portals and software stores that your target customers will be looking on to make purchases

Freedom

Freedom comes in many forms, and with being self-employed as a freelancer, the ability to choose the types of projects you work on that fit the lifestyle you want can be one of them. The following are some of the factors that dictate the level of freedom you have on projects:

  • Working times: Projects that don't require you to work on-site often allow you to choose your own working times, which can be useful for managing your work around life commitments such as family. Flexible working times are also important for being able to manage multiple projects, making sure that you aren't dependent on only one source of income

  • Projects: With the flexibility to pick and choose who you work for and what on, you have control over what work you get involved with. If a project or client sounds like too much trouble, you have the ability to turn down the work in order to look for something that's likely to be less hassle. Additionally, there are also your own projects that you may want to develop for sale, which an employer may not be want you to create under their employment; using freelancing to support this project, you can take full control over what you develop

  • Implementation: Depending on the type of projects you are involved with, there is often a level of freedom for you to decide how to implement what you are being hired to create. This could be in terms of the programming languages you use, frameworks or programming patterns. For your own projects, you also have the freedom of deciding which features are to be developed as part of the product

Note

With such levels of freedom, it's easy to become undisciplined to a point that affects your work performance. Where you have freedom to choose when you start work, it's important to make sure that the work gets done, so if you start work late, you must have the discipline to make up the time and even work extra hours where required. Where you have freedom on how to implement a project, you also need to be disciplined to make sure that the code you develop is maintainable and is a good setup for the client—not necessarily what best suits you.

Alternative to unemployment

Facing unemployment is a prospect that most people would want to avoid. For those who are already unemployed and are struggling to get back into work for whatever reason, freelance software development has several benefits:

  • Finances: It's not difficult to secure an amount of work paying more than what the state may pay to support unemployment. With software development being a specialist skill that's in demand, securing a rate for your work that's at least double minimum wage isn't difficult—even if you have much to learn about software development. At the time of writing, typical UK freelance programmer rates start at roughly £15 per hour and rise up to £40 per hour for more experienced and established software developers

  • Employability: As mentioned already, freelancing may not be the permanent goal, but it adds value to your work history and CV by providing you with hands on experience that you can both write and talk about, allowing you to appear more convincing to potential employers

  • Reputation: Making contacts through your freelance activities is a useful asset to securing future work, whether it be employed or on a freelance basis. If you are good at what you do and are able to impress people with what you create, people will naturally recommend you to people, which opens opportunities for more paid work

Fun

All reasons given until this point has focused on the serious aspects relating to career and financial issues, but don't forget that work should be enjoyable. Work that pays a lot is desirable, but no work is worth being involved with if it has a detrimental effect on your life, health, and/or family.

Programming isn't the type of work people can stick with if it's not something that interests them enough to keep motivated when needing to solve tough problems, never mind tough clients. Make sure to choose freelance working for the right reasons—that is the types of projects and clients that don't turn out to be a nightmare and of which you would be proud to have as part of your portfolio.

  • Motivation: Enjoying the work you do is a way to improve the quality of service you deliver to your clients, which therefore increases opportunities for recommendations that lead to more freelance and employment opportunities

  • Engagement: Taking an interest in the work you do will allow you to identify how the software you create can be further improved beyond the initial specification. For client based projects, this can be used as an advantage to sell additional features of interest upon completion of the initial project. If you are developing your own software product, your engagement with the project can be used to identify additional features that may help to increase sales or open new opportunities to evolve your business model