To start off the backup plan, I will need Qt and Boost. Before this, I'm a fan of MFC, everything I did is for Windows (only). But now I was using Windows and Linux together, thus I think Qt would be my best support on UI work for cross platform environment. Boost contains many flavor type of algorithm that could ease up my development effort.
I start off this project with unit test. I am a true fan of Test Driven Development methodology. I've been using this methodology for years, and it proves the lesser defects report from the tester. So I believe that a quality product comes from quality code. A quality code depends on how well you design the code. And unit test would be the quality controller on my code.
Sometimes I do use unit tests code as my code documentation for other developers, this may not true for others, but I just so lazy to prepare functional documentation.
Well, that's all for the plan. Wish me luck!