-
Client Deliveries Are Hard
I have been building software for clients for over a decade now and have come to one solid conclusion: deliveries suck.
Maybe I’m just the worst developer in the world and have worked with the worst teams and have had the worst clients… but I doubt it.
I have delivered early, on time, late, with more functionality, exactly the same, and in some cases less functionality (usually due to lack of funding) and still…rough deliveries.
When I say “rough deliveries”, I usually mean angry clients and stressed out developers. Maybe not angry like the hulk (though I have seen it), but at the very least, passive aggressive comments, notes of disappointment, etc…
The reason deliveries are hard is because of a misalignment of expectations. When a client has an idea in their head of how their product should look/feel/function and it’s been burning in their mind forever, us developers are doomed from the get go. We can never deliver perfectly to match this magic piece of software that only exists in our client’s mind.
Also, software is hard. It’s especially hard to get exactly right on the very first pass. Software is a living and breathing entity that needs lots of care and feeding. It’s very tricky to articulate this to someone who doesn’t understand that and is paying you 10’s of thousands of dollars to build their dream.
We follow a pretty strict agile process, so the client usually sees their build at every…single…stage. They also have full control to report issues, make changes, etc… during the build cycle. Still, for some reason, they are always dumbfounded when it comes time to ship.
So, if you are building for clients, cut yourself some slack. Know that deliveries will be tough and most of the time, there is nothing you can do to prevent that.
-
It's A Good Time To Be A (Good) Mobile Developer
If you are a mobile developer in 2018, and are not consulting (at least on the side), you are missing out on a huge stream of revenue.
In the early days of mobile app development (2008/2009), it was fairly easy for an iOS or Android developer to get a gig with large companies (Food Network, ESPN, huge list of other names…). At that time, mobile was so new, that none of these companies had internal resources to support this budding vertical.
Throughout the next few years, mobile would sky rocket and all of these companies would hire internal teams to support their products.
This shift caused a huge disruption for mobile agencies who in the previous years were turning down $200+/hour because they simply didn’t have the capacity. Many of them had to downsize or close their doors altogether. I was a part of one such company and have seen these shifts during the past 6 years of running mine.
I now believe the cycle is coming back around as there is a need for good mobile developers. The truth is, mobile is hard and there is a lot of competition in the space. Companies are discovering that they can’t just hire a “full stack” dev and tell them to build a quality mobile app. It requires a lot of dedication and understanding of the ecosystem. Also, many of the small-medium consultancy in the space have since closed their doors. So supply is down and demand is way up.
I do however feel that the way in which consultants engage with companies has changed a bit. In previous years, most companies were interested in consulting teams / agencies to build their entire solution for them. These days, a “staff augmentation” model seems to make more sense.
In this model, consultants specializing in a vertical of mobile join other teams that lack a particular senior resource. This is a win-win for everyone as a consultant can attain consistent work and a company can hire temporary developers to solve their current problem at hand with no long term commitment. As a mobile developer, if you establish enough of these relationships, you are set on work for the foreseeable future.
We have seen this model play out many times over the past couple years and it has been key (for us) in surviving in this “post-agency” time of mobile app consulting.
So, if you are a mobile app developer (and are particularly good), I’d encourage you to branch out and try your hand at consulting. It’s a great time.
-
How To Lose $300K In One Conversation
Will you work for equity?
After you have been consulting for any amount of time, you are bound to get asked this by a client. You may find yourself struggling to decide whether or not to take some equity or just get paid to work on the project like you normally do. I had one such scenario a while back that I wanted to share. One day a few months ago, I was approached by a local VC in town. Our relationship falls somewhere between acquaintance and friend; let’s call him Joe. Joe has a very successful background and is one of the more wealthy people in my circle of influence.
Joe asked me out for beers to discuss a new opportunity for a mobile project. I, of course obliged and met him out. During this meeting, Joe proceeded to tell me about an application he wanted me to build that would be aimed at teenagers. The gist was:
They would create rooms and the "cool kids" could vote other kids in and out of the rooms
.The offer he made was 30% of the application ownership and profits and a small share in one of his existing startups. Given Joe’s history, I knew this would most likely be a successful endeavor, however I told him that I had to think about it. Given the nature of the app, I had some strong moral objections to creating a tool that would allow teens to ostracize each other. This didn’t quite sit right with me.
After taking a few days to think I it, I ultimately told Joe that I didn’t feel right about working on the application. He said “no worries”, and that was the end of that conversation.
6 Months Later…
Some time had passed and Joe and I eventually met up for beers. After a bit of discussion, he said “Hey, I wanted to tell you about that app”.
He then follows with “I found a college kid to work on the application and gave him the same offer that I gave you. I also had a designer do some very basic mocks of the application. While I was out on a trip to Silicon Valley, I mentioned the application to a good friend of mine at Facebook. Well, Facebook has a similar product coming out (turned out to be Rooms) and they decided to give me a quick check for $1.1mm to discontinue work on the product. I then wrote the college kid a check for $333K before he’d written a single line of code!”.
My immediate thought was “at least I still have my values”. It’s pretty funny to look back and think about how I could have made so much money so quickly. However, even if I had known the potential payout up front, I don’t believe I would have still taken the project. It would have eaten me up inside.
The takeaway of this story is twofold. First, I’d urge you to choose your compensation wisely. Before this encounter, I would always give a hard “no” when asked about equity share as part of compensation. I now take it on a person by person basis. Second, don’t compromise your morals for money. I look back on this story as a success and wouldn’t change a single thing about it.
-
Why Start Software Consulting
Want to jump ship and be a software development consultant? This post will detail why this path is a much more fulfilling and safer path than a traditional job.
Diversifying Income
Early in my career, I worked for a software consulting agency. I was in my early 20’s and getting paid way more than I should. One day, my boss called me up and let me go without notice. After interviewing quite a few developers in the consulting space, I quickly realized that this is a very common story. If you work for a company, they can usually let you go at any time for any reason. Given that this is your sole source of income, you are now in an extremely risky situation.
Contrast this with being an independent consultant. Most likely, if you are consulting you have 1 or more clients. In addition to that, you have some sort of pipeline set up. So when you lose a client, you simply pull another from your pool.
Mo Clients Mo Money
The going rate of a senior software development consultant is between $100-$125/hour. At this rate, you are looking at pulling in somewhere between $16K-$20K/month. Working for a traditional company, you would be hard pressed to command this salary even after having 10+ years of experience. I’m not joking, kids who learned to code on Udemy in 6 months were making this while I had a salary cap of around $100K.
Commuting
In the U.S. , car accidents are one of the leading causes of death among young people. Obviously, consulting can help mitigate this risk by allowing you to work from home or close to it. Therefore, further limiting your physical safety risk. In addition to limiting safety risk, not having to commute has financial advantages. Since going independent, my family has cut down our need to a single vehicle saving us money on car payments, maintenance, gasoline, insurance, and most importantly time.
Flexibility Of Location
When you don’t have to work in a traditional office, you are free to work anywhere in the world. This could be coffee shops, the park, or even on a cruise ship. I typically like working in my shipping container office (post on that in the future) or wherever my wife has chosen to take the kids on a field trip that week.
Flexibility Of Time
When I worked at a traditional company, I was required to be signed in and available from 9-5 Monday - Saturday. As you can imagine, this has a huge impact on how you plan your free time. It’s also extremely limiting when you are trying to plan a trip or vacation. As a consultant, you have 100% control over your time. This allows you to live life more on your terms. If you enjoy staying up late and hacking until 3am, you can then enjoy sleeping in until 11.
My wife and I currently homeschool our kids. So when we want to take a trip, it’s literally a matter of leaving our house. We don’t have to ask for time off, we don’t have to plan around other people. We can quite literally drop everything and head to Disney World during the “deadest” parts of the year and enjoy doing things while others are “working”.
I have found this level of flexibility has greatly improved my quality of life.
Unlimited PTO
This sort of goes with what I said above. Traditionally, if you want to take off time you need to:
- Make sure it’s cool with your boss
- Make sure it’s cool with your team
- Give 2 weeks notice
- Fill out paperwork
- Burn through your limited “vacation days”
- Still take calls from vacation because your are a “nice guy/gal”
When you are a consultant, the process becomes:
- Leave for vacation
You Are Your Own Boss
“So, Peter, what’s happening? Aahh, now, are you going to go ahead and have those TPS reports for us this afternoon?” - Bill Lumber
I never want to have a “boss” again. It’s true. I hate the thought of someone constantly breathing down my neck watching my every move. I also can’t stand the idea of someone giving me a “performance report”. When you become a consultant, it should be obvious, but you are the boss. Early on, I would make the joke when my wife asked me to go on a random adventure “Let me check with my boss”. Hilarious right?
Working In Your Underwear
Unless you are a Victoria Secret model, chances are you actually have to put on pants to go to work. Not with consulting! I’m so glad I met my wife before I became a consultant, otherwise there would be no chance of me landing her wearing some of the choice outfits I do during work hours. I find my level of quality goes up with my level of comfort. It never made sense to me why companies preferred “business casual” over “sleep professional”. Seems like millions in lost revenue.
Other Benefits
This list is in no way meant to be exhaustive. These are just some of my favorite perks that I have been enjoying over the years. If you have some others that I have missed, please feel free to add your comments below.
-
2016 Goals
As the new year kicks off in full swing, I am reflecting on my 2015 goals and setting some new ones for 2016.
Here is how I did on each of last year’s goals:
- Create a business plan - Fail. I did not create a business plan for Pixegon. This might have to carry over.
- Grow Pixegon (my mobile consultancy) to 2x 2014 revenue - Success. We not only achieved this goal, but surpassed it. Pixegon did a total of $1.1mm in revenue in 2015!
- **Hire a “director” -**Success. OK, so this one is sort of in the middle. I didn’t quite hire a director per se, however I did elevate my senior employees to more management roles. This allows them to take some of the day to day tasks off of my plate.
- **Move to a weekly -**Fail. But I’m OK with it. This isn’t very important.
- Morning Routine - Moderate. Some days were better than others
- **Blog twice a month -**Huge Fail. I averaged .41 times per month.
- **Take off / reduce workload -**Success. More camping!
- **Give away more than 10% of personal income -**Success. Our family was blessed with multiple opportunities throughout the year to be a blessing to others in addition to our normal donations.
Overall, I’d call 2015 a success. I managed to hit the goals I felt most passionate about, and more importantly, this exercise has helped me to determine what I should focus on. With that being said here are my goals for 2016.
- Professional
- Land ONE new client. Sounds crazy I know, but allow me to explain. Pixegon has been fortunate enough to work with some pretty incredible clients. Many of these clients trust us to be their primary dev team throughout the year. I intend on finding at least ONE more client like these in 2016 (Referrals welcome ;) ).
- Build Something New. As I continue to build a company, it’s often hard to get back to my roots of writing code and actually creating something. I miss this. It provided so much value to me over the course of the years. So, this year, I want build some “side projects”.
- Hire. I hope to grow the team by at least 20% this year. (We are always hiring most positions).
- Personal
- Be more intentional about EVERYTHING. I have really been into a few blogs lately (Mr Money Mustache, The Minimalists, 4-Hour Workweek, etc…). What I have really learned is that I want to be more intentional about everything I do (Family, Time, Money, etc…). Part of this is removing my dependency on my phone, simplifying my life, and scheduling undivided time for the things that are important.
- Stop Complaining. I read this incredible book called A Complaint Free World . He talks about the power of Not complaining. This has really resonated with me.
- Blog Twice Per Month. OK This time I mean it (1 down, 23 to go! )
- Read 5 books. Arbitrary amount I know, but I need something measurable.
That’s it. Here’s to a healthy and productive 2016! Feel free to link me to your 2016 goals blog posts in the comments.
-
The Value Of Quality Assurance
It’s late, you have been hacking all night to get the client a build. Finally, around 2:30 am, you hit submit and publish something to the client and go to bed. When you wake up in the morning, the first thing you see in your inbox is an email titled “Completely Broken!!1!”.
How could this be? You stayed up late, you hacked, you tested and you sweat over this build to find that it crashes for the client when they try to do something obvious.
As developers, we often can’t see the forrest through the trees. What this means is, we get so deep into the code working on a new feature or fixes that we often don’t notice when we break things. This doesn’t mean that we are bad developers, it just means we think differently about development. It also means we can’t personally handle everything.
However, from a client’s perspective, failures like this can really tarnish your brand. They start to get the impression that you are unprofessional and even worse, start to doubt your abilities as a developer.
Enter QA
QA (short for quality assurance) is an idea that someone other than the developer tests the build before the client ever sees it. These people are responsible for
- Regression testing (as in the scenario above)
- Generating a test plan/matrix
- Ensuring parity (if needed) between multi-platform applications
If the QA team is doing it’s job, the client won’t every see these obvious failures mentioned above. This can greatly improve the client’s perception of you/your team.
Basic Process
OK, QA sounds great, how do I get started? Well, it’s actually relatively simple. First off, I assume you are doing some flavor of agile, and hopefully logging tickets for each task. If not, you should (even if you are a one man show). Here is a rough flow that my team follows:
- Developers determine which tickets to work on for the current sprint
- Developers complete a ticket and move it to a “dev complete” column in the task manager (Jira, Trello, Pivotal Tracker, etc…)
- Developers deliver a build internally
- The QA team takes the build and goes through their testing matrix to check for regressions.
- If a regression is found, a bug ticket is created for the responsible developer
- New features are added to the QA test matrix and tested
- If the feature has bugs or doesn’t work as intended, the ticket is rejected and pushed back to the developer
- Once everything passes, the build is green-lit to be sent to the client (usually one build per sprint)
Like anything, you may develop your own version of the above, however this should be a detailed enough outline to get you started.
Pushback
In my experience, clients will generally give you some pushback when you say that you are billing them for QA hours. They will say things like “It’s OK, I can test the build myself.” or “I understand, things won’t be perfect. We will through this together”.
While this all sounds good at the surface, the fact of the matter is, it almost always will end unfavorable. The client might have some level of tolerance early on, but as you start sending them more and more builds, each potentially missing/breaking features, they will become less patient. I have seen this happen plenty of times even with the most tech savvy of clients. Here are a few ways you can build QA into your billing process:
Add it as a line item
This is where you will most likely see the most opposition. Make sure to explain to the client that their time is valuable and you don’t want to waste it. Also, ensure that the cost of QA is drastically less than the cost of engineering or you will get questions like “Why am I paying you full price to test?”.
Be sure to tell the client that QA is just part of your team’s process. You simply don’t operate any other way as you know that this is the best approach for both parties. Hopefully, this will establish your expertise in the domain and the client will respect you for that.
Bake it into the cost of engineering
Often times, you may not bother with too many line items. You may just have something like Engineering $200/hour. When/If the client gives any pushback about cost compared to other shops, simply inform them of all they are getting inside of that hour (Engineering, Consulting, QA, Project management, Office management, etc…). It actually works out to be a much greater value for them than paying say $125/hour for a “code monkey”.
Final Thoughts
I absolutely believe that QA is crucial to the success of any software agency or freelancer. Not only does it allow you to come across as more professional, it also helps keep you sharp as a developer. While I’m not suggesting QA is a silver bullet (I still believe in Unit / Automated testing), I feel that everyone should at least have some layer baked into their process.
-
Ship Products You Are Proud Of
There is a familiar phrase that I hear all too often when a client comes to me with an existing application. It goes something like this:
“Our team spent quite a bit of money on our application and we don’t want to ship it. We are not proud of the product.”
It blows my mind that many developers and development teams are still in business given the poor quality of products that I see getting churned out all of the time.
When I encounter these types of situations, I immediately know that the team (or individual) behind them is much more interested in a ‘quick buck’ instead of the longevity of their company. Poor quality in software is directly related to cutting corners.
A few examples of cut corners:
- Using inexperience developers without proper guidance. I am all for hiring ‘staff’ level developers, however, they must be properly mentored and trained so that there is no compromise on quality. If you must compromise on something, compromise it on time.
- Outsourcing the project without proper guidance. Although I don’t prefer outsourcing given the communication challenges, I am not opposed to it. There are plenty of talented individuals all over the world. However, given the varying degree of abilities and communication issues, one must not rely 100% on an outsourced team to ship a product.
- Not following coding standards/guidelines. This could be things such as: not commenting code, not testing, not leveraging a QA team, or simply writing “smoke an mirror” code.
I can usually identify immediately which of the above applies after spending a few minutes with the code. In fact, I have built much of my business around saving these types of projects.
So I urge you, although it might cut into my market share, *please *build something you are proud of. This is not only the right thing to do, it is also **critical **to your future success as an independant software developer.
-
Your App Idea Most Likely Falls Into One Of Three Categories
During my years of mobile development, I have heard the phrase “I have an idea for an app!” hundreds, if not thousands of times. Sometimes it would be from family members, sometimes my dentist during a cleaning, and sometimes from a naked dude standing in the sauna at the gym. Everyone pitches app ideas to me.
What I have learned from hearing so many pitches is this: apps really fall into one of three (sometimes four) categories. Allow me to elaborate.
1. The app has been done before
This is the most common category of app idea I hear. Usually, these are along the lines of, “It’s like Instagram, but for finger painters…”, etc… where the user takes an already proven idea and tries to tweak it in some way that they feel makes it new. Most of the time, these people have not even done any research to check as to whether or not a solution already exists.
The biggest hurdle in developing an app that has been done before is visibility; How are they going to get people to find the app and why should they choose it over the competition?
2. The app idea is too niche
Every now and again, I will hear a truly unique idea. Keep in mind, unique does not necessarily mean good. For example, I might hear, “I want an app that you can take photo of your cat, put it on a weather balloon, and send the balloon to space. ‘Catz In Spaze!’”. While this is unique, and *technically *feasible, one would be hard-pressed to make a real business out of it as it would be hard to get enough users on board to make it profitable.
3. There is a reason the app does not already exist
“I want an app to map out all of the grocery stores layouts in the world, so husbands can finally shop efficiently!” This is a great idea. It really is. So great, that I have literally heard it no less than ten times from various people over the years. Often times, I can predict when someone is about to pitch this particular idea, just by the setup: “You know how, like, shopping is hard, and like, you can’t find stuff…”.
There are some real technical hurdles surrounding this problem. While there are a few apps that have tried to solve it, no app will really accomplish the goal unless they have all of the following: total store participation, a large enough group for crowdsourced data, faster and more reliable GPS to know exactly where you are in the store, stores stop changing layouts, etc… You get the idea. There are a lot of reasons a solid solution for this does not exist.
There are other countless examples of app ideas falling into this category. Another fun one I get pitched is a killer app that converts any photo into a (caricature) [http://en.wikipedia.org/wiki/Caricature]. I’m sure someone will link one in the comments, but they are all mediocre at best.
Bonus #4: The app is used to augment their existing business
This is actually my favorite type of app to work with. The user has an existing business and wants to build something that benefits their business in the mobile space. I see ideas from evaluation tools for employees to apps that allow users to order products directly from the business.
I like these because the success of the business does not depend entirely on an app. Also, there is generally an audience built right in at launch time so everyone is happy.
Conclusion
I am not writing this post because I’m jaded and sick of hearing app ideas. Quite the contrary. I love hearing app ideas and would love to hear examples challenging the stereotypes that I have created here.
I give this spiel to clients from time to time and wanted a place that I could point them to, so feel free to send your clients to this post the next time you get the grocery store mapper pitch.
-
Goals For 2015
It cannot be overstated that writing down one’s goals is critical to acheiving them. Pair that with sharing them with others who might help keep you accountable and your probabilty of achieving those goals goes way up.
With this in mind, I have decided to share my 2015 goals here on my blog in hopes that I will do a better job of acheiving them in the new year. I tried to focus on more measurable goals rather than things like “eat better” and “exercise more”.
So, here they are in no particular order.
Professional
- Create a business plan
- Grow Pixegon (my mobile consultancy) to 2x 2014 revenue
- Hire a “director” to help with oversight of current developers
- Move to a weekly rate instead of hourly
Personal
-
Be consistent with morning routine
- wake up early, pray, blog, mediate, read Bible, write down MITs,
-
Blog twice a month
-
Grow the blog’s mailing list
-
Take off / reduce workload on Friday’s to spend the day with my family
-
Launch Autumn Village
-
Give away more than 10% of personal income
This list is definitely not complete, however it’s a good start. I hope to refine it over the coming months and more importantly, stick with it.
What are your 2015 goals? I would love to hear about them in the comments or via email.
-
Software Consultant Contracts: Fixed Bid VS Time And Materials
One of the most common questions I get from software consultants is whether or not to accept fixed bid contracts. In this post, I’m hoping to shed some light on fixed bid vs. time and materials contracts and help you make the best decision for the project at hand.
Let’s start with some definitions to help you better understand what I am talking about.
A fixed bid contract is a contract where the developer and the client agree on a price and/or timeline up front for a particular contract. If additional time is needed, there must be some sort of change order issued to and signed by the client.
A Time and Materials contract is a contract where the developer and the client agree on an hourly rate for the development of a project. While there should be some initial estimates up front, the developer is not locked into a certain number of total hours/dollars. If more time is needed than stated in the original estimate, the developer has the freedom to continue as the client’s budget (and patience) permits.
Below, I’ll compare and contrast the pros and cons of both fixed bid and time and materials contracts. Note, this is just from my experience and your experience might vary. In fact, if it does, I’d love to hear about it in the comments.
Fixed Bid: Pros
- You can potentially make a lot more money.
If you are a good estimator (or a bad one and the client accepts an overbid), then this is your chance to get paid whatever you want to get paid per hour. If you bid 100 hours and get it done in 50, you have essentially doubled your rate. 2. *It’s easier to manage the pipeline.
*Generally, when you do a fixed bid contract (again assuming you are decent at estimations), fixing a contract allows you to plan out more contracts ahead of time. Typically the fixed cost comes with a (roughly) fixed timeline. This allows you to project future availability for yourself to work on other projects. 3. *You know what you are building up front.
*If you have done your due diligence (gathering requirements, specking things out, etc…) there should be no surprises. Everything is already laid out for you and if the client wants to change anything, it will require a change order. 4. *You are selling value instead of time.
*This is actually a hot topic lately. Many will argue never to sell by the hour as so much more goes into your rate than just time (your knowlege, history, expertise, etc…) The client wants to pay your for a solution to their problem and that’s infinitely much more valueable than your time. 5. *It’s sometimes easier to land contracts.
*Some clients have a very specific budget. If you can provide a solution to them inside of their budget, then the contract is yours every time.
Fixed Bid: Cons
- You can potentially lose a lot more money.
There is a joke that goes something like this: There are only 2 hard problems in software development, knowing when to expire a cache and accurately estimating working. Generally, the overzealous developer will error on the side of too few hours in order to ‘land the contract’ or ‘please the client’. This usually results in the developer bidding 50 hours and realistically working the 100. 2. Feature Creep.
Clients WILL feature creep. Feel free to tweet that or write it on your forehead. It’s just a fact of life. You, being the super nice developer that you are, will want to please the client and will say something like “it’s outside of scope, but I’ll make an exception”. Before you know it, the app has pivoted and you are building things WAY outside the scope of the initial contract. 3. Can I…? NO! Well, what about…? NO! Just This… NO, NO, NO!
With a fixed bid contract, if you are an experienced developer, you will ALWAYS be telling the client NO. If you are wondering why, see #2. While feature creep creates a tension, so does not allowing the client to change course, if needed. 4. *It’s sometimes harder to land contracts
*If I take a fixed bid contract, I generally error on the side of overbidding. This allows padding for things like QA, small changes, App Store submission, etc. Given the high bid, your client might baulk at the contract and attempt to outsource to India himself, where he will eventually spend double.
Time And Materials: Pros
- *Your work is always compensated
*Given that you are getting paid per hour, you can always count on a steady stream of revenue coming in. This is very comforting to developers since you know you will always get paid the rate you want for the work you do. 2. *Landing contracts can be easier
*Clients don’t always know what they want up front and the idea of not committing to a certain dollar amount is sometimes comforting. It also gives them MUCH MORE freedom to make changes and pivot down the road. 3. *It gives clients the freedom to prioritize features
*This is one of the biggest selling points that clients appreciate when I sell a time and materials contract. Given that my team follows a version of the agile development methodology, clients love that they have some insight as to how much each feature roughly costs. They can see the estimates and translate that into cost. If they feel a less important feature is too costly, they can prioritize the backlog to get more (less complex) features for the same price. 4. *Less Risk
*Since you are only selling the client your time, you don’t necessarily owe them anything except work. Most of the time, time and materials contracts don’t even have an official scope of work attached.
Time And Materials: Cons
- *It doesn’t scale
*You can never make more money than your time will allow. If you charge $100/hour and work 40 hours/week, then you can never make more than $4,000/week unless you work more. 2. *You are a commodity
*The client doesn’t so much look at you as someone who is providing them a solution as they do a “resource”. You are perceived as less valuable and therefore could easily be replaced. 3. *More Risk
*I know this type of contract is listed as less of a risk above, but there is also some riskiness to it. If you get in the weeds on a task or start introducing too many bugs, the client might feel that you are misleading them or incapable of performing and you risk getting released from the project.
Takeaways
While I have only scratched the surface in comparing these two types of contracts, I hope you have a better understanding about which route to pursue for you. My advice is to not be too rigid stating “I’m only going to use contract type X forever” because each contract situation may vary. Use your best judgement and make the decision that is best suited for each individual project and client. At some point in the future, I will post a few tips for making this decision based on some factors, but that is for a later date.
Until then, happy consulting!
P.S. Make sure to sign up for the newsletter below to be notified about awesome posts like this in the future!
-
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 😉
- Complete the contract blanks in regards to rates or any other information you want the client to see before they sign the contract.
- 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.
- 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.
- 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).
- Finally, add the signature fields at the bottom and send off the document for signing.
- 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.
-
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:
- There is extremely proprietary information (you can’t land a big enterprise contract without first signing an NDA)
- 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:
- It’s not unique
- 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)
- 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.
-
Becoming A Software Consultant: My Backstory
I recently published a post about my first year of being an independent iPhone development consultant. The feedback from my readers was incredible, however there was one important thread on Hacker News that I wanted to address. The issues were:
One of my common hangups with these kind of posts is the lack of history as to what lead people to these consulting gigs. Where were you before, and how long were you there?
I found this to be a very valid point. Far too often you see guys posting their end of the year profits from their consulting gigs and they make it sound extremely easy. This can be dangerous as joe n00b might be so inspired that he quits his job and jumps right into the deep end without first preparing himself and assessing the risks involved.
That being said, I wanted to write a bit about my backstory and how it ultimately lead to my ability to strike it out on my own as a consultant. I have read stories similar to mine and there are a few key points that seem to be common, which I will highlight as I go.
**Circa Summer 2008 – Just Before Apple Releases The iPhone (not iOS) SDK **
In the summer of 2008, I was preparing to enter my senior year of college for Computer Science at UNM. A quick note about CS in New Mexico. There are TONS of government contractors (Sandia, Ultramain, Honeywell, Lockheed, etc.) in NM and college CS courses seem very much tailored to preparing students to head down this road towards one of these contractors. This is where most of my buddies from college ultimately ended up.
So, like any good UNM CS student, I got a job at Intel hacking C# tools for their engineers to use during testing. It was fine, but I knew I could not work in a cube forever.
Around that time, one of my buddies had the original iPhone and I was crazy jealous. I think I had some silly Windows CE brick or a Palm Treo or something. It was obvious that the iPhone was the “next big thing” and I took notice. So I started developing web apps for the iPhone, as that was the primary way to get custom apps for the devices. Apple even had a terrible (non mobile formatted) interface for exploring such web apps.
I built cool things like a Weight Watchers Point Calculator (my wife’s idea) and Minesweeper and to my surprise made a couple bucks a day on ads. This really fueled my excitement. Then, Apple announced the official SDK.
**An Aventure In iCodeBlog And Other NDA Violations **
When Apple first released the SDK, the App Store didn’t exist yet. All developers were forced under Apple’s NDA, stating that we weren’t able to discuss any aspect of the SDK on the web. As you can imagine, this left very little resources available for learning how to actually do development. There were no blogs, no books, and the only source of information was Apple’s documentation. I saw this as a HUGE opportunity.
I very quickly registered the domain icodeblog.com and setup WordPress. This led to my very first post in July of 2008. I had no idea what I was doing; it was my first blog ever, but I knew I would be able to learn more effectively if I was teaching others as I went along.
Being a Java developer, I was comfortable reading documentation so I dug right in to the iOS docs. I spent all of my free time (the time that wasn’t spent with my wife) learning and blogging. I was violating the NDA by discussing it on the web, but my page views were growing every day. Other blogs started to sprout up but I soon had the most popular iOS development blog on the web. I had over 10K RSS subscribers one month after my blog launch.
Things were really exciting, however, I had to start thinking about my future and how I was going to support my family. Still being a bit narrow-minded with my career choices, I applied for a job at Lockheed Martin and got a position. It was all set; I would graduate college in the spring and head to the “cube farm”. Destined for a life of “here’s your input, give me this output”, TPS Reports, and other corporate stereotype jokes…
That’s when I got my first iOS programming job offer…
Enter RightSprite
As you can imagine, the popularity of iCodeBlog did not go unnoticed. I received job inquiries quite often and one them happened to be from a guy who lived in Ireland named Jonathan. He was a wealthy American entrepreneur who had added a mobile offering to his already successful rails consultancy called RightSprite. However, he started his business by outsourcing to the Ukraine, which yielded fairly poor results.
So, in the winter of 2008 I received an email that they wanted to purchase iCodeBlog and give me a job replacing their outsourced team. He also happened to have an employee in NM named Josh. Josh and I met at a “hip” food place that I had never heard of and I was blown away that this was considered “business”. Needless to say, I was excited.
So here I am, about to graduate with a perfect job lined up, and I get an offer like this. I had no idea what to do. The idea of working remote was foreign to me and had never even crossed my mind. People can actually do that? I can work in my pajamas??
So I decided to take a risk, sell him my blog, and accept the job offer. I was terrified-especially when he told me that my first check was coming out of his personal bank account and that was why it was late. Little did I know, this would be one of the best career decisions I could ever make…
Build, Hire, Repeat
I graduated from college and my career was in full swing. I was the sole developer at a consultancy that had more mobile work than it knew what to do with. My family had no idea what I did. They though I was a drug dealer or something just as lucrative. At one point, my grandma asked me, “When are you going to get a real job like your cousin Michael (he works for the city)”. I could’t quite believe this was a legitimate job myself.
Things started to get very exciting. Jonathan asked me to help hire our next employee. Luckily, a guy by the name of Collin reached out to me and asked if he could guest blog on iCodeBlog. A few tutorials later and we offered him a job.
RightsSprite continued to scale up and I helped hire quite a few new developers. They eventually moved to a physical building in Portland, Oregon while I still worked remotely from NM. The team continued to grow.
A Book Deal
Even though I didn’t own iCodeBlog anymore, I still contributed to it from time to time. This lead to me being contacted by a few publishing companies with book offers. A book offer? It doesn’t sound that cool now, but in 2009, when there weren’t many iOS development books, it sounded incredible.
I decided to go with Manning Publishing and I updated their iPhone development book from web app-centric to SDK-centric. It amazed me that I struggled to write four paragraph essays in high school but I was now writing a four hundred page book with ease.
The book did fairly well and sold around 10,000 copies. Unfortunately, when you are an author of a tech book, that amounts to just about nothing in profit. As you can imagine, I had little motivation to do the update the next year when Apple updated the SDK.
A New Sheriff In Town
Shortly after moving the offices to Portland, the owner sold the company and we had a new president and CEO. He ran things a bit differently but ultimately things were cruising forward. Our team continued to expand and eventually I hired our first Android developers.
In December of 2011, I was promoted to the Director of Mobile Engineering. It was a fancy title and I was entirely proud to hand out business cards with that printed on them. I had helped build the team up to around sixteen mobile developers and it was now my job to manage them, as well as work closely with sales to land larger contracts.
2012 was a great year of working on cool projects including the Food Network and Google Fiber TV. I got to attend WWDC and spend a few weeks on Google’s campuses.
Things Get Shaken Up
Little did I know, there was some unrest in the company with the higher-up managers. One day, there was a company memo that the three people who were higher ranked than myself had all left. There were rumors as to why they left, but no one really had the true story. This caused a stir in the company and a few more developers began to follow suit.
This, of course, led to some company restructuring which put me right at the top with one other team member. I was now one of the highest paid people in the company and solely in charge of the entire mobile team.
I thought everything was perfect until one day in December of 2012, I received the following message when I logged into Gmail:
Your account has been suspended, please contact the administrator.
This made me considerably suspicious. I knew there was a lot of restructuring in the recent history and I immediately wondered if I was next on the chopping block. I was logged into Linked In at the time and noticed the company owner was the last person to view my profile. “He suspects me of looking for other jobs and is checking up on me”, I thought.
That’s when I received a message on Skype from him. It said:
Brandon, do you have time to talk?
My heart jumped into my throat. I knew what was coming next. He was soon up on video chat and proceeded to tell me that the company was undergoing some restructuring and my position has been eliminated. “Eliminated?” I thought. And then I asked him what that meant for me. He repeated the sentence again, said thanks, and hung up. That was it; I no longer had a job.
My “secure” job that I had been working at for four years disappeared in a matter of seconds with very little “real” explanation. I was speechless.
Taking The Plunge
After getting “let go”, I took the rest of the day off and went out with my family (wife and two kids). We were shocked, but I knew what I had to do. It was what I had been dreaming of doing for quite some time.
Armed with the knowledge of the entire software pipeline-from sales, to development, to maintenance-I hit the ground running the very next day in search of my first contract.
I wrote this blog post documenting that very first month.
Takeaway
It has been a little over a year since I’ve had a “secure” job. I put that word in quotes because I now believe the only way to have a secure career is to make one for yourself. You could be let go at any time, for any reason.
I was very fortunate to have a first job that allowed me to learn the needed skills to do what I’m passionate about; building consumer facing apps that get used by thousands of people. If you want to do the same, I would encourage you to find a job that lets you explore all of the aspects of consulting to find out if it’s right for you.
Sometimes I wonder why everyone is not a consultant. It feels so free to be able to hack outside on a nice day or go sailing with my buddies on a random Wednesday. But that’s just one side of the coin. Other days, I wonder why I am even doing it. I often wish I had a simple job with a well-defined task where once I got “off work”, I could go home and not think about it again until the next day but I don’t have that luxury. There are real risks and stresses involved with working for yourself so I urge you to weigh them out before taking the plunge.
I have received so many good questions through my last few posts about consulting. They have inspired me and I intend on taking this year to diligently blog about topics such as finding clients, health insurance, contracts, etc.
So please share and subscribe; I hope to help you on your journey to becoming free of your corporate chains.
This post is part of a series about becoming and independent software consultant. I am participating in this series with my good friend Josh. You can read his take on this post here.
-
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!
-
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.
2. Popular Developers/Mailing Lists
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!
-
Tools of The Trade: What Tools I Use For iOS Consulting
Welcome Hacker News! There’s some discussion happening in the comments; but, as always, the better conversation is on the article page on Hacker News itself.
Since going Indie, I am constantly asked about what software tools I use to facilitate the process. People are always curious about invoicing, time tracking, ticket management, etc…
The purpose of this post is two fold. First, I want to educate others on some of the cool tools I have found that have helped me out tremndously. The other is, I would hope that veterans in the space could give their two cents as to some better tools (or better use of the current one’s). Either way, I’d love to hear from you.
1. Tools For Finding Contracts
This is perhaps the area where I am most asked about. Well, the secret is, looking for contracts isn’t that much different than looking for a job. You just need to know what to look for. Here are the few major sources where I have found sucess in finding good contracts.
- Linked In Jobs I love Linked In. I have found it to be the most valuable tool for job searches and connecting to date. I love that it will suggest jobs/contracts to you based on your profile and experience. Another great thing about Linked In is contract search can become passive if you are actively connecting and posting. Once your name starts flowing out there (assuming you have the exp), people will just start offering you contracts.
- Authentic Jobs I like this site a lot. Their interface is much cleaner than some of the other job search sites and while they had fewer contracts available, they were generally of a higher quality. In fact, I found the current contract that I’m working on here.
- Simply Hired Although this site generally offlinks to other sites, I found it to be a good aggrigator of what’s out there.
- Good Ol Google This seems like a job, but as I mentioned in my last post, it’s pretty easy to type “[:field_name] contract work” and come up with a pretty good list.
2. Tools For Managing Clients/Billing
As a new contractor, the concept of billing can seem a bit scary. You don’t want to look like a n00b, but you also don’t want to spend a lot of money. That’s where FreshBooks comes in.
I started using FreshBooks from day one and could not be happier with their service. Here are some of the pros:
- Free for up to 3 clients. It says 30 day trial, but that’s just if you want more than 3 clients. So it’s perfect for when you are starting out.
- Manage multiple projects for mulitiple clients with multiple tasks (‘nuff said)
- Mobile app. You haven’t lived until you have sent an invoice from your smartphone. You feel super businessy. For an added bonus, send it from the gym, or your sailboat.
- It handles sending invoices via mail or email automatically and reports back to you when the client has seen the invoice.
Again, FreshBooks is awesome! I can’t recommend it enough.
3. Tools For Ticket Management
This one is tricky, because every client is going to want to work differently. Here are the few I have expereinced thus far.
- Pivotal Tracker This one is my favorite. It’s a very easy to use tool to help facilitate development in an agile environment. Even if you are not running the full scrum process, it’s still a valuable tool to simply track your progress. Your clients will appreciate it.
- Basecamp You knew I was going to say this one. It’s an obvious choice because it’s obvioulsy a solid tool. I think it’s very valuable when you have a distributed team and need a central way to communicate.
Even if your client doesn’t use a tracker, I’d suggest you use one. It helps you to keep organized and get a better feel for how long certain tasks take (which you will need to know in future scoping).
I dont’ have a very long list here because I hate most tracking software. If you have some to add here, I would love to hear about them in the comments.
4. Tools For Software Development
I am an iOS and rails developer, so this section may or may not be applicable to you. Again, I put this out there to let you know what I am using and would love to hear what you are using.
iOS
- XCode (duh)
- CocoaPods – If you don’t use CocoaPods, you are doing it wrong. They are what gems are to rails and really help you manage 3rd party libraries.
- GitHub – For verison control and code distribution amoung the team. (again, you know this already).
Rails
- Sublime Text I was big on TextMate for a while, but now I use Sublime Text full time. It has some solid plugins and can do a smart autocomplete for any file type.
- Heroku Deploying rails to production sucks. Heroku makes this process easy.
5. Tools For Communication
Working in a distributed team can be hard at first. Especially staying connected. Here are the major forms of communication that I use.
- Skype Although Skype has totally gone down hill since the MS takeover, it’s still a free service that most clients will use. I’d suggest if you don’t have a Skype account, you get one before job searching.
- Google Voice This service allows you to forward a number directly on your cell phone. It also has some nicities like screening your calls, voicemail, free calls, etc… It’s good to give out your Google voice number instead of your cell to clients as well as possible girl/boyfriends in case things go sour.
- Google Hangout Skype falls short in one area (which happens to be their business model). If you have more than 2 people on a call, they must all have a premium account to do video chat or screenshare. Google Hangout gives you all of these features for free with up to 10 people as of this writing.
- Standard social networks (Twitter, Linked In, G+) (duh)
Conclusion
Well, this post is already getting a bit out of control. I could go on and on. If I have obviously omitted a large section, please feel free to troll me in the comments and I will certainly add it.
I hope this has been able to provide you with some value, and I would love to hear your thoughts.
-
What I Learned In My First Month Being A Contract iOS Developer
tl;dr Present yourself to potential clients as if you have already made it. Don’t be scared, the work it out there. Freelancing FTW!1!
In the first week of December, I got a rather unfortunate (and unexpected) call from the CEO of the company I was working for. The gist of it was “we are reorganizing, and have decided to cut your position. Effective Immediately”. At this point, I was the Director Of Mobile Engineering and was making a very decent salary. While I was planning on leaving to go freelance at some point, I hadn’t dreamed it would be this sudden.
Well, it turns out that CEO did me one of the biggest favors of my life. He forced me to go indie. I probably would have flailed there for at least another year before even considering moving on.
I want to share a few things (good and bad) about what I have learned in the past month and how I will never (willingly) work for a company again.
Panic Sets In
I had been working at the aforementioned company for the past 4 years. In fact, it was my first job out of college. So, you can imagine how scary and stressful it was going from a steady paycheck to nothing in the blink of an eye. What’s ironic about this is, many people I have talked to since going indie have told me that they wish they could do it too, but really like the “security” of their corporate job.
At first, I freaked out a little and took the day off (I was “let go” in the morning). But, the very next day I hit the ground running in search of a contract.
Contracts, Contracts Everywhere
Much to my surprise, there are contracting opportunities everywhere. Again, I had to leave the company so soon, I hadn’t had time to research this myself beforehand. A simple Google search of “[your field] contract work” should reveal plenty (assuming your field is some sort of software. I can’t speak for other industries). I even started applying for salaried jobs as a contractor. You would be surprised how many companies are open to it.
This was immediately comforting.
Talk The Talk
My first few days of looking for a contract were pretty interesting. Being that I had just been let go, I felt this intense pressure to land a contract right away. This definitely came through in how I related to the recruiters and people I spoke with. My good friend Scott Caruso sat down with me and gave me some of the most important advice I would hear for dealing with potential clients.
- You are looking for the “right opportunity”. If you are considering freelance, you obviously feel you are an expert (or close to) in your field and that definitely has value. Don’t settle for crappy contracts at crappy rates just because you need the money. You will hate life.
- Spam! During my first week, I would contact one or two people and they said they would get back to me. Well, I didn’t want to possibly have to tell them no later, so I would politely not communicate with anyone else until I heard back. That was dumb.
Finding contracts is like shopping at Goodwill. It’s mostly crap, but if you go through enough of the crap, you will find a gem. 3. Leverage your existing contacts. This should be obvious. I was holding off on this early on as I didn’t want to sound lame. However, these are the people you can show a little desperation to as they are (or should be) your friends. That being said, someone always knows someone else that needs some work done. If I hadn’t done this, I for sure would have violated #1. 4. You are a scarce resource (at least present yourself that way): Once I started telling recruiters that I was talking to tons of others and am planning on making a deal this week, I started getting a flood of them calling me back.
The Bad
- Everything you do starts to get a price tag. The other day, I asked my wife to make me a sandwichh. She told me to make it myself, and I politely informed her that the 15 minutes spent doing that would cost us $25 so it had better be the best sandwhich I have ever made.
I am not sure if this feeling ever goes away (if you are a veteran freelance, I’d love to hear your thoughts).
- It’s a little scary knowing you don’t have a paycheck in X months (X being your current contract length). This was the most frightening thing at first. Now, it seems like an exciting challenge.
- Tendency to overwork: Since you now have money++ and can make more just by adding hours, you will be drawn to work more. I have talked to many others who end up leaving freelance because of burnout from working too much. Sure you made $30K in 2 weeks, but you are hating life.
Summary
So far my journey as an independent iOS developer has been incredible. I am loving every minute of it and I encourage anyone interested in it to do the same. I don’t think it’s for the n00b or the non-self starter. This post I found on Hacker News has a brilliant step by step tutorial on moving in this direction.
I hope you have enjoyed yet another post on freelancing.
Thanks for reading!
subscribe via RSS