- Explain what freelance development is and why companies contract developers
- List what paperwork is generally involved on both sides
- Explain what a Statement of Work (SOW) is
- Explain what scope creep is, and how to avoid it
- Describe the accounting required for freelance developers
- Explain how to price your services
- List some ways to build a client base
- Work with clients w/o killing anyone
Who is interested in doing freelance development at some point? What are your reasons for why?
In all, I did freelance development for about 3 years so far.
- Work anywhere
- Coffee shops often times have slow wifi
- Takes time to get there and set up, no external monitors
- Flexible schedule
- For the most part this is true, but clients still expect you to be available during normal business hours
- No clear division of start and end of the business day.
- More free time
- Sometimes you're working holidays
- No paid vacation
- No sick days
- Lots of money
- You have a lot more added expenses you need to cover
- You're not working consistently, periods of no work or administration
- Short term work
- Contract to hire
- No health benefits, 401k, paid vacation, sick leave
- Specialized talent needed (e.g. Day CQ)
O's Nails
Was supposed to be a few days but dragged out to weeks for $300. If you're able to do better than this, then you're already doing better than I did when I started.
Mistakes made:
- No statement of work, did not define scope
- No requirements, wireframes
- Informal arrangement (No upfront payment, no completion date)
- No real reasoning behind the price, it was just a number thrown out
- Sole Proprietorship
- If using something other than your legal name, need to file DBA
- LLC, INC
- Protect yourself, piercing the corporate veil
- Client Contract
- (NDA) Non-disclosure agreements
- Statement of Work
- Wireframes/Clickable prototype
- Business/functional requirements
- 1099-MISC
- If client has paid you more than $600 that year they're required to submit one
- The IRS uses this form to distinguish different types of income that may not come to you as part of a regular job
- W-9
- Request for Taxpayer Identification Number and Certification. This form can be used to request the correct name and Taxpayer Identification Number, or TIN, of the worker
- Businesses use the name, address and Social Security or tax identification number from form W-9 to complete form 1099-MISC
A SOW is a project-specific agreement outlining the mutually agreed scope of work and the timeframe for its completion. It sets expectations, deliverables, and the price. It may also include information on resources needed for the project, including roles and responsibilities on both sides. The secret to a good SOW is to avoid being vague – if it’s too broad and non-specific, you may end up with a dispute.
A statement of work often times consists of:
- Scope of Work
- Project timeline
- Payment schedule
- What browsers need to be supported
- The technology stack used
We Do Look through example SOW's, wireframes, business requirements and compare and contrast good/bad ones
- Invoices
- Unique invoice number
- Line items of work performed
- When payment is due (Standard is net 30)
- Additional work not agreed upon and additional cost
- http://www.freeinvoicegenerator.co
- Taxes
- Self Employment Tax - Covers Social Security and Medicare taxes. If you were employed by someone, they would pay half and take the other half out of your paychecks each month, but since you employ yourself, you’re responsible for all of it.
- Save up to 35% of your income to be safe
- Quarterly Estimated Payments
- http://www.sba.gov/blogs/how-calculate-and-make-estimated-tax-payments
- 15th day of April, June, September and the following January
- Keep personal and work finances seperate to avoid audits
- Work space
- Cell phone service, computer, etc
You Do Browse at some invoicing solutions, discuss in class some good starter ones for freelancing
You will hear many times in your career the question: "How much does it cost for a website?". My answer: "How much does it cost to build a house?".
Considerations:
- Pick any two:
- Cheap
- Fast
- Good
- Timeline - How much time do you have to complete it?
- Build in time for administration (e.g. meetings)!!
- Are you able to complete the work yourself? Will you need help? How much will that help cost?
- Scope of work - Front end, back end, both?
- What technologies are required? Any unknown technologies that you will have to ramp up on?
- Is there a database required?
- Will you need to purchase any stock photography?
- Who is hosting the site?
- Are we able to deploy code ourselves? Or depending on someone else?
- What restrictions are set on their host?
- How much will it cost to host the site?
- Do they already have a domain name purchased? Is there a testing area already set up or do we need to create one for them?
- What external API's or platforms involved? (e.g. Facebook API, FB Application, etc)
- Licenses required. Do you have to purchase some fonts? Commercial libraries?
- MIT
- BSD
- GNU
- Flat rate One set cost for completing the project.
- Half up front, half on completion
- Third up front, a third halfway, and final third on completion
- Hourly Works well for smaller tasks like updating copy on a website, minor upgrades. Keep detailed audit trail of the number of hours you're spending. You'll need to prove it through some kind of billing software.
- Weekly/Bi-weekly Better for long term engagements with an indefinite completion date
- Be suspicious if you've gone halfway through the project and not received any payment
- Do your research, there are malicious companies out there that will not pay and just keep getting more freelancers to replace old ones. It's difficult to take them to court, especially if you don't have the proper paperwork
- Schedule reminders for yourself on a calendar to represent when you should have been paid
- Lump maintenance requests into a single invoice if possible to make things more managable
- DO NOT assume that since it's a large company that they'll be reliable with payments
We Do
Look at an existing project and walk through the steps that we need to think about
- From previous workplaces. Majority of work from project managers, etc from previous work who needed work done at new agencies. (e.g. Being the lead app developer for US Air Force, and them needing someone who knows how the system works)
- Partner with other developers
- Work with agencies
- Work with recruiters
- Take advantage of social situations. (e.g. Had drinks with next door neighbor, they referred me to a Travelocity recruiter)
- Find a niche, advertise a specialty (e.g. Facebook app developer, Day CQ)
- Build trust
- Complete your projects. Complete is always better than a half done "perfect project"
- Give good advice. Don't just look at what they're asking you to do, figure out the intention and what they're really trying to accomplish
- TEST TEST TEST your own work
- Underpromise, overdeliver
Communicating with clients won't always be the most pleasant experience.
- Scope Creep
- "This should be quick and easy to do"
- Refusing to pay you to get started, regularly behind on payments (e.g. not paying you to do any of the work, you don't have the resources to take them to court)
- Nokia Live! - Just because it's a big client, doesn't mean they are trustworthy. Protect yourself. I didn't have the paperwork, trusted friend who was the General Manager, but he had to fight hard to get me paid after they decided to cancel the project on their end.
Tips:
- Good communication, check emails and be responsive
- Often hear complaints from clients that they can never get in touch with developer
- If they are asking you to rush, tell them you can't continue without materials needed on their end. It almost always comes to a grinding halt at that point once you put the ball back in their court
Pair Exercise
25 min
- Pull from the class repo to get the example Statement of Work and wireframe for today.
- Read through the documents and come up with a list of questions you have based on our discussion today.
- When you're ready, let me know and I'll answer your questions as the client.
- Give a time estimate of hours required and final price. It's up to you whether you want to bill hourly or a flat rate.
So well written. Thanks a ton!