Going IT Alone: The Handbook for Freelance and Contract Software Developers - Leon Brown - E-Book

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

Leon Brown

0,0
32,39 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

No matter whether you are a student or an industry veteran, self employment adds a new dimension of opportunities to “learn and earn”, whether it be on a full-time or part-time basis. Develop the business acumen and understanding of the link between software patterns and business strategy that you need to become a successful and profitable independent software developer.
Discover how to apply your software development skills to entrepreneurship. Decide whether you just want to earn or aspire to build the next Facebook. Supported by real world case studies and input from industry experts, the book looks at the business topics you need to understand to become an independent software developer. From the initial steps of identifying how you can make a profit with your software development skills, through to making your first sale and managing your projects, you will learn how to manage each of the major steps involved in becoming a self employed software developer – whether you decide to go freelance, take up contracting or develop your own product.
Written specifically for software and web developers, the book identifies how business issues have a direct impact on code patterns used in software projects. Learn how to build your code to support your business model and with safety features to protect against potential threats that may emerge from the changing business environment.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB
MOBI

Seitenzahl: 743

Veröffentlichungsjahr: 2016

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Table of Contents

Going IT Alone: The Handbook for Freelance and Contract Software Developers
Credits
About the Author
Acknowledgements
About the Reviewer
Preface
What this book covers
Who this book is for
Conventions
Reader feedback
Piracy
1. Introducing Freelancing
The freelance lifestyle
Is freelancing for you?
Defining your motivations
Boosting employability
Learning new skills
Taking a break
Increasing financial security
Generating a side income
Case study: New Star Soccer
Freedom
Alternative to unemployment
Fun
Don't quit the day job
Legal entities
Sole trader
Partnership
Limited company
Home or away?
The home office
Advantages
Disadvantages
The real office
Advantages
Disadvantages
Renting desk space
Co-working spaces
Cafes
Summary
2. Positioning Yourself in the Market
Market segments
Pricing yourself appropriately
Market specific influences
The equilibrium price – segments and prices
Building quality for market segments
Meeting customer needs
Market research
Failing to plan is planning to fail
Cost to market
Cost of delivery
Calculate your profit margin
Time value
Summary
3. Defining Your Business Model
Types of business model for software
Software Development as a Service (SDaaS)
Advantages
Disadvantages
Conclusion
Software as a Product (SaaP)
Advantages
Disadvantages
Conclusion
Software as a Service (SaaS)
Advantages
Disadvantages
Conclusion
Software Supporting a Service
Advantages
Disadvantages
Conclusion
Business Model Canvas
Components
Value proposition
Key partnerships
Key resources
Key activities
Customer relationships
Customer segments
Distribution channels
Cost structure
Revenue streams
Canvas
Problem tools
Product life cycle
Development
Introduction
Growth
Maturity and saturation
Decline
Five Forces Analysis
Rivalry among existing suppliers
Threat of substitute products or services
Threat of new entrants
Bargaining power of suppliers
Bargaining power of buyers
Seven Domains Assessment framework
Market domain/macro level – market attractiveness
Market domain/micro level – market sector benefits and attractiveness
Industry domain/macro level – industry attractiveness
Industry domain/micro level – sustainable advantage
Team domain – mission, aspirations, and propensity for risk
Team domain – ability to execute on the critical success factors
Connectedness up and down the value chain
The McKinsey 7S framework
Goals and shared values
Strategy
Skills
Structure
Style
Systems
Staff
Fitting everything together
The business descriptions
IXL Learning
Nextpoint
Comparison: McKinsey 7S framework
Goals and shared values
Strategy
Skills
Structure
Style
Systems
Staff
Comparison – Business Model Canvas
IXL Learning
Nextpoint
Comparison: conclusion
IXL Learning
Nextpoint
Summary
4. Creating a Brand
A brief definition of what branding is and isn't
Know your audience
Identify perceptions required for objectives
Specializing – becoming a domain expert
Generalizing – targeting a wider audience
Case study
Kick starting perceptions
Doing a good job
Limited time offers
Competitions
Rewarding customer loyalty
Strategic partnerships
Certifications
Influencers
Reliability
Personality
Media exposure
Content marketing
Who do they think you are?
Summary
5. Networking, Marketing, and Sales
Understanding networking
Defining a networking strategy
Writing press releases
Know your audience
Be specific
Integrating your agenda
Make it easy to read
Tips for writing news stories
Enhancing the reach of your media coverage
Open project sources
Project sources
Being selective
Example 1
Example 2
The sales process
Stage 1: Establish the relationship
Stage 2: Recognizing the need
Stage 3: Proposing the Solution
Stage 4: Closing the sale
Stage 5: Delivery and evaluation
Summary
6. An Introduction to Client Types
The ethical client
Characteristics
Progression options
The difficult client
Characteristics
Progression options
The trusting client
Characteristics
Progression suggestions
The nasty client
Characteristics
Progression suggestions
The price-conscious client
Characteristics
Progression suggestions
Summary
7. Managing Clients
Points of contact
Performing risk assessment of the project
Measuring complexity
Key performance indicators
Defining client expectations
Analyzing implications
Defining an exit strategy
Analyzing the client
Commitment
Ethics and difficulty
Financial
Learning and execution
Consistency
Negotiation
Cash flow issues
Avoiding cash flow problems
Summary
8. Negotiation
The Winning Formula
Timeframe
Budget
Depth
Strategic Negotiation Phases
Stage 1: Evaluate Priorities & Characteristics
Stage 2: Depth Reduction
Stage 3: Define Time scales
Stage 4: Terms of Delivery and Engagement
Stage 5: Price Identification
Summary
9. Software Development Resources, Patterns and Strategies
Software problems: A recap
Portable code components
Pure HTML5 applications
Hybrid applications
Code translation
Rescued by object oriented programming
Maximising reusability, minimising duplication
Functional adaptability
Clarity of solution implementation
Strategic efficiency with MVC
MVC: Models
Adaptability strategy
Advantages
MVC: Views
Views in action
Advantages
MVC: Controllers
Controllers in action
Advantages
Strategic data management
User interface consistency with data binding
Database consistency
Relational database tools
NoSQL: Alternatives to relational databases
SQL and NoSQL: The best of both
RDMS with NoSQL
Offline databases vs online databases
API-oriented system architecture
Why create an API?
Delivering data
Developing a HTTP based API
API design
API security
Testing strategy
Security considerations
Version control
Concept glossary
Summary
10. Software Development Methodology
Social factors of software development
Features for preventing problems
Formality
Flexibility
Working hours
Code patterns
Specification management
Skills deployment
Prototyping
Planning and analysis
Time requirements
Knowledge requirements
Budget
Changing requirements
Problem definition
Culture analysis
Technology evaluation
Risk analysis
Viability analysis
Milestone identification
Timescales
Understanding characteristics and learning styles of the client and their employees
Setting expectations and performance metrics
Resolving conflict
Avoiding involvement in client politics
Documenting agreements
Communicating ideas, agreements and opinions
Methodologies of interest
Waterfall model
Conclusion
Incremental model
Conclusion
Spiral model
Conclusion
Agile development
SSM: Soft Systems Methodology
Conclusion
Designing your methodology
Formal structure
Team communications policy
Planning
Testing
Summary
11. Creating Quotes and Estimates
Maths to the rescue: The basics
Performance rating
Client rating
Example
Estimation
Example
Quotes
Example
Risk management
Counteracting risk
Calculating risk
Recovering unaccounted costs
Examples
Maintaining estimation accuracy
Average client ratings
Example
Selective client ratings
Example
Proportionate client ratings
Example
Summary
12. Project Management
Client perceptions
Methods of communication
Meetings
Telephone
Conference calls
E-mail
Social media
Post
Allocating the right people
Who is capable of performing the task?
Who is ideal for the task?
Who is available?
What are the limiting factors?
Written agreements
Feature creep
Risk assessment
Project nature
Team politics
Expectations
Legalities
Defining a specification
Creating a specification document
Definitions
Summary
Requirements
System overview
Design
Timescales
Cost plan
Feedback
Meetings
Survey tools
Prototyping
Email
Conference calls
Release cycles
How often?
Feature order
The parking list
Summary
A. Appendix
Interview 1
Interview 2
Interview 3
Interview 4
Interview 5
Interview 6

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

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

