Getting Fit

During more than a decade of consulting work, I often wondered what it would be like to work at a product company. There was something seductive about the idea of throwing all my energy and passion into building something for the long term. In October 2013 I finally got the chance to try.

Moving from full-time into an advisory role at Forge Apps, I joined the iOS Engineering team at FitStar. We're building personalized fitness apps to help people live healthier lives. I've seen their transformative effects in my own family, and it energizes me every day to work on apps that are indisputably making the world a better place.

FitStar isn't alone in our mission to help people live healthier lives. This March, we became a part of Fitbit, the company whose hardware and software are responsible for the biggest improvement in my personal health. Fitbit's activity encouragement and weight goal tracking have helped me lose 30 pounds over the past three years. I'm very excited about the future of our teams working together to improve the lives of even more people.

When I started at FitStar my intent was to get back to my roots as an engineer, and it was refreshing to spend last year focused on technical challenges, becoming a better engineer by working with a brilliant team. Recently, I've been asked to take on additional responsibilities as Lead iOS Engineer, and I'm glad to bring many of my non-engineering skills back into action.

It's already been an incredible journey for me at FitStar and Fitbit, and we're just getting started. I can't wait to show you the things we're working on.

Stop Subcontracting

Part of Consulting Lessons, Learned by an Engineer

It's time for the software development community to end subcontracting.1

We've taken several jobs where our client was merely passing money and requirements down from their clients, and passing our work back up. At other times, we accepted more work than we could handle and hired subcontractors to do a big chunk of it. Both paths have convinced me that this practice is harmful.

We're all finite. It's terrible to admit this, but I have limitations of time and skills. My team has limited time and skills too, and so do you.

It's good to hire specialists as needed to fill holes in a skill set. I hire graphic designers to save me from having to look at my own creations, and it's great that your clients are hiring you to build the things they can't build on their own.

The problems arise when you re-sell the time of other specialists to your own clients, or let your clients re-sell your efforts up a chain. It's even worse if you're trying to do it in secret.

Why?

Communication

Imagine the last time a manager imposed a technical decision or baseless deadline on one of your projects. Interjecting your own limited understanding into the interface between other specialists and your client will produce the same kind of conflict.

Even if the specialist is just like you, there are problems that cannot be avoided. Each contract relationship relies on building a common understanding between two parties. When you subcontract down, you're guaranteeing to your client that you can produce an equivalent understanding with your subcontractor, simultaneously with a contract negotiation and scheduling to actually get the work done.

When have you ever seen such perfect communication and understanding between even two people? It doesn't happen. You're playing the classic telephone game with thousands of dollars at risk.
Compromises and flexibility are necessary for any project, but every layer increases rigidity. Want to accomodate a special request from the client? Better get approval from your subcontractor first, and hope that they haven't subcontracted even further.

No thanks. It's time to stop.

Quality

Emotion and motivation are huge factors in productivity. It doesn't matter how diligent you are, how focused you are, or how amazing your skills are. If you don't care, you won't produce the best.

How much do you care?

It's human nature that the farther removed we are from a project's ultimate purpose, the less we are able to care about it. Whether the goal is delighting users, making money, building a business, humanitarian work—or all of these at the same time—every layer of contract terms, negotiations, pricing, and red tape will diminish the emotional investment of the participants and the quality of work they're able to bring to the project.

Over time, operating at low levels of passion will erode your craft. Don't risk it.

Team Building

Teams are strong because they have common goals and commitments. If parts of your team are literally only present for the money, and not committed for the long haul, you can't invest your resources in developing and bringing out their best work, knowing they might be gone at any time.

The churn of subcontractors will compound your time required to manage the team, as there will be no time or incentive for members to build efficient communication structures—learning how to work together.

Marketing

  • Subcontracting upstream can be momentarily lucrative, but outsourcing your sales pipeline means you'll never know when you'll have work, or for how long.
  • Confidentiality clauses will limit how much you can talk about the work you've done, and keep your portfolio thin. It's particularly frustrating to be prohibited from publicizing the apps you're most proud of.
  • Middlemen have no incentive to send you referral business. They win by keeping you available for their use, and in a weaker negotiating position.

What To Do Instead

Focus on building a portfolio of clients so that you're able to decline subcontracted projects.

Hire a permanent team, not mercenaries. Find excellent people who value the same things you do but have different skills, and commit to building great things together. If you're not yet able to hire a complete team, use your experience and network to be a connector. For example, as an app developer, you know more about working with app designers than your client does, so be a trusted advisor as they find and engage a designer for the project team.


1. For this post, think of subcontracting as whitelabeled outsourcing, and don't forget the series disclaimer about staying profitable and doing what works for you. There are lots of complicated situations in the world. ↑ return