Getting Real – The smarter, faster, easier way to build a successful web application

By 37Signals

The Starting Line

  • Build less – less options, features, meetings, promises, etc – focus on what is important only
  • Welcome constraints – they force creativity and drive innovation
  • Launch on time and on budget, to meet this scale back scope. More time and money aren’t the answer. This constraint of fixed time and budget force creativity and making the tough decisions. Focus on what is important and make it with a high level of quality. Flexibility is your friend.
  • "It’s better to make half a product than a half-assed product"
  • Similar existing products may exist, find your nemesis and determine how you can make something better, think about the problem from the ground up.
  • Keep it small and manageable, it shouldn’t be a chore.

Stay Lean

  • Keep it easy, cheap, and light. This keeps you most adaptable to changes and taking the product in new directions.
  • Changing your mind is OK.
  • Lower your cost of change – staying small enables quicker change than large teams. Agility is time and money.
  • Emergence – in a well-designed system, it’s the interactions and relationships that create the interesting behavior.
  • Keep it small. Keep it simple. Let it happen. Constraints are often advantages in disguise.
  • Being small means you can talk with your customers, not down to them.

Priorities

  • Explicitly define the one-point vision for your app. What does it stand for? What’s it really all about?
  • Be a perfectionist later, focus on working from large to small.
  • Don’t solve problems you don’t have yet.
  • Know who your app is really intended for and focus on pleasing them.
  • When someone uses software, they’re not just looking for features; they’re looking for an approach. They’re looking for a vision. Decide what your vision is and run with it. Don’t chase those you can’t make happy.
  • Ensure your product speaks to people who share your vision.

Feature Selection

  • Take whatever you think your product should be and cut if in half – Keep the most essential ideas.
  • Start with a lean, smart app and let it gain traction. Then you can start to add to the solid foundation.
  • Determine what matters and leave out the rest.
  • Start with no. If requests by others continue take a look. Only act when it is necessary.
  • Build what you can manage, it’s easy to make promises but harder to keep them.
  • Don’t force conventions on people. Let users be creative on how they create their own solutions using your product/tools.
  • Even if X people make a certain request, you can still say no. Stay true to your vision.

Process

  • Get something real up and running quickly
  • Iterate. Morph and evolve, analyze what is/isn’t working and work toward a solution.
  • Iteration helps to make informed decisions. Get ideas out there and see if they fly.
  • Brainstorm > Paper Sketches > Create HTML Screen > Code It
  • Avoid preferences; decide the little details so your customers don’t have to.
  • Preferences are a way to avoid tough decisions
  • Mistakes will happen, correct them quickly and move on.
  • Don’t have a release and a beta version; they should be the same thing. Get real testing.
  • Break entire project into smaller chunks, and do it again and again. Things get done one thing at a time.

The Organization

  • Unify don’t silo skill sets/departments. Harmonious products result from communication and collaboration.
  • Alone time is key to enabling you to get in the zone; where work is done.
  • Minimize meetings. When you must have them set hard time limit, minimize attendees, & have a clear agenda.

Interface Design

  • Design the interfaces before you start programming, the interface is your product; the code is what makes it work.
  • Focus on the epicenter (true essence of the page/app) and build outward. Design the most important piece of content first, the rest will follow
  • Think about the 3 states a user can see your screen 1) Regular 2) Blank (first launch) 3) Error
  • It’s OK to be inconsistent in a design if it makes more sense to be. Context is more important.
  • Copywriting is Interface design. Speak the same language as your audience.
  • Incorporate admin functions into the public interface (Edit, Save, etc). This ensures an all encompassing design and prevents unnecessary work and a poor look and feel.

Code

  • Less software means less features, less code, less waste.
  • Fight for what you think is the best way.
  • Let ideas marinate, see if they’re still good/bad after some time has passed.
  • Ask yourself if accomplishing something can be done without writing more code. (Better directions, interface design, etc).
  • Choose languages that are pleasant and invigorating. Enjoyment goes a long way to accomplishment.

Words

  • Unless a document is actually going to morph into something real, don’t produce it.
  • Build, don’t write (when talking long documents instead build a prototype or mock up screens)
  • Everything you do should evolve into the real thing.
  • Write stories not details. Make it more human but keep it concise.
  • Use real text vs. Lorem ipsum ideally (text is not a shape, it is valuable information to read). Real copy helps determine how long certain fields should be, how expand/contracts should look, and what your app truly looks like.
  • Make your app have a personality, this will be communicated to your customers (ensure the decisions account for this personality – design, copy, etc)

Pricing and Signup

  • Signups and cancelations must be a painless process (easy in, easy out)
  • Giving people control builds trust.
  • Avoid long-term contracts, sign-up fees, etc. People like freedom. Earn customers money and trust, don’t use trickery.
  • Advance notice bad news and entertain a grandfathered in approach.

Promotion

  • Tease > Preview > Launch
  • Awesome promo site.
    • Overview – explain app and its benefits
    • Tour – guide people through features
    • Screen cap and videos – Show what it looks like and how to use it
    • Manifesto – philosophy and ideas behind it
    • Case Studies – Real life examples
    • Buzz, pricing, weblog
  • Get advance buzz and signups going ASAP
  • Promote through education, soft sell strategy (inform its uses, provide tips/tricks, etc)
  • Teaching is selling but teaching is all about good karma. Healthy promotion.
  • Promote upgrade opportunities inside the app
  • Pick a name that is short, catchy, and memorable

Support

  • Listen to customers – it’s the best way to get in tune with your product’s strengths and weaknesses
  • Strive to build a tool that requires zero training (use inline help and FAQs)
  • Thoughtful, honest quick responses to customer questions improve UX.
  • Sometimes you have to ignore a small percentage of your user base for the betterment of the product itself (i.e. Not supporting old browsers)
  • The customer is not always right, stay true to your product vision
  • Keep your customers informed (if you make mistakes, it’s OK to admit it)

Post Launch

  • Issue a major update 30 days after launch (second wave of buzz, shows you’re listening, etc)
  • Active blog-like activity to show the product is alive and well (FAQs, tips and tricks, news, updates, buzz, press, etc)
  • Prioritize bugs, they’re inevitable, fix the ones that cause greatest issues
  • New doesn’t always mean better. Sometimes there’s a point where you just need to let the product be.
  • Success is all about great execution. Everyone can start projects/products not everyone finishes and delivers.