martes, 12 de mayo de 2015

0.2 mistakes

This is the 3th post of the series From 0.2 to 0.3. You will find the two others in:
1.- From 0.2 to 0.3
2.- 0.2 infrastructure

This time, I would like to point out the 0.2 mistakes I, as a technical founder, made. I would like to endorse success to our group but mistakes to me because it is fair and we persue fairness as gold. Mazinguer is not technical so will not be fair to make him responsable for my mistakes

Starting with infrastructure, the main issue we have was to put most of the services we need in a single cointainer contradicting what docker's creator pretend for it

The biggest one, as mentioned before, was to try to use Elasticsearch as main and only database. It is not and not pretend to be so. This mistake makes me build an ODM for ES since there isn't (as you may expect)
This was not super time consuming and was a good experience for me as a programmer but this is not an ego trip and I need to think in the group and the result (if you are interested on check for this ODM even when it is not recommended, please ask me anywhere)

Another limitation we need to address is the flatness of the projects/tasks. Trees are my strongest area since I spend the last 10 years R&Ding them (with Yanged as result. Warning: not production ready, pretty slow) so it doesn't make any sense not to use them giving how natural for humans is to think in tree shapes (it is not casual that a lot of parts of your computer present trees: from filesystem to HTML)

But the main reason to start from scratch is the fact that we start this project with an extreme programming aproach and we didn't plan to much so this always ends up introducing subtle mistakes that make the code not super maintainable and hard to add more features

Take for instance the Project's points snippet. How will you implement this calculation? By quering ES for all pomodoro's with in a project or by quering all tasks and then its value by quering its pomodoros for their value? In a tree structure you haven't two alternatives: you have to make it recursive because you don't know how deep the tree will be

There is, too, something that will need to be address in the 0.3 version, something that Mazinguer, as salesman, is obsese with: flows. Right now, the process of adding content to T:F is made in a, let's call it, clasical way where the app presents you all the boxes you need to fill to add a project/task/pomodoro/etc. We always see T:F as a game so this way of asking for data is super boring. The same issue for the finished actions message: the Flask flashes are boring as hell

In the same line, we love with passion simplicity, we are obsesed with it and the 0.2 version has room for improvement on this area. With the flat structure there are concrete places where you can put pomodoros, for instance. This is not real, we don't work like this, at least not always. Sometimes you start to work on something because you find an article on the internet that gives you a good idea you will potentialy use in the future. You don't have a project to put in, so imagine a task. Wouldn't be nice if you can put any content (we call them papers) on any point of the tree? This will help you focus on what's really important: to solve problems

As we use the program, we tend to see two main profiles: entrepreneur and, my favorite, time investor. In 0.2 there is not a clear separation between this roles and this tend to confuse a little

As you can see, doesn't see to much to start over but giving the fact that we are in a R&D stage, seems pretty obvious to me that a fresh start will give away with a lot of small annoying mistakes in the quest of a superawesome code

Next week we will introduce the roadmap for the version 0.3.

If you have any suggestion to make or you want to see a particular feature implemented, please use the 0.3 project in T:F to ask for this features. On 0.2 was the Issues project, on 0.3 will be T:F 0.3. Use them as you will use the github's issues: to ask for help or feature proposals. So PLEASE help us to improve T:F and change this greedy world