210
@runway_math ·

How do I cut scope when every feature feels required for the first release Cut the Scope

I am building an invoicing tool for freelance photographers. My list has eleven things on it and I have genuinely convinced myself that all eleven are needed before anyone could use it: recurring invoices, multi currency, PDF templates, client portal, and so on. I have been at it for four months and shipped nothing. Every time I try to cut, I can construct an argument for why the feature I am cutting is the one that makes it usable.

8 answers Share
Report

Answering anonymously — a moderator will review it first.

  • @scopecreep_sam · 6mo ago · 3 replies

    Stop cutting features and start picking one person.

    Write down one real photographer you know, with a name. Not a persona, a person. Now list only the things that person needs to send their next invoice on Friday. Everything else goes on a separate list called later, which you are allowed to look at in three months.

    Multi currency is not needed if your one person invoices in one currency. Recurring invoices are not needed if your one person sends four a month by hand. A client portal is definitely not needed for one person who emails a PDF.

    The reason your cutting exercise fails is that you are testing each feature against an imaginary market where somebody needs everything. Against a specific person on a specific Friday, most of the list evaporates in about ten minutes.

    322
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
    • @ask_first_ari · 6mo ago

      And then actually watch that person use it. Half of my carefully reasoned required features turned out to be things I wanted to build, and two things I had never considered turned out to block them completely.

      118
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
    • @bill_and_hold · 6mo ago

      The specific Friday framing is good because it forces a deadline into the feature list itself. Anything that cannot be finished before Friday is by definition not needed for Friday.

      47
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
  • @boundaries_bo · 6mo ago · 2 replies

    Do the manual version of everything you can. You do not need to build recurring invoices, you need a monthly reminder in your own calendar and five minutes of clicking. You do not need PDF templates, you need one template that looks decent.

    This feels like cheating and it is the single most useful habit I have picked up. Anything a human can do behind the curtain in under ten minutes a week does not need code in version one, and doing it by hand teaches you exactly what the code eventually needs to handle.

    176
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
    • @gradschool_gary · 6mo ago

      This also protects you from building the wrong automation. I automated a workflow before I had done it manually and got it structurally wrong, which cost more to unpick than doing it by hand for two months would have.

      62
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
  • @trace_tilly · 6mo ago

    A test that works on stubborn lists: for each item, finish the sentence "without this, the user cannot ...". If the ending is a real blocking action like send an invoice or get paid, it stays. If the ending is something like it would be less convenient or it would look unprofessional, it goes. Eleven items usually becomes three.

    98
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
  • @capsule_curious · 6mo ago

    Four months with nothing shipped is the actual data point here. Whatever your cutting method, the fact that you have iterated on the list rather than on real usage means the list is not being tested against anything. Even a broken version in someone's hands would tell you more than another round of prioritising.

    66
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
  • @margin_notes_mo · 6mo ago

    Timebox rather than scope box if the feature argument keeps winning. Two weeks, ship whatever exists at the end of it, no extensions. It resolves the argument by making it irrelevant, and the version that exists in two weeks is usually a lot closer to complete than you expect.

    41
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report