Planning a software feature, 23 days later.

I’m still planning an important part of a software that I’ll be creating this year, I am not sure when I’ll start, but it’s something I will pursue this year, for sure.

I’ve spent 23 days already, thinking about the small details of the most important feature of this software, which in my opinion, is always the first priority, user interaction, everything should be simple to use, and intuitive, without the need of an tutorial, or an documentation to be read, because that’s the primary factor in great things, not only great software.

That’s 3 weeks, that have been spent solely on one feature, of a fully fledged software solution, that posses even more challenges ahead. Ideally I’ll be sharing my experience so far in building an multi-layer interactive process builder, that will make a full process flow, on both mobile and desktop, from one single page, and the biggest factor is of course, conditional logic that works flawlessly.

The application I’m working on will not be mentioned, or any details about it, because I want to keep it private, for now, but you should expect something ground breaking in the neat future.

The technical barrier, everything needs to be created in such a manner it’s adaptable, and easy to extend in the future, without ruining the code base, easy to plug and un-plug certain features, that means we can add more conditional logic, or more options, by simply using JSON data, instead of building code.

The JSON data needs to be organized in such a manner it can be maintained using a CMS system, that also limits the allowed steps and options based on a user level, for example a basic user can make charts with 5 items in them, and they can use processes X,Y,Z, while the VIP user, can also use A,B,C with certain improvements on the values he can set within the schema.

While preparing the architecture I’ve prepared a schema that will cover most of the technical challenges, and it will most likely cover all the needs of the system, the process is as it follows.

1. Start doing daily chore X.

1.1 If the Daily chore is finished before 11:00 AM, then proceed to step 3

1.2 If not, proceed to step 2.

2. Start doing certain chores.

2.1 If the chore managed to get a certain result, then continue to step 3

2.2 If the chore managed to get 80% of the requirements, then do a Step X, then Continue to Step 3.

2.3 If the chore didn’t manage to get to a certain objective, start again from Step 1 tomorrow, and delete all data.

3. Use the data obtained to achieve a certain objective.

3.1 If the objective can be met, then go to step 4.

3.2 If the objective cannot be met, do Step Y, until the requirement has been met, with a limit of 4 executions

3.2.1 If the objective is met, go to step 3 from the start with the new data.

3.2.2 If the objective is not met, send an email and a push notification informing the user, and allow him to chose if he wants to continue on Step 3 with the new data,

3.2.3 If the objective is not met, and the user has not decided within 24 hours, the chore has ended, and nothing is done.

4. Use data to do a certain step.

5. End of Process / Chore.

In essence, it’s a very repetitive process, and it’s at the same time very complex, that’s why we want to ensure the interface allows these options in an intuitive way, and again, easy to maintain and modify in the future. And the best part ? I also want to make it work on mobile devices, but it’s not the biggest priority to have it work on for example, an iPhone 4, where the screen is very small, but on an iPhone 6 or 7, it should work flawlessly.

I haven’t took as many notes as I’ve wanted, because I was working on other things in the meantime, but I planned things as ideas came up by themselves, while navigating the web, or just by walking outside, if I saw something that inspired me to find a solution for this, I would remember it, and note it down, just in case I manage to forget the idea, because it’s often that we forget important details just because we didn’t take the time to note it down, taking notes should be fast and effective, and frequent.

Are you planning ahead your work, are you confident you know the steps you’re going to take ? Either as a marketer, developer, florist, coffee shop owner, etc planning ahead instead of rushing things, is the best habbit to have, because it takes time to figure out the small details, and it’s always the small things that keep us happy.