Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How to Build a Software Product?

How to Build a Software Product?

An introduction talk for the Startup Programming course. It highlights the main steps and principles on how to successfully build software products and web applications.

slides were updated in 2016


Alexey Zagalsky

September 05, 2014

More Decks by Alexey Zagalsky

Other Decks in Programming


  1. How to Build a Software Product? based on Steve Marmon’s

    presentation and Ohad Barzilay’s slides {Startup} Programming by Alexey Zagalsky 2016 edition
  2. How do you decide what to build? Do ideas matter?

  3. A recipe for successful startups? AirBnb for X (Eatwith) Uber

    for X (BlackTux, Uber for Uber) Tinder for X (BarkBuddy) Netflix for X
  4. Product Ideas image taken from http://startupclass.samaltman.com/

  5. “Making something that people want, but only a medium amount,

    is a great way to fail and not understand why you’re failing.” image taken from http://startupclass.samaltman.com/
  6. Step 1: Decide What to Build What (real) problem are

    you solving?
  7. User Problem

  8. Persona • Jane, 62 • Lives in Victoria, BC •

    Has 3 grandkids in Toronto • Loves to draw pictures with them • Wishes she could interact more often
  9. Principle 1 Know Your Users Needs Goals Use cases Priorities

    Skills Cognition Time Behaviour patterns Concerns Context of use Errors Experience
  10. Step 2: Explore Existing Solutions How did others solve the

    same problem?
  11. • How is your solution different? • Gain insights on

    user intuitions and expectations ◦ Users don’t want to invest time to learn the application ◦ Take advantage of existing usability knowledge Exploring Existing Solutions
  12. “Good artists copy, great artists steal.” - Pablo Picasso

  13. Don’t Work in a Bubble Principle 2

  14. Step 3: Explore Possible Solutions Did you choose the best

    platform for your solution?
  15. Platform Awareness Constraints of a mobile app • Small screen

    • Less precise touch input • Typing is more difficult • Short burst of usage
  16. Platform Awareness Affordances of the platform • Multitouch screen, Led

    notifications • Accelerometers, Magnetometers • Camera • Gestures • GPS
  17. But Don’t Wander Too Far Your goal is not to

    have as many features as you can fit. Your goal is to have as few as you can, while still achieving what you want to accomplish.
  18. Designing Multi-Device Experiences

  19. Be Minimal Principle 3

  20. Know The Rules Well Principle 4

  21. So You Can Break Them Effectively Principle 5

  22. None
  23. Step 4: Sketch Don’t be afraid to use a pencil

  24. Sketch user interface design and workflow

  25. Quality Through Quantity Principle 6

  26. Create Mockups Balsamiq OmniGraffle

  27. Prototype invision

  28. Fail Early To Succeed Sooner Principle 7

  29. Remember That Nothing is Precious Principle 8

  30. Don’t Be Afraid To Do It All Again Principle 9

  31. Step 5: Okay, You Can Code Finally Follow an Agile

    process and use MVC architectural pattern
  32. Step 6: Create a Proof of Concept End-to-end demo of

    your primary use case
  33. Step 7: Beta Test Your Product Conduct a pilot with

    real users
  34. • Start by beta testing with your friends • Pilot

    with real users ◦ Aim for your target audience ◦ Early adopters first, and then mainstream users ◦ If possible, do more than one pilot • Don’t take the feedback as is, analyze it Pilot
  35. Be Careful of Perfectly Executing The Wrong Plan Principle 10

  36. Step 8: Release

  37. Test Before You Submit Principle 11

  38. • Stand on the shoulders of giants • Talk to

    users • Explore many designs • Iterate based on user feedback Key Takeaways