Copyright © 2016 Impackt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Impackt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.

Impackt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Impackt Publishing cannot guarantee the accuracy of this information.

First published: November 2016

Production Reference: 1041116

Published by Impackt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham B3 2PB, UK.

ISBN 978-1-78300-140-8

www.packtpub.com/business

Credits

Author

Leon Brown

Reviewer

Rehan Jaffer

Acquisition Editor

Nick Falkowski

Content Development Editor

Amey Varangaonkar

Copy Editors

Pranav Kukreti

Utkarsha S. Kadam

Project Coordinator

Neha Bhatnagar

Proofreader

Safis Editing

Graphics

Abhinash Sahu

Jason Monteiro

Production Coordinator

Melwyn D'sa

Cover Work

Melwyn D'sa

About the Author

Leon Brown is a software developer and trainer from Liverpool in England. His mantra is that he practices what he preaches and preaches what he practices. With over 20 years of experience in software development, Leon has developed software for legacy and modern platforms ranging from the Amstrad CPC, ZX Spectrum, and Amiga through to the Web and smartphones.

Leon has a diverse range of commercial experience, including the delivery of Internet systems and training for household names, including UNICEF, the NHS, SAGE, and The University of Manchester to projects for small businesses, start-ups, and charities. His experience of working with such a diverse range of organizations has allowed him to understand how to approach the different types of situations affecting software development projects. His projects ranged from the creation of websites and apps to CRM and the use of AI for reporting and decision-making.

