Donald Knuth was specifically talking about algorithms in computer software, but the lesson applies broadly to product development, startups, and self-improvement.
Perfection is the Enemy of Progress
Wikipedias worth of man-hours have been spent building features that the customer never requested and rarely use. Companies have spent millions on inventory to achieve economies of scale on products that crater in the market. They should have shipped first and asked questions later.
Stop futzing around and ship it! Premature optimization is often procrastination in disguise. If you’re “making it better” before someone has used it, you’re letting fear of judgement keep you from learning.
Don’t worry about scaling, don’t worry about “nice to have”, just start! Start going to the gym, spearhead a new process at work, ask someone to buy your barely functional prototype. Even if you fail, you’ll be at the same place as if you were still planning; the only difference is, you’ll have a data point from the real world. Now you can adjust, incrementally better, then ship it again.
Questions of the Day
What aspect of your life should you be shipping instead of optimizing? Is there a feature in your product or startup that’s a good idea but you haven’t had a customer ask for it yet? Tell me about the time you sunk days of oyur life into solving a problem that didn’t exist.
Since 2009, I had made a series of choices to focus on my career and entrepreneurial ambitions instead of my health. I put on about 50 lbs of fat and atrophied significantly during that period. I had given up on taking care of myself in trade for trying to build my company and my city’s entrepreneurial ecosystem. I kept telling myself that I’d get myself together later after I had found success.
When my first child was born in 2016, I need to determine if I was going to be a good Founder or a good Father. I left my operational role as CTO of my startup and I derisked my career a bit. But I wanted to be more than just present with my son, I needed to be a role model for him. I searched for role models for myself and found this great series of essays by Jocko Willink on Spotify.
Through many iterations over the next 3 years, I began to rebuild my health. I started training Brazilian Jiu-Jitsu, stopped drinking alcohol regularly, started lifting weights (3x a week), and worked to refine my diet.
I made these changes one at a time, about three to six months a part. It takes about 90 days to lock in a new habit and it’s much harder to actively control more than one thing. So I focused on not making a new habit until I didn’t have to work to maintain the current habit I was developing. The most important part of this process was to figure out the failure modes in each new habit during that startup period and put controls in place to correct for them.
For example, I kept missing my weight lifting workouts because I would have meetings or family obligations. So to control for this, I found a time no one books me; 4:30 am. By taking ownership of my failures; I can’t blame anyone but myself for not getting to the gym before everyone is awake. Discipline is Freedom.
This process hasn’t been linear, it’s riddled with short term setbacks; mental, physical, business, etc. But all of these setbacks have proven to me that you never fail until you quit. I’ve missed lifting or training BJJ for months at a time (see graph above). The trick is to kill your ego and start training again. I am a human, I am fallible, but I refuse to quit.
Questions of the Day
What keeps you from making the changes in your life that will make you healthier? What controls do you use to help you maintain discipline? What did you think of Jocko’s essays?
There are dozens of tools for building user interfaces, some of them are web-based, some require specialized skills and software (looking at you Adobe). They all have their place, but I routinely recommend people user Powerpoint for their wireframing needs.
Here’s why you should use Powerpoint for wiring framing:
You build them faster
It forces you to focus on Information Architecture, not details
Everyone knows how to use Powerpoint
You can fake interactions and test process flows
It allows you to quickly get feedback from real humans before a single line of code is written.
For clarity: I'm going to say Powerpoint for the remainder of this post -- but Powerpoint, Keynote, LibreOffice, Google Slides are all acceptable alternatives.
Increase your Velocity
I train my teams to use the simplest/fastest prototype or tool that gets them the feedback they need to advance the product down the development pipeline. The best tools are the ones that reduce friction and allow you to increase your development velocity.
If you have to learn a new UI in order to implement a test, you’re reducing your speed to market. That amount of friction may seem small, but it adds up. Experienced product managers will tell you that more deadlines are missed as the results of hundreds of small inefficiencies than one-off catastrophic events.
Right Level of Fidelity
More powerful tools have more features, more feature means more complexity and time wasted on irrelevant details. You shouldn’t be concerned about anything but information architecture and block level elements when wireframing.
As a simple guideline: When you’re building a wireframe, it should be no more complicated then what you can personally draw on a whiteboard. So in practice, you should be creating the digital version of your crappy illustration.
This is important, because design should be left to designers. The purpose of a wireframe is to identify the functional units on a page (and maybe their relative priority/weight). Primarily, you should be concerned with content at the “block” level. Instead of worrying about design, you should be asking yourself if all of the objectives of the page/view are being met.
It sounds trivial, but I can’t tell you how many e-commerce wireframes I’ve reviewed that didn’t have contact information in the headers or navigation, and/or didn’t provide a direct link to the cart page. Every page should have one job, make sure that you have the content blocks that support the page’s goal.
Non-technical people know Powerpoint
You friends, family, business analysts, content marketers, and pilot customers, all know Powerpoint well enough to wireframe. They are the Subject Matter Experts on their needs, not your designers. You wouldn’t ask your Plumber to architect your home, so why would you ask a Web Developer to determine your information architecture?
Getting the right team members engaged with the wireframing process will improve the quality of the output. Wireframes are the foundation that your product’s usability is based on.
This part of the design phase is also the cheapest, and fastest place to make changes based on user feedback. No one has spent hours in photoshop, no one has written a line of code, there are no dependencies – enjoy this agility while it lasts and try wireframing different variations of your screens.
Interactions and Navigation
You can emulate interactions with your product by building different slides to represent different states. By having clickable areas load specific slides, the wireframes can show a user the result of their actions.
This functionality allows you to test different funnels and begin to understand how novice users interact with your product. The biggest benefit of this entire process is that, you can perform interactive user testing without engaging a designer or software developer.
Powerpoint is ubiquitous, you can share files and get quick revisions from several stakeholders remotely and asynchronously. Additionally, you can export the final product as a PDF for easy user testing.
Load that PDF on your mobile device and ask random people at a coffee shop to accomplish a task on your site, BOOM!, observable user testing for the cost of a cup of coffee.
Questions of the Day
What other tools have you used to quickly build prototypes? What were the benefits and drawbacks?
Optimizing for real-world problems is usually challenging because they tend to multivariate. They also tend to impact more than one stakeholder, which often means there are different priorities that should be considered. Additionally, variables can often inversely correlated, qualitative in nature, and/or unique solutions have wildly different values.
Whenever things get complicated in my life, I try to develop a process that I can tune as I gain more experience. Here’s my current approach for optimizing complex decisions.
Steps to Resolution:
Discuss quantified result
Create a list of all meaningful values to consider when evaluating the problem. Then, ask other stakeholders about what factors they would consider when determining a solution.
As these conversations occur, you should document the entire list of concerns in a spreadsheet.
Example Variables for “Where should I live?”:
Proximity to Work, Family, Friends, Food, Activities
Cost of Living Adjustments
Additional Income Possibilities (Rental units, access to a better job market)
Have each stakeholder (including yourself) put a weight on each variable privately. Then gather together to discuss the reasons for each weighting. Based on the discussions, work as a group to determine your final weightings. This socialization of concerns often helps me achieve a deeper understanding of my own goals, while also getting buy-in from people who will be impacted by the decision. Lastly, generating these “shared ideals” weightings allows you to focus on the most important aspects of the data when evaluating the visualization.
Aggregate your data in your spreadsheet. Sometimes it helps to normalize data if the options are very disparate in their values. One way to normalize is through the use of ratios between two of the variables from the same option.
In this example, we create a ratio of Total Cost of Residence / Take Home Income in order to normalize the Total Cost of Residence for different geographic areas.
Use conditional formatting (tutorials: google sheets / excel ) to heatmap cells or simply turn cells red/green for boolean answers.
Implementing this visualization technique will usually highlight one or two prime candidates from your data.
While I’m building my visualizations, I also highlight the top three column headers, based on the outcomes of the variable weighting discussion. This additional step highlights the “deal breakers” that sometimes exist in candidates that otherwise look great on paper.
Discuss quantified results
Last but not least, bring the visualized results back to the group. They provide a great starting point for discussion among stakeholders. Since you determined your “shared ideals” before you gathered/evaluated your data, it allows you to have a more candid discussion of the options.
One last thing, It’s important to remember that all tools have flaws and the winning result in the rubric isn’t always the best solution qualitatively. You’re not bound by the tool that you created, often the discussion it generates is worth more than the data it provides.
Question of the Day
Do you have a similar process? Where have you applied it in your life?
In Episode 3 of “Cleared Hot”, Andy Stumpf talks about his time as a Basic Underwater Demolition School (BUD/S) instructor. According to Wikipedia, “BUD/S is a 24-week training challenge that develops the SEAL candidates’ mental and physical stamina…” and according to Andy, one of the instructors’ jobs is to eliminate candidates from the program. Specifically, those who do not have the mental toughness required to be an operator.
“Nothing lasts forever, this sucks now, but it’s going to end.”
Andy interviewed many candidates who quit. He wanted to know what lead to their decision, so he could develop techniques to exploit the weakness in others. Their most frequent response was that they were overwhelmed by the duration of BUD/S. They were experiencing discomfort and multiplied it by the time remaining in the course. Psyching themselves out.
One Foot in Front of the Other.
Successful people focus on breaking down seemingly insurmountable tasks into smaller objectives. Achieving each smaller objectives creates a momentum that allows them to blast through the larger obstacles.
Although I’m not a SEAL and never will be. I’ve personally experienced this in Marathon Training, Weight Lifting, and Entrepreneurship. The first mile, squat, and pitch — those moments felt overwhelming because I knew how tiny my current output was compared to the end goal. But each day I put in the work. I focused on following the plan and completing today’s objectives, not worrying about the end state. When the time came to complete the mission I had been training for, my body and my mind were ready.
Show up, do the work, rest, repeat.
Questions of the Day
What’s the largest goal you’ve succeeded at? How did you break it down into smaller pieces that you could accomplish? What in your life today is stressing you? What’s the next incremental step towards fixing it?
I’ve spent the last six months weaning off of Facebook’s suite of apps. Their lack of ethics finally outweighed the value of their ubiquity. Because of this, I began the process of deletion (Facebook, Instagram, Messenger). Almost immediately, I felt a notable change in my overall level of happiness and contentment.
Trending topics and outrage focused feeds may have been overloading my psyche. My brain is only able to effectively deal with the level of stress generated by the happenings of a small community (See: Dunbar’s Number). I was genuinely surprised by how much better I’ve felt once I removed awareness of the continuous-crisis news-cycle from my life.
The major downside that originally kept me from leaving was FOMO. I didn’t want to miss out on dank memes and interesting dialogue. To counter this perceived loss, I’ve decided to start generating more original content and I’m working to develop deeper relationships with key individuals in my life.
Plan of Action
Backup my data from Facebook, Twitter, LinkedIn
Deactivate, delete, or refactor accounts
Find a new messaging alternative
Develop more active relationships with my network
Backup and Deactivate
There are plenty of posts on how to backup Facebook and Twitter data and deactivate your accounts. So I’m not going to cover Step 1 and 2.
I decided to switch my primary messaging client over to Signal since it supports end-to-end encryption, is easy-to-use, and is cross-platform. It also supported encrypted phone calls. The only thing that I’ll miss is the video conferencing – which I plan to handle through Google Hangouts or Skype.
Activate My Network
I now block time using recurring appointments to make phone calls to key friends/family and to blog. I will be distributing my blog via mailing-list and I plan to put hooks into each post to start 1-to-1 conversations. By disintermediating my relationships, I hope that I can build a stronger network that involves more personal and meaningful interactions.
The Question of the Day
How do you feel about your social media usage? On average do you think it makes you happier and more content or does it leave you with feelings of insecurity and anxiety? What’s keeping you from disconnecting from the major platforms?
I’m beta testing PostHaste from ClearView Social – learn more about it through the video below:
What if you could assemble high performing blog posts in just a few moments? What if this content you create would also tap into a larger conversation automatically, piggy-backing off of interest in current issues in the news? What if you could do all of this in just a couple of minutes? Now you can, with Posthaste.
Every year, I try and participate in at least one Hackathon. As a Product Manager, I find building and shipping a product as fast as possible is a great way to work on your ability to scope and prioritize features. This year’s hackathon was Buffalo’s Civic Innovation Challenge. Which consisted of building an Android App called “Good Neighbor” utilizing Open Data from the City of Buffalo.
Good Neighbor – Pitch Video
Rapid Prototyping Tools
The other benefits of Hackathons is the challenge of learning a new tool or language in a low cost setting. I played around with Monaca and Onsen UI 2 while building this app. Monaca’s web based IDEA for HTML5 apps was outstanding, I could make an update and instantly see it’s impact on my devices running their Android Debugger App. Onsen UI allowed me to quickly utilize their Cordoba modules that translate to Android and iOS native UI elements. I’d recommend both for your mobile prototyping needs. I built the entire Proof of Concept in about 6-12 hours total.
If you’re hackathon code would pass a peer code review, you probably didn’t push yourself far enough into uncharted territory.
Good Neighbor Features
With Good Neighbor, we wanted to create a multi-lingual app targeted at new immigrants and refugees to the City of Buffalo. The app acts as a portal in their native language, provide curated links and maps to essential civic services.
What was descoped?
“No matter how tightly you try and scope your hackathon app, you’ll always run out of time and have to cut features.”
On the user facing side, we ended up having to bail on the integration with google translate. It would have been an awesome feature, but we decided that there was more value in adding more content to flesh out the app for the English speaking judges.
On the technical side, we didn’t get to refactoring the app into multiple files, due to a fear that Angular.js might barf and we’d lose a ton of time on a technical “nice-to-have”. A trade-off we weren’t willing to accept for time that we could have been spending on building out content. Hackathons breed hacky code, but that’s the point. They reinforce the “Ship It!” mentality.
Micro-contracts are one-line agreement with yourself. They are used to short-circuit decision making process for recurring events. The goal is to increase compliance with habits you’re trying to install in your life. A micro-contract is the building block for a habit.
A micro contract takes the form:
If <recurring decision point>, I will do <behavior>, so that I <reason> .
e.g.) If I am going to eat out, I will eat the healthiest option on the menu (or default to a salad with dressing on the side), so that I can live a long and healthy life for my family.
The way that I’m currently programming them into my life is by adding them to my lock screen on my phone. According to the app, “Quality Time”, I average around 100-120 unlocks a day. That’s a lot of reinforcement to internalize my current micro-contracts. If you’re not as heavy of a phone users, you can reinforce your micro-contracts by hanging them next to the mirror in your bathroom or setting your desktop wallpaper to your current list.
Why should you use Micro Contracts?
“We first make our habits, and then our habits make us.” -John Dryden
Research shows it takes up to 90 days to instill a new habit. For comparison, this is about as long as it takes to close on a house. Which is the largest, longest, and most complex business deal most people will participate in during their life. When I’m teaching sales to people, I reinforce the mantra “Old deals die.”, meaning that if you don’t close the deal quickly, something will go sideways and the deal will fall apart.
If “Old Deals Die”, how can we keep them young? By focusing on action. In sales, we follow up and keep the process moving. Checking in with the decision maker, answering questions they have, and educating them on the process. In our home life, we can revisit our goals daily or weekly, evaluate what’s working and take action on the things that are putting the behavior at risk.
For instance, How many times have you started going to the gym regularly for a few weeks only to miss twice due to work or travel? What happens next? You fall completely out of the routine and it takes months to get back to it. It’s happened to me dozens of times. In quality management circles, we’d refer to this recurring problem as a “failure mode”. We’d document it as a risk and determine an approach to mitigate the impact on the project.
Micro Contracts: Controls to Prevent Failure
In our gym example, we’ve documented the failure mode of “Missing Twice”. Now we need to put a control in place to stop it from happening. A control is a guideline that we use to evaluate an occurrence of an event and instantiate a corrective action if it falls outside the desired range. This sounds like the perfect place create a micro-contract or two.
Let’s look at two variants, an affirmative micro-contract and a negative micro-contract. The affirmative micro-contract should reinforce the “why” for doing the behavior you’re trying to install. It’s the “carrot” method of coercion. The negative micro-contract should be the “stick” that escalates the stakes in order to bring yourself back into compliance with the habit when you’ve gone out of control.
Affirmative Micro Contract
If I missed the gym today, I will go to the gym first thing in the morning, so that I continue to improve my health and maintain my mental wellness.
Negative Micro Contract
If I missed the gym two times in a row, I will not <do my favorite thing> until I go to the gym, so that I don’t break my habit, get fat, and become depressed.
Implementation of Micro Contracts
My current approach is to add a new micro-contract or two to my life each week. I use them to reinforce the current habit I’m building. I try to only install or uninstall only one habit at a time, I make them quarterly goals so that they have the full 90 days to become entrenched. My hope is that by adding micro-contracts each week, I will be able to increase my success rate for forming habits. These simple statements will help me to control for failure modes and encourage me to refocus on my goals weekly.
Do you have any ideas that could improve micro contracts? Where do you think they would provide value in your life? Let me know in the comments below.
Violence of action means the unrestricted use of speed, strength, surprise, and aggression to achieve total dominance against your enemy. – Cade Courtley
A Strategy for Startups
Founders, internalize this concept and apply it to your startups’ strategy. Startups can operate in ways that established businesses cannot. Adapt some of the principles of asymmetric warfare to your business.
Startups can release new features to market before larger competitors could even schedule the initial meetings. You can adapt to changing market conditions and respond in real-time to current events. In a 5 person company, a change in strategy requires a 15 minute meeting with everyone in attendance. In a 5,000 person company it takes a quarter of planning and a quarter to execute.
Startups by their very nature operate in relative stealth. Most likely you lack the budget for extensive PR and Marketing. Therefore, your competitors have limited information as to your existence, intent, and strategies. Use this advantage strategically and only come out of stealth when you’ve got your product, marketing, and sales process honed. You want to gobble up market share before your competitors have time to actively respond to your offerings.
You’re unable to overpower your competitor in a toe-to-toe slugfest, but you can use a precision assault to overpower their weak links. Startups can do things that don’t scale, over service your initial accounts, provide concierge support and custom development for your initial customers. Large companies can’t compete with the level of personalized service a startup give to their customers due to the amount of overhead they have to pay for and their larger customer base. So use the fact that you have lower overhead and a small initial group of customers to wow them into word-of-mouth referrals.
“Fight through the objective” by setting challenging weekly goals. Don’t stop short of whatever you planned, exceed it week to week. In your first weeks of existence, your objective might be completing a pitch deck or doing a certain amount of market research. Once you’re building your product, it might involve completing a certain number of story points in a sprint. As you ship MVP, you should set a challenging cadence for how many leads you call or follow up with each day. Pick a key performance metric that will drive the success of your business at its current state of maturity and CRUSH IT.
Building something from nothing is a no holds barred fight. Be relentless and capitalize on any advantage you have over your competition. Most importantly, don’t quit – you will fail a thousand times during the creation of your business – but as long as you get up and try again, you’re not out of the fight.