• Software Development Consulting: Some Tips On Structuring Your Contracts

    When I first started out as an independent software developer, one of things that stressed me out the most was how to structure contracts that I sent to clients.  Working for a consultancy in my previous work-life I had seen contracts before, however, I never really paid enough attention to them to know what type of content went into them.

    After quite a bit of research, I found an invaluable resource.  Over at techrepublic.com, Chip Camden posted a beautifully crafted consulting contract template.  You can see the post and download the template here.  This post was a lifesaver.

    Chip goes over EVERY single section of the contract and gives an explanation of why it’s there.  You can download the template and determine which sections you need for your business, based on his explanations.  It doesn’t get much easier than that.  Of course, I would still strongly suggest you fork over a couple hundred bucks and have a lawyer look over the contract before sending it off to clients.

    How To Sign Contracts Online

    Once you have your contract in place, you will need a way to get your clients to sign it.  You could go the old-fashioned way of scanning, both parties signing, and scanning again OR you could use an online signature service.  One that I use and highly recommend is RightSignature. I know those guys personally and have had a great experience with the service so far.

    Here is my process:

    This is what I have found works out well for my business.  #proTip: I have my assistant do this now 😉

    1. Complete the contract blanks in regards to rates or any other information you want the client to see before they sign the contract.
    2. Upload the contract template to Google Drive (optional).  Make sure your company info is completed and all of the other fields (dates, signatures, etc…) are blanked out.
    3. Once inside of your RightSignature account, you can connect to your Google Drive and import the document in.  You can also upload them directly from your computer if you don’t want to use Google Drive.
    4. RightSignature lets you put text fields and date boxes in the blanks and specify who is responsible for filling them out (you or the client).
    5. Finally, add the signature fields at the bottom and send off the document for signing.
    6. Once every party has filled out the needed information, the completed document is then sent to both parties via email.

    Other Considerations

    Often times, the client will have their own contracts for you to sign.  This isn’t necessarily a bad thing.  However, make sure that you read over it carefully and run it by your lawyer.  Don’t try to force your contract on a client that already has their own.  They will usually not be open to this, in my experience.

    Make sure to have an ‘exit clause’ in your contract in case things go sour.  I seldom enter into fixed bid contracts so I usually have a clause where either party can cancel the contract with 7 days written notice.  This also makes the client feel at ease as they are not trapped with you in an event where their situation changes.

    Finally, be willing to be flexible.  Sometimes clients might not like certain clauses in your contract.  Be willing to change things like delivery dates, invoice dates, invoice periods, rates, etc… on a client to client basis.  Obviously, use your best judgement here.

    Conclusion

    I hope that you have found this post useful and it saves you some time hunting down a contract template.  I am always open to suggestions so if you see anything else that works for you, I would love to hear about it via email or in the comments.

    Please consider signing up for my email list to get killer posts like this one delivered to your inbox.

    *Disclaimer: I am not a lawyer and do not claim to be giving any real legal advice.  I am simply stating how I do things with my business.  Make sure to consult with a lawyer before engaging in any contracts.

    Tweet

  • Being An Indie Software Developer And Signing NDAs

    Very frequently, I receive emails that go something like this:

    “Hey Brandon, I have a killer project idea. Do you want to work on it?  Please sign the NDA so we can talk.”

    Early on when I first started consulting, I would have responded with something like “Sure send it over!” and signed the thing without hesitation.  As of late, I have changed my view on NDAs; at least in this type of situation.

    For those that don’t know, an NDA (non disclosure agreement) is a contract that is intended to protect the intellectual property of the client.  They make a lot of sense, especially in the event that the deal goes sour.  Say a client has some great idea for how to better take selfies that is going to revolutionize the selfie game.  If he doesn’t get a developer to sign an NDA, the developer could potentially be free to discuss the idea with others, leaving the idea open to be stolen.

    Why I Don’t Sign Preliminary NDAs

    In the scenario I mentioned above, it would be very unwise of me to sign this NDA as I don’t have enough information about the product.  This puts me as a consultant at a huge risk.

    Say for example I am working on a photo/video sharing app (I get roughly 1 request a week for some spin on Instagram). Now, say the incoming project is some variant on photo sharing. If I sign the NDA, it now now puts me in a conflict of interest with my existing project.

    Even if I knew that the project was a photo/video sharing application up front, I still would not sign the NDA.  Much of the time (as mentioned above) clients want very similar applications.  If I went around signing every single NDA that came across our desks, I would be out of business after the first client.

    When I Will Sign NDAs

    Well, the first thing that I do is ask for clarification on the project and tell them my NDA policy.  I basically tell them that I am happy to sign the NDA if one of the following conditions are met:

    1. There is extremely proprietary information (you can’t land a big enterprise contract without first signing an NDA)
    2. We are ready for project kickoff and all parties are aware of any potential conflicts

    In addition to that, if I am currently working on a project that is of similar type, it would be worthwhile to disclose that information to the potential new client (not the proprietary info, just that there is some overlap) so that they can choose whether or not to proceed.  Better to possibly lose the new client than end up in a crazy legal battle.

    If the new client refuses to give you any more information, then they are not worth your time.  They will most likely be too challenging to work with down the road anyway.

    NDAs Are Not Set In Stone

    When you do finally decide to sign the NDA, know that it is not complete until you sign it. If you see something that you don’t like or want to add any additional clauses, feel free to propose those to the client.  Most clients will be very understanding.

    That being said, it’s VERY IMPORTANT that you read all the way through an NDA and possibly run it by your lawyer before signing.

    Suggestion If You Want Your NDA Signed

    If you want a developer to sign your NDA, make sure to give him enough information about your project for him to make an educated decision.  If you just say “I want a photo sharing app” and expect an NDA signed, good luck.  Make sure that they know there is proprietary information involved and that you are doing something different that must be kept private.

    An NDA is not required if you want to make say an “Instagram Clone For Puppies” or a “Miley Cyrus Flappy Bird Clone”.  Be sensitive to the uniqueness of your idea and decide if it really warrants an NDA.

    Also note that developers are not out to steal your idea.  They get pitched hundreds of ideas and most of the time your idea falls into 3 categories anyway:

    1. It’s not unique
    2. There is a technical challenge and that’s why it hasn’t been done (I get pitched a lot of ‘Map a grocery store so that my list will navigate me around’ ideas)
    3. Your idea is so niche and so unique that the general audience won’t get it and it won’t be profitable anyway

    I’m not saying that every idea falls into these categories. But a good majority do. Most of them fall under #1 and that’s not necessarily a bad thing.  Google fell into #1 and look where they are today.  Just keep these things in mind when requiring a signed NDAs before you will give out any info.

    Conclusion

    There has been quite a bit of discussion lately (especially on Hacker News) about whether or not to sign NDAs.  Most of the recent articles I have read are simply titled “I Will Not Sign Your NDA”.  I feel that NDAs have there place, but you should sign them only with extreme caution.  Examine each NDA on a case by case basis and determine how it will affect your business in the long run.

    *Disclaimer: I am not a lawyer and do not claim to be giving any real legal advice.  I am simply stating how I do things.  Make sure to consult with a lawyer before engaging in any contracts.

    Tweet

  • What I Learned In My First Year Of iOS Consulting

    Wow, I can’t believe it has already been a full year since I struck it out on my own.  Last year, I published a post after my first month on doing contract iOS development.  Needless to say, I have grown and learned quite a bit over the past year and I wanted to share some of those experiences.

    Income

    While I won’t share exact numbers, I left my 6 figure/year job to pursue the indie/consulting life.  During the course of the year, I was able to amass 40% more income in 2013 than I had at my previous position.

    In addition to that, I had the time to launch a couple iOS applications and thus upping my Apple income by about 20% this year.

    Network Network Network

    I would say spending time networking and meeting people is just as important as being able to write code if you want to be successful on your own.  Through out the year, I dedicated at least five to ten hours a week just meeting with people, talking on the phone, and making new connections.

    Often times, I would get contract opportunities that I knew for sure that I wasn’t going to take; either because I didn’t love the project, or (more often than not) because I didn’t have the bandwidth to take them on.  However, rather than just writing the client back “I don’t have time“, I would take the call (or meeting in town), make the connection, and even listen to details about the contract.

    My wife would tell me to stop wasting my time and that those hours would be better spent on project work that actually made money.  However, these contacts are arguably more valuable than the hours “lost”.  In many situations, I have reached out to those potential clients weeks or months later once I hired a new developer and was then able signed a contract.  If I had declined the meeting to begin with, they probably wouldn’t have been as inclined to work with me so readily.

    Subcontractors

    Subcontracting has been a mixed bag for me.  It seems to be the only (safe-ish) way to expand your business as a consultant, other than hiring full time developers.  So, if you want to be able to work less yourself (which is almost never the case) or increase your companies revenue, you need to hire out.  

    Once I found the right people, subcontracting was a dream.  I was able to reach more clients, still deliver the same value in the work, and achieve the client’s goals, all while expanding my business.

    The main challenge I have had is deciding whether to hire subcontractors from here in the states or “offshore”.  They both have their benefits and complications. Here are some I have found:

    Benefits of hiring in the states:

    • Communication – Most of the time their timezones are close enough that one of you is not inconvenienced to communicate in real time.
    • Trust From Clients – Some clients still have some issues with “offshore”, especially because many of them have tried their hand at the ODesk lottery and have lost.  So, saying you have US based team members sometimes makes them more comfortable. It’s unfortunate, but I have seen it to be true in some cases.
    • Colleagues – Often times you already know or have worked with these guys since starting with acquaintances/friends is a good place to look for developers.

    Complications hiring in the states

    • Cost – US devs are expensive.  Most of the time they have full time jobs and want to do consulting on the side.  So it is important that they get paid more to do contract work than their day job pays.
    • Colleagues – This is on the negative list as well because hiring people you know can get weird if things go awry.

    **Benefit of Offshore developers **

    • Cost – I put this here, however that doesn’t mean I hire “cheap” developers.  Honestly, if you are not paying a contractor well, you are either under paying him and should give him a raise OR he shouldn’t be working for you as he’s probably too junior.
    • Perspective – I have some incredible developers in other countries that have taught me quite a bit whether it’s about development, process, culture, or even my own code.  It’s a great opportunity to learn.

    **Problems with Offshore developers **

    • Location – Timezone issues can be a problem if you let them.  For example, I have a developer who lives in a completely different timezone than my own.  However, he does a fantastic job of being available when he is needed.  I have had other instances where it was very challenging to reach my developer in an event where I needed information on short notice.
    • Vetting Process – Finding developers is a little more tricky.  With devs in the states, you can just head to a local meet up or conference, but finding GOOD “offshore” devs is a little trickier.  I have lucked out a few times, but for the most part it’s a bit more work.  I would suggest spending a little of your own money to adequately search and vet each candidate.
    • Language – While doing iOS development, you may need your client and your developer to communicate with one another.  That being said, it’s vital to find a developer who you can understand and who can understand you in order to make communication possible.

    Hiring An Assistant

    Taking a page from Tim Ferris’ 4 Hour Work Week, I decided to hire an assistant.  Ferris suggests “virtual”, however, I have hired one locally (she’ll be proofreading this post 😉 ).  I think it’s one of the best decisions I have made as a business owner.  Here is just a short list of things she handles for me:

    • Contracts
    • Invoicing
    • Payments of contractors
    • Research
    • Phone calls
    • Personal issues (like returns, purchasing equipment, etc.)

    Even if she saves me two hours per week, she has paid for herself, and believe me, she saves me much more than that.

    Never Decline A Contract

    I mentioned this earlier in the post, but I want to reiterate it here.  I seldom tell clients “no” and I really feel that it has worked out to my benefit.  At the very least, I hear them out and add them as a contact to keep in mind for the future.

    What I generally do when I can’t take on a client is I will give them an estimate of when myself or a member of my team will be available.  That way, if they are okay with the timeline, I can keep the pipeline open.  If not, there is no harm done.  Also, if I hire another developer before the time I said I was available, sometimes the client will still have the need and I am able to fill it.

    If I absolutely don’t have time or don’t want a particular contract, I will refer the client out to other dev shops.  I don’t look at this as competition, but rather opportunity as I would hope they would do the same for me one day.  As an added bonus, some of them have a referral fee so you can at least profit from pairing the client up.

    Taxes

    I have found out that taxes are less fun when you are self-employed than when you are employed by a business.  Luckily my wife is MUCH better at money management than I am, so she set up a separate tax account where roughly 40% of our income would go.

    One of the other good decisions I made besides hiring an assistant was hiring a CPA.  She has saved me countless hours and fees and is worth her weight in gold.

    Hire a CPA from day one; you will never regret it.

    Family

    I know this is a “business” related post, but I have to mention this.  Having a wife and kids, I am very much a family man.  Working for myself has been such a blessing since I have been able to spend considerably more time with my family than when I was employed by someone else.

    For example, if it’s a nice summer day and the family decides to head to the zoo, I can just go without asking a boss for time off or taking PTO.  I simply work in the evening or more hours the next day to recoup the time.  Personal time management is key to be able to have this kind of freedom.

    Summary

    Overall, 2013 was an incredible year.  While I did make mistakes (a ton), I gained so much knowledge and had a blast doing so.  Going solo isn’t for everyone (some days I wonder why everyone** isn’t** doing it, and others I wonder why I am), but it’s been one of the most exciting experiences of my life.

    I look forward to what 2014 brings and seeing how I can continue to grow my consultancy.

    Happy New Year and Happy Hacking!

    Tweet

  • The Top 5 Places To Find Good Software Developers/Contractors

    One thing I am often asked is “Where can I find good developers/contractors/subcontractors?” While I have found talent many different ways, I wanted to share my top 5 with you.

    This post should be useful to you if you have a project and are looking to find a developer OR are a developer looking to subcontract some of your work.  I am sharing these based solely on my experiences with them and hope you find value in this list.

    1. Local Meetups

    Local meet ups are the absolute best place in my opinion to find developers.  Almost every city in the nation has some sort of group meeting on a regular bases for a given focus of development.  You should have no problems finding a rails meetup group, iOS, Android, etc…

    I would suggest finding out about such meetups in your area by Googling phrases such as “[your area] iOS meetup (sub iOS for rails, python, etc…).  I regularly attend a “Cocoa Heads” group full of incredibly smart and capable mobile developers all willing to work on projects.

    These types of groups are always excited to have clients come in and pitch their ideas.  One piece of advice though, don’t go in to these groups and start with “I have a great idea and I will give you a percentage of the company in exchange for development”. They will stop listening immediately.

    This one is going to require a bit of work and research on your part, but I will get you started.  Around the internet, there are a few of what I call “celebrity developers”.  These are generally guys who have made a name for themselves and who are established as experts in their space.

    While many of them are not taking on contract work themselves, they may or may not have a mailing list of interested contractors.  One such person that does exactly this is Ray Wenderlich and I happen to receive emails on his contractor list.

    Even if these developers don’t have lists, they generally have plenty of connections to point you in the right direction.  Like I said, this method isn’t easy, but it can definitely have one of the biggest payoffs in terms of quality developers.

    3. Specialize Project Sites

    As of late, quite a few interesting sites have been popping up that have solved a fundamental issue when it comes to pairing developers with projects. The problems are 1. it’s hard to find good developers and 2. it’s hard to find clients with realistic cost expectations. That’s why ODesk exists 😉

    The first of these sites that I have found is OOOMF.  OOOMF is relatively new and you must be reviewed and accepted by their team in order to be a part of it.  It’s basically a private network for pairing developers with projects and it supports all different project types (mobile, web, design, etc…).

    Project owners can put their project up with a relative budget and developers can “apply”.  The process then moves forward with communication between the client and the developers until a price and scope have been reached.

    There is an additional overhead of 15% for using this service, but I think it’s well worth it.

    Another one of these sites that is more mobile centric ishttp://apphappening.com.  This site is very new and I have only just begun to use it.  I should have a better review of them shortly.

    4. Twitter and App.net

    Twitter and app.net are definitely the preferred social network of serious developers.  I would steer clear of Facebook and Linked in as this is generally where the recruiters hang out. Your message will most likely get dismissed as spam.

    I’d suggest searching Twitter/App.net for the keywords of your project (iOS developer, rails, etc…) and find the folks with a ton of follows and a very small following to follower ratio. You will know them right away.  Also, most of their blogs come up first in Google for many related keywords.

    5. Developer Conferences

    This one might cost you a bit of money, but is definitely well worth it.  There are conferences for every focus of software development and they occur all throughout the year.  These conferences generally have a HUGE percentage of professional developers who are just as eager to work on a project as you are to have them.

    One of my favorite iOS conferences is 360iDev. It’s very indie-centric and offers an incredible community of iOS developers of all abilities.  If you are looking to get a mobile project done, I strongly urge you to attend.  While I can’t speak for conferences in other areas(web, etc…), I would really love some suggestions in the comments of this post if you are up for it!

    6. Bonus – Right Here

    Shameless plug time.  If you are looking for professional mobile app (iOS or Android), I have a team of developers and am always looking to work on new and exciting projects.  If you want to hear more about it head over to my Hire Us page or shoot me an email brandon @ pixegon [dot] com.

    Conclusion

    Whether you are a person/company looking to hire developers or a developer looking to hire contractors, I hope you have found this post useful.  Your feedback in the comments is greatly appreciated.  Best of luck with your search!

    Tweet

subscribe via RSS