Leon regularly writes for web industry magazine Web Designer from Imagine Publishing, in which he has written feature articles and tutorials covering web development. His most notable articles for the magazine provided detailed insight into securing websites against common methods of hacking, such as session hijacking and SQL injection. These articles gained highly positive feedback from the magazine's readers in the following issues.

Acknowledgements

I would like to thank my mum, Phyllis Brown, for buying my first computer, the gift that sparked my interest in programming. I would also like to thank my friends and family for their support over the years to help me become a professional—Chinyere Brown, Christine Bobb, Norman Bobb, The Capos (Mark Smith, George Heron, Ian Kerr, Dan Inwood, Andrew Lee), Jonathan De Vaal, and Ashley Moore.

I've also been very fortunate to have come across great people in business who have provided advice and mentoring: Claire Bicknell of Catena, who provided great leadership in my first commercial project as a student and provided the advice and opportunities to gain the experience that kick-started my career; Jonathan Read of Village Software, who has provided a lot of advice on operating the business side of software development; Jeanne Hatton of Uniti, who provided the opportunity to enhance my early web design and development portfolio that led to greater opportunities; to all these people and others who have been a positive influence, thank you!

About the Reviewer

Rehan Jaffer is a London-based freelance Ruby on Rails developer with a decade of experience. His clients have ranged from renegade entrepreneurs to companies producing software used by the CEOs of FTSE 100 companies. He has co-authored a book on SQL for Tealeaf Academy and has written for numerous technology and programming blogs. His other interests include artificial intelligence, medicine, and physics.

I would like to thank my parents for their constant and unwavering faith in me; my brother Sadiq and my peers Stephen Wight, Michael Weagley, and Timmothy Lewis for their advice, both on technology and otherwise; Liz, Bart, Hazel, Keegan, Martin, Kristina, and many, many more for their friendship and support. Without all of you, none of this would have been possible.

Preface

Whether it is through a desire for better work flexibility, a way to make some extra money, redundancy, or a change in career direction, freelancing and contracting are increasingly attractive options for software developers who create anything from databases and websites through to phone apps and enterprise systems. Drawing from my time of learning lessons the hard way, this book is written and designed to inform software developers at all levels of experience about the business side of freelancing and how approaches to implementing software are as much of a business consideration as more traditional business activities, such as marketing and business planning.

For students, freelancing offers an ideal opportunity to earn and learn, with the added benefit of work-based learning being accepted by many courses as a contribution toward the final qualification. Known as APEL (Accreditation of Prior Experiential Learning), this experience can count for as much as the majority of a qualification if it can be proven that the majority of the course content is learned through experience from work. With most students being young and free of financial commitments (or at least fewer commitments), the main benefit of freelancing is to gain a better position in the job market through CV enhancement and gaining the types of experience that can be used to impress potential employers at interviews. Payment is always nice, but the primary focus for students should always be on building the type of experience that will open future opportunities.

