Creating a new product or feature

One of the most important details when creating a new product, or adding a new feature to an existing product is knowing exactly what will happen, and when it will happen once you or your team starts working on it.

It’s often the case that a product or feature will fail because of bad planning, rather than bad execution, because bad execution is not the primary factor of failure, if you know exactly what you want, you can make sure that you or your team is capable of finishing the required things.

The Completion Level of Your Training.



The first scope

The first thing you have to do is note down everything that comes into your mind about your product and the features you want to implement or add to it.

Make sure that your initial planning schema covers this important detail, feature X requires feature Y in order to work, and that way while you’re doing feature X you know that the next step is feature Y, and you can focus on the key details required by feature X in order to not adapt too much on the road.

Example : 

WPEP, an plugin I am actively working on and adding new features weekly, and this week I’ve completed the Weekly Digest Feature , it’s an option that allows automatically sending an email notification to students each Monday morning where they’re presented at a glance with a list of courses completed, and a list of courses progressing. Everything should be customizable by the administrator / course creator, such as texts, and also have an option to limit who receives this email, by having an option to separate inactive users from active users.

This wasn’t the initial plan for this feature, and in this course you’ll understand how many things have changed before I’ve actually started implementing this feature and having a clear scope.


Adapting my initial scope

Now that you have a list of everything you want to happen, you need to define your product or feature in a few sentences or more, depending on the complexity of what you’re planning to create.

Initially I wanted to create a feature, that allowed students to receive email notifications after X days they haven’t progressed on a course. 

In theory this is a great feature, but if your student is progressing trough multiple courses at the same time, they would be constantly receiving emails, and that would be pretty annoying, and once they’ve completed the course, they wouldn’t have an email to receive, only if they’ve started another course already.

So I’ve adapted to the situation.

Instead of making one feature that had the goal to remind students to complete their progressing courses, I have changed the plan to a feature that displayed the progress the user did each week.

See the biggest difference ? Students will receive an weekly email, that shows them their progress.

Because some teachers may not want to remind students they’re lazy, I’ve made an option for the weekly digest, that makes it mandatory for the student to complete a minimum number of lessons in order to receive the weekly reminder. And of course this option can be set to 0 if you want everyone to receive an email.

Instead of being a feature that just reminds the user to complete a course, it’s a feature that informs the user about their progress, and can also be a source of accomplishment.


Adding the necesary options

Options are important, and people love options, not settings.

When you’re making a new feature or product, aim for having as many things ready-made. 

It takes 5 minutes to buy a software, it should take less than 5 minutes to get started, because we’re living an era where people like ready-made things, and that’s what makes a difference, especially in the refund-rates.

In order to make my feature work very well, there’s only one thing people need to do to enjoy it, activate it.

Example :

The weekly digest has many options, but they’re all ready made, the email sent is already written, and people can change it if they want to.

The email used and the from name default to the wordpress ones, but it can be changed very easily, but it’s not mandatory.

Spend a few extra minutes or hours in order to make sure that things that can be ready-made, are ready-made and don’t require time to be spent in order to use them, because many people value their time, and so should you ( value their time ).



First phase

It’s important that you only start working after you’ve clearly defined what you want to achieve, and know as many small details are known.

Make sure that once you’ve started you have something working as fast as possible, because once you see it, you may want to change your plan a bit ( if you don’t change it, it’s great ).

Even if it’s not in the final shape, you want to play around with it, you don’t have to present it to your customers just yet, test it, break it, improve it.



Make sure you’re not the only one testing it, it’s often the case you’ll forget some small details.

Once you’ll have more and more experience, you’ll understand why you haven’t noticed those small details, do you want to know why you’re doing it ? Because you’re a professional at using your own tool, you don’t have any questions.

When a new customer gets your software, he is clueless about how to use it, and you want to make sure it’s easy to use for a total newbye. If you need a tutorial to get started with your software, there’s room for improvement, because anything can be created in a intuitive and easy to use way, especially in the wordpress ecosystem, where standards are in place to make new things seem familiar.


No need to rush

It’s often the case people will rush testing, because they just want to deliver, but many things come up only in time, and you want to allow the time needed for testing, and properly do it.

You want to use the software like it’s the final thing, and fix every small detail you may notice, because many other details will come up later.

If everything worked fine for a week, then your product may be ready for your customers.



Greatness !

Make sure you standby on the support desk more than usual, when you’re adding a new major feature, it’s usually the case something bad happens, for example in the wordpress ecosystem it’s plugin conflicts.

And for SaaS applications it may be browser differences, so many sure you’re ready to sort everything out, because the faster you handle these annoying situations, the less people will notice them.