Multikanban is surprisingly the result of too much procrastination. Developing a productivity tool to come out of a spiral of proctrastination seemed the best idea to learn how to develop in several of the latest technologies used in web development.
The geek part
You have so much to do. There’s so much to learn and try out I constantly feel overwhelmed and end up doing nothing. Time goes by and we’ll be dead soon enough so the idea of becoming more organized is always in our minds.
A couple of years ago, a friend introduced the concept of kanban in a project we were working in and since then I started using it for personal organization. I wrote down any ideas I had and prioritized them, seeing them getting done was a great motivation and really made a difference. It also helped me keep more things in mind, the typical thing you always want to do and always forget about was now written there for you to read it every day. I then read more about the topic, even stumbled upon personal kanban. Damn, of course someone had thought about it before!
I used LeanKit and other apps based upon the concept of kanban but they were all too advanced, with tones of features I don’t need, like team management. So at some point the idea to develop my own app with my own needs came through. Multikanban doesn’t include new nor better features, it is just a minimalist app to manage several kanban boards, where everything is just one click away. You can easily create tasks, drag them around and sort them by date to see what you should have already done and haven’t yet.
The other geek part
I had played with PHP, JS or CSS before, but developing a complete single page application with an API REST and a js framework in the frontend looked like an interesting challenge to me. The truth is that I learnt a lot.
I like the concept of recursivity, so I found it funny to try to use and hone a methodology that would help me implement the methodology itself, in the form of an SPA. The most important thing now is to see if I can keep finding it useful to develop other side projects and get things done!
Another very interesting part of the project was to document every step and publish it in the blog. Writing down and trying to explain what you’ve learnt to others, really helps you understand things better. You don’t understand things until you can properly explain them. It is very motivating to see that someone learnt something out of it and it is also a way to give back from everything you’ve learnt thanks to others.
Some of the used techs, apps and tools I had to learn and play with include: Balsamiq, Adobe InDesign, MAMP, REST API, Silex (PHP), Composer, Postman, SQL, DQL, MySQL, Sequel Pro, GIT, Github, StackOverflow, NPM, Bower, Grunt, Requirejs, Backbone, Marionette, Underscore, jQuery, Bootstrap, CSS, LESS, Sublime Text 3 and Multikanban! Wow, if you think about it, that’s a hell of a lot of stuff to get familiar with. I forgot to tell about the most important app though, grooveshark x)
Obviously, this app is just a starter, there’s so much that can be improved, but it really gives you an idea of why the new techs exist, their purpose, and how the webdev is getting more complex every day. Try to do this without a js framework! Or without LESS! Or without Grunt! What a pain in the ass it would’ve been!
A very good decision was to use github to share the code and learn from and with others, both repos used for this project can be found at:
At this point, what’s next? Well, first thing that comes to mind is testing. But improving environment definition and deployment should also be in the roadmap. It is now a good moment to think about which techs really made the difference and which ones you’d rather find an alternative to.
Finally, I just wanted to thank everyone who has helped me accomplish what looked hard for me to do not that long ago. Especially Ryan Weaver for his great job with the knpuniversity tutorials and the guys at the Marionette gitter community.
To Alex 'ashiso' :-)