Those who are already working in the industry are likely to find themselves at one point or another in the position where moving into a freelance career is a desire or the only option, but is nevertheless something scary. Unlike students, professionals have to earn real money to pay their bills, hence do not have the luxury of being able to accept work regardless of their budget. This means that professionals need to have more focus on getting the business aspects right to remain profitable. Unlike students, more experience of the same type of work doesn't add any strategic value when it comes to making more money in the long term.

Being successful as a freelance or contract software developer isn't just about having knowledge of standard business practices in addition to having programming skills. Freelance developers need to understand how to integrate software development methods with their chosen business model. With software technologies changing and adapting on a regular basis, freelance software developers need to keep up to date with anything emerging in their field that may affect how they implement their business strategy or risk becoming irrelevant overnight; this is ever more true when working with open source technologies, especially with recruiters for contract roles seeking people with experience of the latest buzzword.

With most people considering the option of going freelance coming from a background primarily of permanent employment, it is all too easy to make decisions that are highly biased toward their technical experience. Likewise, those who have a background primarily in business development can also be vulnerable to making decisions that are too biased from a traditional business perspective. Being successful in freelance software development requires the knowledge of both disciplines to be combined in order to achieve the best outcome. This allows the identification of profitable business strategies that can be implemented in ways that minimize risk.

The focus of this book is to provide an insight into freelancing and contracting, written from a freelance software developer's perspective. With chapters designed to take you from everything you will need to start your freelance business, through to best practices for software development and dealing with clients; you will learn how to avoid costly mistakes by becoming efficient in the way you develop your code, along with how to manage your clients and the people you work with. You will also learn about the strategic business side so that you can clearly identify your approach to win and deliver the type of work you want, along with developing partnerships and other resources you will need to be successful and profitable.

When establishing your freelance operation, you will need to undertake adequate preparation. The chapters of this book are arranged in a logical order that is likely to reflect the different activity stages you will need to engage as you progress. Each section describes the specific activities you will need to be aware of, allowing you to build a business plan that you can continually refer back to in order to keep focused on your goals and see how opportunities are progressing and developing.

What this book covers

Chapter 1, Introducing Freelancing, covers the main considerations to you need to bear in mind for making the move into freelance programming. It introduces the different entity options to operate under, along with considerations for running activities in the early days and the types of freelancing to match your aspirations.

Chapter 2, Positioning Yourself in the Market, covers the considerations required to find the type of work you want and are best suited to. The chapter highlights how to review the market for creating a plan that identifies opportunities for you to carve your niche to win the types of client you can be successful with on both financial and technical levels.

Chapter 3, Defining Your Business Model, covers an exploration of different business models and how they can be applied to your freelance business. You will learn how to create a business model canvas that identifies important elements of your business concept, from strategic partners to customer relationships and key activities.

Chapter 4, Creating a Brand, delivers an introduction to the concept of branding and how it can be applied to all parts of your freelancing, from the creation of your business model through to marketing and project delivery.

Chapter 5, Networking, Marketing, and Sales, presents the options for marketing programming services to your target audience. You will learn the specific differences between between networking, marketing, and sales, as well as how they complement each other.

Chapter 6, An Introduction to Client Types, shows how to identify common traits of clients in order to quickly build a picture of who you are dealing with. You will learn how to use information gained from observations to your advantage when it comes to risk assessment, negotiation, pricing, and project planning.

Chapter 7, Managing Clients, covers learning how to work with clients at each stage of a project to avoid problems that can occur. Discover how risk management, complexity measurement, client analysis, and expectations management can be used to lead projects to a successful outcome.

Chapter 8, Negotiation, introduces a framework for achieving a fair conclusion in negotiations that allow both sides to win. Most importantly, this understanding of negotiation will help you to avoid costly mistakes that impact your finances and reputation.

Chapter 9, Software Development Resources, Patterns, and Strategies, presents approaches to programming that provide benefits for flexibility and coping with changing client requirements. This chapter shows how to strategically construct code to reflect the challenges you are likely to face in your freelance projects.

