Premature Optimization is the Root of All Evil

"We should forget about small efficienceis, say about 97% of the time: premature optimization is the root of all evil" - Donald Knuth
H/T: @lpolovets

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.

Why you should build wireframes in Powerpoint.

Wireframe for ClarkDever.com in Powerpoint

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.

Universally Accessible

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?