Killing chaos and monotony

I like working when I have any kind of schedule or just list of things that I’m expected to do. This is why I decided to spend some time on planning Akesi’s development. I had a feeling that the application had been developed in chaos because I didn’t have any plan. After each of posts, I was making a decision what I should implement in the upcoming days. I think that it is one of the reasons why I’m providing new features so slow.

It took me almost one month to recognize where is the problem and how I should solve it. The reason was obvious – lack of a plan. The solution is a little bit harder to implement.

I would like to remind you that all of the sources are available in my Github repository. Moreover, in the README file, you can find short project description with its main assumptions.

Mind map

For the purpose of finding what I should do, I created a simple mind map. The map contains everything I had on many scraps of paper spread over my desk. I like creating mind maps because they don’t have any settled structure so I can “draw my thought” as it is. As you can see the map concise of many small blocks which are connected together. Each block represents an idea or its small part. The green color means that an element has already been done.

Trello

I’ve been using Trello on a daily basis for many years. For me, it is one of the best tools which are light and free. I created the dedicated board for Aksesi. The board is public so feel free to follow it.

Every task has its own number. That numbers will be used in creating branches in the version control system because I decided to develop each functionality on a separate branch. On the board, there are three main columns: TODO, in progress, done. I hope that their purpose is obvious to you and it’s not required to explain anything in that flow. Incidentally, not all of ideas from the mind map are mapped into tasks.

Extending Aksesi’s idea

On the mind map, you can find block named “Management console”. I have never mentioned it because it is quite a new idea. The main purpose of this console will be to allow users to manage their sites, configure authentication process and analyzing logs from the proxy application.

I also introduced an idea of distributed configuration. It assumes that a user can choose which configuration it wants to use – the one from JavaScript module or the one stored in the proxy. The proxy configuration will be recommended for all of the Aksesi clients. It shouldn’t be a problem because to use the Aksesi in the system, the proxy is a required element. It will only depend on a user which configuration will be used.

Production environment

Another new element on the mind map is production environment. When the development will be in a mature state, I’m going to run a server where the proxy will be available for everyone.

At the beginning of its life, it will be also used as one of development environments. I want to run there Jenkins which will be responsible for continuous delivery and continuous integration. On the mind map, I’ve put the basic draft of the whole pipeline.

 

Now, I have got the plan for next few weeks or maybe months. Much to my surprise, I hadn’t done planning session before starting application development. I hope that the time, which I spent on planning, will bring profits in the future. I also believe that having everything noted will help me to stay organized all the time.

You may also like