Chapter 10, Software Development Methodology, introduces the standard processes of software development as used in industry. This chapter compares these different approaches to identify the types of situation they are best suited to. You will learn how to take the best of everything to incorporate into your own methodology.

Chapter 11, Creating Quotes and Estimates, covers avoiding the pitfalls of using a lowest price strategy or guestimates when bidding for work. This chapter will show you how to use information analysis to identify a profitable price to charge for your work.

Chapter 12, Project Management, shows how to apply everything covered in the earlier chapters to projects in ways that strategically protect you. Methods to clarify communications, implement formal processes, identify the right people to allocate, and more are discussed.

Who this book is for

Going down the self-employed route in software development offers many opportunities to develop awareness and skills to enhance your career. Whether you are a student currently studying software development or a veteran software developer already in the industry, this book provides you with insights you need to avoid the pitfalls of self-employment and to succeed with software projects that are profitable and sustainable.

Conventions

In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.

New terms and important words are shown in bold.

Lists

Lists appear like this

Make a note

Warnings or important notes appear in a box like this.

Reader feedback

Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or disliked. Reader feedback is important for us as it helps us develop titles that you will really get the most out of.

To send us general feedback, simply e-mail <[email protected]>, and mention the book's title in the subject of your message.

If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide at www.packtpub.com/authors.

Piracy

Piracy of copyrighted material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works in any form on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.

Please contact us at <[email protected]> with a link to the suspected pirated material.

We appreciate your help in protecting our authors and our ability to bring you valuable content.

Chapter 1. Introducing Freelancing

Instead of jumping head first into starting your freelance activities, the first steps should be based around investigating whether freelancing is right for you. With there being many ways to engage freelancing activities to suit your ambitions and commitments, freelancing provides the flexibility to be a full time or part time supplementary occupation, both offering different levels of risk and opportunities regarding finances and your commitments to operating as a freelancer.

The freelance lifestyle

The life of the freelancer is often one that is misunderstood by those outside of the profession, the typical image of the freelancer being a guy/lady of leisure who chooses their own working hours, takes seven holidays per year, gets the opportunity to travel to luxury locations for work and gets paid lots of money.

Whereas this lifestyle can be the case for the lucky few, the reality is that the freelance lifestyle typically requires a higher level of commitment, discipline, and knowledge of business than the equivalent employed position. Most freelancers don't work 9 to 5, but more likely whenever to whenever, which usually means longer overall working hours. Holidays are usually restricted to fit with the work and cash flow situation, meaning that work will always dictate when it is best to take a holiday and not when a freelancer feels like it—and there is no holiday or sick pay either!

Not all is as tough as it may sound, especially if you enjoy your work and manage your finances well. Pay is typically significantly better than the equivalent employed position on a per hour worked basis, which can be good for your bank balance if you are able to secure the volume of work, whether it be from a longer term project or several smaller projects. A word of caution regarding evaluation of finances is that unlike being employed, the amount as a freelancer will vary each month depending on how much work you are able to secure—so make sure you have enough saved for months to cover where you have little or no work! This is especially the case when working on more demanding projects in which there will a time lapse between completion of the project and finding the next work source.

As a freelancer, expect to work in a wide range of places, from being invited to travel around the country or overseas, to more 'unique' places such as the company basement.

Providers of freelance projects will offer different levels of luxury to freelancers, the best often being the bigger well-known companies who have bigger budgets to spend—so if you're wanting to get involved with projects that take you to sunny places instead of the company basement, these are the companies that you want to freelance/contract with. The only issue is that these types of opportunities are much more difficult to win and you are likely to have to start at the bottom of the freelance work chain—building your portfolio and freelance experience with many smaller and usually less prestigious projects before you are even considered to be considered as a candidate by one of the bigger luxury organizations. In addition to your portfolio, you should consider looking at how you can build your network of contacts in the right places, allowing you to be recommended for the types of opportunities you desire, as they open.

Is freelancing for you?

It sounds like an easy question, but whether freelancing is the right option for you needs some careful consideration and answers to more detailed questions. Questions you should ask yourself are:

