My notes on “Getting Real – The Smarter, Faster, Easier Way to Build a Successful Web Application” by 37Signals
- Build less
- Underdo the competition. Less features, less options/preferences, less people and corporate structure, less meetings and abstractions, less promises
- Fund it yourself. Constraints are good
- Constraints force creativity.
- Constraints drive innovation.
- Constraints force you to get your idea out in the wild sooner rather than later.
- Fix time and budget, flex scope
- Launch on time and on budget, but scale back the scope to meet those constraints.
- Figure out what is really important – those are your priorities
- Have an enemy
- What problem do your prospective customers have that you are determined to solve?
- What really annoys you about the current solutions?
- Having an enemy provides you with a very clear marketing message.
- Stay lean
- The leaner you are, the easier it is to change.
- The more massive an object, the more energy it takes to change direction – true in the business world, true in the physical world.
- Change must be easy and cheap.
- Mass is increased by long term contracts, excess staff, meetings, inventory, technology lock-ins, long-term roadmaps.
- Mass is reduced by just-in-time thinking, multi-tasking team members, embracing constraints, not trying to lift them, less features, small team size, simplicity
- Lower your cost of change
- All the cash, all the marketing, all the people in the world can’t buy the agility you get from being small
- Be yourself
- Differentiate yourself from bigger companies by being personal and friendly.
- Don’t try and act big.
- Your perceived size isn’t a weakness that needs to be covered up.
- Being small is a huge advantage especially when it comes to communication.
- Smaller companies are closer to the customer
- Explicitly define your one-point vision
- Make the big decision about your vision upfront and all your future little decisions become much easier
- Basecamp: “Project management is communication”
- Backpack: “Bring life’s loose end together”
- Campfire: “Group chat over IM sucks”
- Ta-da List: “Competing with a post-it note”
- Writeboard: “MS Word is overkill”
- Ignore details early on
- Details reveal themselves as you use what you’re building
- You’ll see what needs more attention
- You’ll feel what’s missing
- You’ll know which potholes to pace over because you’ll keep hitting them.
- That’s when you need to pay attention, not sooner
- It’s a problem when it’s a problem
- Don’t waste time on problems you don’t have yet
- Do you really need to worry about scaling to 100,000 customers today if it will take you 2 years to get there?
- Make decisions just in time, when you have access to the real information you need.
- Hire the right customers
- Find the core market for your application and focus solely on them
- The customer is not always right. The truth is you have to sort out who’s right and who’s wrong for your business
- If you try to please everyone, you won’t please anyone
- Scale later
- Don’t build it and they will come. Build it when they come
- Be opinionated
- Take sides.
- Have a vision.
- Have an attitude.
- Seek out customers who are actually partners.
- Speak to people who share your vision through your marketing.
- Half, not half-assed
- Build half a product, not a half-ass product
- Stick to what is truly essential
- It just doesn’t matter
- When asked “why didn’t you do this or why didn’t you do that?” answer “because it just doesn’t matter”
- Figure out what matters and leave out the rest. That’s where the real gains are
- Start with no
- Make features work hard to be implemented
- Each time you say yes to a feature, you’re adopting a child, you have to take your baby through a whole chain of events
- Your initial response should be “not now”
- If a request for a feature keeps coming back, that’s when you know it’s time to take a deeper look
- When people complain when they don’t adopt your feature idea remind them that’s why they like your app in the first place “because it doesn’t do 100 other things, and because it doesn’t try to please everyone all the time”
- If you collect feature requests online, read them and throw them away. The important ones will keep bubbling up. Your customers will be your memory
- Ask people what they don’t want
- More isn’t the answer, sometimes the best thing you can do for your customers is to leave something out
- Get something real up and running quickly
- That’s the environment where the best improvements are made
- Work in iterations
- Don’t expect to get it right first time. Let the app grow and evolve.
- From idea to implementation
- Go from brainstorm to sketches to HTML to coding
- Avoid preferences
- Decide the little details so your customers don’t have to
- Offering preference settings are a way to avoid making tough decisions
- Don’t make more work for your already busy customers. Endless preference screens are a headache, not a blessing. Don’t burden them.
- Make the call. Even a bad call will generate complaints and then you can fix it
- Make decisions and then move on
- Ideas are worth nothing unless executed. They are just a multiplier. Execution is worth millions.
Awful idea = -1
Weak idea = 1
So-so idea = 5
Good idea = 10
Great idea = 15
Brilliant idea = 20
No execution = $1
Weak execution = $1000
So-so execution = $10,000
Good execution = $100,000
Great execution = $1,000,000
Brilliant execution = $10,000,000
- To make a business, you need to multiply the two. The most brilliant idea, with no execution is worth $20. The most brilliant idea takes a great execution to be worth $20,000,000
- Meetings are toxic
- Meetings usually arise when a concept isn’t clear enough. Instead of resorting to a meeting, try to simplify the concept so you can discuss it quickly via email.
- Reasons why meetings are toxic to productivity: disrupt your workflow, convey a small amount of information per minute, they drift off-subject, the agendas are vague, they require prep that people rarely do
- When you absolutely must have a meeting, here are the rules: set a 30 minute timer, when it rings the meeting is over. Invite as few people as possible. Set a clear agenda
- Make signup and cancellation a painless process
- Keep the signup form as short as possible. Don’t ask for stuff you don’t need. Don’t throw a long daunting form at people. They can’t type as fast as you. They don’t know that hitting the TAB key gets to the next field.
- Don’t hide the “cancel my account” button. No special form, no questions, just do it. Let them export their data before they leave or they will hate you.
- Hollywood launch
- Build buzz and anticipation with: Teaser, Preview, Launch
- Promote through education
- Share your knowledge with the world: tips and tricks, speak at conferences, workshops, interviews for publications, write articles, write books
- Tear down the walls between support and development
- Don’t outsource customer support to a call centre or 3rd party
- Zero training
- Use inline help and FAQs so your product doesn’t require a manual or training
- Does Google have a manual?
- Use forums so customers can help each other
- Eliminate the middleman – you
- Pop in from time to time to offer assistance
- Publicise your screw-ups
- Get bad news out there and out of the way
- All bugs are not created equal
- Prioritise your bugs and even ignore some of them
- Most bugs are annoying, not destroying
- How many people are affected? How bad is the problem? Can it wait?
- Beware the bloat monster
- More mature doesn’t have to mean more complicated
- Microsoft/Adobe needs to sell you new versions every year so they have to justify the expense by adding new features. That’s where the bloat comes from