This is not a technical question, but perhaps more of a business question relating specifically to web applications so I'm not sure if this is the right community to ask the question in, but I'm hoping for some insight nonetheless.
I have a web application that's used by well over 300 daycares to manage day to day administrative tasks such as child attendance, staff time sheets, family profiles, emergency medical, invoicing, registrations, etc.
Now I have a list of requests from my customers, some of which are to improve existing features, and some of which are to introduce brand new features and I'm trying to determine where my time and effort is best spent.
For example, currently you can create an invoice for a family, but some of my clients want to be able to create two separate invoices for parents who are divorced (currently the work around is to create two separate families in the system, one for each parent). Similarly, you can track a government subsidy which is automatically deducted from the invoice, but some of my clients want to be able to track multiple different kinds of subsidies to deduct from the invoice. These would be enhancements to existing functionality.
However, I'd like to introduce new features as well, such as an API integration with OneDrive for document storage, or a daily report feature that allows educators to share with parents what the child's day was like.
I'm a one man show so I want to spend my time wisely. So I'm basically looking for opinions and expertise here and so my question is; am I likely to attract more customers (and keep existing customers happy) by adding more features, or by improving existing features?
Focus on problems, not features, and prioritise them based on how much value solving it would bring to the user and your business. This will make sure you're spending your time wisely and getting the most bang for your buck.
Then, once you have an idea of what problem to solve, you can start exploring solutions/features.
Let's take the separate invoicing as an example. The problem is the need to create separate invoices for divorced parents. But you already have a solution in place (albeit it's a workaround). So some of the questions I'd be asking are:
If it turns out families don't care how it's done in the software, and your existing solution is easy enough to manage in the system, then you could assume this problem is probably not worth prioritising so you could look for a different, more impactful problem to solve.
I like that. Focus on problems, not features.
The million dollar process 😏:
First the definition. Value = time and/or money
Transform feature into a problem. You’ll know it when you say, “It sounds like the problem you’re trying to solve is...” and they say “that’s right”
You: “Great. How are you currently solving that problem?”
If they don’t invest “real” time or $ into a workaround...there’s no Value for you to capture.
Create two options of solutions and attach price. Have them pick one and pay.
If the feature rolls out to the product do a “feature” via a newsletter on them that isn’t self serving or introduce them to a potential new client, business contact or love interest.
I think it'd be helpful to consider those two choices as improving your business in two distinct ways (with some overlap, of course).
The first is growth. You have existing customers with your current feature set. A simplified way of understanding that would be that those customers must be satisfied enough with your current features to have paid. So adding new features is primarily way to capture new customers and grow revenue.
The second is churn, or customers leaving because they aren't happy with your product because it's not living up their expectations. A simplified view is that they want improved existing features (or bug fixes).
So the question is, would you rather decrease churn or increase growth?
In other words, can you risk customers leaving because they aren't happy with your current features, while you focus on adding new features? Or would you rather make sure your existing customers stay, at the expense of not growing your customer base as fast?
Of course, things aren't that simple. Customers may leave because they expect you to add features thata competitor has. And new customers will join without you adding new features.
At the end of the day, in my experience as solo founder, improving poorly implemented existing features until they are "pretty good" is better than adding new features - my exception being new features that would unlock a new customer segment. As a solo dev, it's usually easier to maintain a codebase with fewer features, and if you ship things quickly, you'll fnd yourself under a mountain of technical debt sooner or later.
P.s. use data to decide if features are good enough, not guessing.
^^^This.
Most likely you shouldn’t worry about feature expansion until you have done all you can to flatten your DAU curve ASAP.
Another good way to think about this is plot the features on a graph with X going from few to many people and Y going from rare to frequent use
If a new feature is in the upper right quadrant make a fake door version and track events with a message that says we’re trying it out.
Is it being used as anticipated (based on position on the graph)?
If so, maybe you should build it for real
Figure about what demands more.
Existing feature fixes is requests are specific to couple of client or more users. Figure out what more users wants. And also when you get the request for new feature from some users ask them to pay first and then build. It will remove most of unnecessary feature request.
Sometimes I do get users telling me up front they're willing to pay, but my issue is not the money, it's the time I spend. So whether they're willing to pay or not is not a factor I use to make my decisions.
Why aren't you asking your users?
Sometimes I do ask my users to complete a survey, and perhaps that's a good idea again in this case too.
For surveys make sure you ask:
If 1, and 3 or 4 are in the affirmative then calculate your opportunity score.
Opportunity Score = #2 - #5.
Opportunity Score X Money X Time = Opportunity Gap.
Now make comps to your other Opportunities.
I am bit of against the survey. Sometimes we as the founders, do not create the in-depth question. Sometimes users don't take survey seriously. Try to have one-2-one call with different set of users like who uses your software on regular basis, who use only particular feature, who use only sometimes.