Can you afford to be a freelancer?
If you have children or relatives who rely on your earnings, will they suffer if you develop cash flow problems?Does your current financial situation give you enough margin to cope with situations where payments are delayed?You don't want to be in a situation where you lose your home because a few of your clients are late paying their invoicesHealth is an important factor to consider:Are you healthy enough to invest the required effort to succeed as a freelancer?Can you afford health insurance if you are not living in a country with a socialized medical system?
Can you handle being a freelancer?
If you like/need a regular work pattern, then freelancing probably isn't for you. Many projects will require phases where you need to work late and work flow isn't always constant enough to ensure that you can always work set hours on the types of work you want to be doing and are getting paid forDo you have a passion for the services you intend to provide? If you're in it just for the money, you would be better getting a regular job that pays a good salary. If you have skills that are in demand and difficult to find, there's no reason why you shouldn't be able to secure a job with a salary that is significantly higher than the average programmer's salaryIf you can work well under pressure, then you will cope with many scenarios you will encounter as a freelance programmerCan you handle working overtime when everyone else is out enjoying the sun? Working in that company basement at the weekend on a hot day can be extra fun!
Do you have good business acumen?
By being a freelancer, you are in effect being your own business, hence the need to make good business decisions, develop good strategies, and know how to keep your services profitable. If you fail at any of these, you will get into difficulty that will cause you problems on both a professional and personal basis
Do you see the bigger picture or just the next step?
Being able to see the bigger picture of all aspects of the projects you are involved with is an important part of being successful in a freelance career, especially when it comes to programming. This isn't restricted to your technical skills, but also for how everyone else fits within projects, and management of political issues
How well can you communicate?
Success of a project will always depend on good communication. You need to be able to extract the right information from clients to get the job done efficiently and profitably, as well to do the 'right' job. You will also need to be able to adjust your communication style for different types of clients—see Chapter 7, Managing Clients
Can you be assertive if required?
Although not always required, it's important to know when and how to be assertive when required. It's not always good to be assertive with clients, but sometimes this is a requirement in situations where clients are taking advantage or pushing you into a situation that is unacceptable
Are you confident?
If you don't show confidence in yourself, then potential clients won't have enough confidence to hire you—and those who do will quickly lose confidence or look to take advantageBeing able to accept rejection and persevere without being demoralized is an important quality—especially in the early days when you don't have a strong enough portfolio to stand out from the competition. An ability to accept rejection and embrace criticism will allow you to adapt and persevere until you get hired; this is ultimately a numbers game, where you increase your chances of being hired with each project/contract application—using your response to previous feedback to further increase your chances

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 knowHands on experience of skills specified in the job adverts you plan to apply forAn understanding of how businesses workUseful 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 valueRate: 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 cashTime: 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 winPeople: 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 recommendedTasks: 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 gainedNetwork 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 breakOutdated 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 riskTrust 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 elseMost 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 themKnowledge: 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 yourselfIncome generation from developing software products requires time to grow, so don't quit too earlySoftware 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 daysSoftware 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 beliefMaking 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 codeSuccessful sales will never be constant, so make sure you keep savings to accommodate dips in sales and unsuccessful product launchesTax 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 yearSelling 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 incomeProjects: 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 developImplementation: 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

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 developersEmployability: 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 employersReputation: 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 opportunitiesEngagement: 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

Don't quit the day job

As tempting as it may be, it wouldn't be wise to quit your day job to go freelance full time until you have both tested the market and built relationships with a network of good quality clients and suppliers. Even if you land a project that will set you up financially for a few months, there is no security to ensure that there will be enough work to keep you going after the project ends, or even that the project will not run into some type of complication that will jeopardize what and when you are paid.

Being successful in a company employing you as a programmer and being successful as a freelance programmer are two different things that you will quickly learn as you work on freelance projects. If your background is working in agencies who provide services to their own clients, you will already be aware of how there is a need to strategically develop your code to manage on-going change requests, which is something that may be alien to you if you have only worked in organizations who are highly organized and/or have little changing requirements relating to the code you have developed for them. Using your time to experiment with freelancing will allow you to gain an insight to the situations you will encounter on freelance projects and so allow you to learn to strategically design your code for better flexibility that can handle changing specifications—especially for projects where the budget is fixed and the client has unrealistic delivery time expectations.

