Past performance not indicative of future results

If you’ve spent any time reviewing the outlook of an investment you will recognize this statement. This statement is so that an investment firm can show you how well they’ve done, while protecting themselves from a failure to produce similar results for you. Could we not draw a corollary between hiring and investing?

Hiring is making an investment in human capital, instead of monetary capital. When hiring we tend to review resumes, code samples, and ask questions digging into someones past to see if they are a fit for what is needed. Is this really the best way to make a hiring decision?

Knowing what someones past performance could mean for their future would make you a very wealthy recruiter. Giving someone the chance to show what they are capable is key. Are they capable of working nights and weekends when everyone else is? Are they bought into the processes? Do they contribute the best they can, or are they earning a buck? These are questions we always ask ourselves as hiring managers. These are timeless questions around hiring.

The solution is simple: we don’t know. What we do know is the risk or cost of bringing someone on to a team, giving them a shot and that attempt failing. It is a cost. As hiring managers, you must weigh the potential or upside of that cost. Have they not written a perfect binary sort in their technical interview? Does that fact outweigh their desire to go the extra mile? Does it outweigh their desire to grow and learn how to build the best software with the tools and knowledge they have today?

Give someone a shot at showing you that there are more qualities to a hire then their ability to bend to your interview process. If you give them this shot, you’ll discover a huge trove of amazing people to help build your teams around.

Always Be Cap Deploying (ABCD)

To be successful, in a fast moving startup we must move away from maintenance windows, and scheduled downtime. The team I am currently working with has been beaten into submission, and now deploys multiple times a day. This has allowed us the peace of mind to fix, iterate, change, and break production all in minutes. The idea of continuous deployment is not a new thing, nor a fully conquered problem.

You must decouple your services from your database, you must have lots of tests, and you must code review like a boss.

Sharpen Your Focus

As developers, we have keep too much in short term memory. When was the last time we integrated with master? When was this feature supposed to be turned on in production? Where are we? Who are we? With all of these questions, the addition of social networking we are far too distracted to be as efficient as we should be.

Since the introduction of ‘Do Not Disturb’ across the iOS/OS X framework I have come to know, and love it. It has freed us from the bounds of push notifications and the binding chains of e-mail. Turning it on, you are now notified quietly in the background about what is going on in your eLife. Before this functionality, we were bombarded with Facebook/Twitter/Instagram/LinkedIn/iMessage/Email notifications that are distracting more times than not.

Please allow yourself to break free from the hell that is synchronous notification. All of the tools we use are only as good as how we use them. You simply cannot bring yourself to deleting your eLife, so we have to learn to live with them inside the workflow of our daily life. ‘Do Not Disturb’ is one such way we can all do this successfully.

‘Do Not Disturb’ should have been named ‘Do Not Distract.’ We speak a lot about context switches as a bad thing in our software, so why could it be a good thing in our minds? Stopping these context switches will allow you to sharpen your focus on what matters. Perhaps right now email matters, which often times it can, you won’t be distracted by Twitter telling you that you’ve been followed by a cat.

Do ourselves a favor, work less distracted for a day. Silence all notifications and simply focus on your tasks. We will find out that perhaps push notifications weren’t such a great idea when it comes to productivity.

Keep in mind that your mileage may vary with this. I’ve come to find that it is so useful to allow me to sit and be focused on the task at hand, and then when I am ready I can switch my context to either the next notification that is waiting or something else entirely. My productivity has gone up since utilizing this tool. Many others like it exist, but my iPhone is my information hub so ‘Do Not Disturb’ is exactly what I use and love.


As a consultant, I have to track my time. I have to track the amount of time that I work on every project in a single day. On days that I am not on-site with a client, I will jump from project-to-project across six active, busy projects. Tracking time is a solved problem. There are a plethora of apps, web apps, and tools that you can use. I won’t list them here, but search for ‘time tracking.’ I’ve titled this blog post ‘Simplification’ because I’d like to talk about how I track time.

The tools that I’ve successfully used to track time for the last year and two months listed: iOS That is right! I only need a single, built-in app on my iOS device to track my time. A simple, one function stop watch has allowed me to track all of the required information correctly, and accurately.

Stopping the clock, jotting down that information in our billing software before switching to a new task also gives a few needed minutes of respite from thinking. It is like eating ginger between sushi pieces. Cleanse the palate of your mind, figuratively.

But I digress, this post really isn’t about how I track time, or cleansing your palate but how we can all simplify our tools and still be successful, albeit less distracted day-to-day. Do we need a super-duper tricked out ZSH, or can a well appointed Bash do the same job? Is managing an entire directory of vim configurations better than using just the default code highlighting?

Progress will tell you that we’ve come to find that simplification isn’t needed. Amazon will sell you anything made, and have it at your door within 24 hours. While this an incredible service, does selling everything make them the best at selling everything? Is a greater scope of service conducive to greater quality? I argue, maybe. iTunes for instance is an example of something that is one-stop shopping, but it really doesn’t do all of those stops perfectly. Search for instance is a constant issue. Discoverability is also a problem.

What if iTunes was broken into iApps, iBooks, iVideos, iMusic, and each was given the directive to perfect that field. I would be willing to bet that simplifying each project, without affecting the overall feature set would allow Apple to create better, more useable products. As a side note, I realize that Apple has figured this simplification out at the hardware level, but not the software level.

Simplification is hard. It is difficult to do less. It is easy to add more features that will attract more customers, and in turn generate more revenue. I propose that we stop thinking of simplification at the macro-level, but at the micro-level. This will allow companies, like Apple, to have five pieces of software, which each is perfectly suited for it’s task instead of a single piece of software that misses the mark across the board.

Circling back to consulting, I see this conundrum often. We have ten features, and five developers to build them. Each developer is then required to build two features. This means that they will only be able to devout fifty percent of their time to each feature. Would it be better to do five features, across five developers so each can focus fully on each feature? From the macro level, you’d see that half of the work was done in the same amount of time, but from a micro-level the quality of work could potentially be twice as great.

We must simplify everything. Whether it is the tools we use, the features we must complete, or the products we are building, simpler is harder upfront but with the long-tail gains — success should be synonymous with simplification.