Instead of seeing your freelance career as an alternative to your day job, start it as an experimental hobby that complements your financial income. The hobby itself should contain both the business and technical skill elements that you want to eventually turn into a full time career. This method allows you to experiment in a way that jumping into freelancing head first wouldn't allow you to - by allowing you the flexibility to make mistakes and build your business model around your experiences. If you are good with both the business and technical aspects of what you wish to turn into a freelance career, you will be able to identify, develop, and refine aspects of your service to appeal to segments of the market that fit the types of ambitions for the projects you wish to work on. It's through this experimentation that you can closely integrate your marketing activities to build a brand and reputation that will enable you to build a stream of work from recommendations resulting from your experimentation—something that you would otherwise not have been in a position to do by jumping head first into full time freelancing.

Legal entities

There are several legal entities that you can choose to run your business under, each having their own advantages and disadvantages. The following are brief descriptions of what they are and who they may be more suitable to.

Sole trader

The most simple of legal business entities, being a sole trader means less paperwork and less hassle, with the advantage of providing you with more time to invest in the work that makes you money. As a sole trader, your only responsibilities regarding tax are to register with HMRC within three months of starting to trade and to complete a tax return each year.

As a sole trader, you pay your tax at the end of each year, unlike working as an employee where you pay tax each time you receive payment from your employer. There is also some leverage given by the tax man, as you are given from 6th April to 31st January to make your payment. This is beneficial for those who plan in advance, but can cause a bit of a problem for those who leave everything to the last minute, if there is a cash flow problem.

Partnership

Partnerships are a great way to combine the skills and assets of multiple people from different backgrounds to enable higher chances of success for a business. An example of this would be someone who has a good background in marketing and business management working with someone who has good technical expertise—allowing them to create a superior product that has the backing of a well-executed marketing strategy and business structure, of which the business wouldn't have succeeded without the contribution of both parties. Good examples of partnership successes have included Steve Jobs (the business brains) and Steve Wozniak (the technical brains) who founded Apple, while Sergey Brin and Larry Page co-founded Google.

Although there are many advantages to setting up a business through a partnership, there are also several major disadvantages:

Success requires both parties to contribute their share to the partnership. Many partnerships fail because one or more parties take advantage of the other(s) by not investing the effort that is expected of themOpportunities can be missed when a decision or authorization is required by a partner who isn't available or contactable—unlike a sole trader, who makes decisions and reacts straight awayDisagreements and disputes between business partners can be damaging to the business and in the worst case scenarios can lead to their destruction

To avoid such problems, planning and precautions should be put into place that protect the interests of all involved:

Creation of a formal contract between all partners that details all terms of the partnership, including percentage of ownership, delegation of responsibilities and the procedure for termination of the partnershipMonitoring of the partnership activities to ensure that all members are fulfilling their obligationsA set procedure for decision making that identifies who has authority to make decisions for different types of situations and ensuring that all parties are contactable as much as realistically possible

Limited company

Unlike setting up as a sole trader or partnership, trading as a limited company requires much more effort to set up and trade—as all accounts need to be recorded in a specific format and submitted to Companies House for their approval. In short, setting up as a limited company results in much more paperwork which results in more distractions from your core business activities and higher admin/accountancy fees.

There are, however, several advantages to setting up limited company:

The business becomes a separate entity from yourself, meaning that any debts are owned by the business. Should the business run into financial difficulties, any debts are separate to yourself—meaning that you wont be forced to sell assets like your house to settle the business debts. Keep in mind that company directors can still be held responsible for company debts should they be proven to have allowed the company to continue trading while insolvent, or for any personal guarantees givenThere are certain tax advantages to benefit from being a registered company once your profits reach a certain level. Your accountant will be able to advise you on this

Home or away?

When setting up as a freelancer, one of the first decisions you will make will be on where you deliver your services. Sometimes the nature of your work will dictate this automatically—as an example, if you will be relying mainly on agency placements, then you will be working at the office of the agency's client. Other than these few exceptions, you will need to decide whether it is best to work from home or a dedicated place of work.

The home office

Working from home certainly provides a range of advantages in convenience for the self-disciplined, but can also prove to be a detriment to productivity for those who are easily distracted by temptations.

Advantages

There are certainly some useful financial and lifestyle advantages in choosing to work from home: