Tuesday, September 4, 2007

Project report

The implementation of the project was completed successfully, with only two missing features. One of them, splice size for dar archices, is very easy to implement and can be added to the software in 30 minutes. The other, archiving over SSH, is also pretty easy to implement technically, but getting it to the UI without completely cluttering it is a major challenge, and was left undone for now.

The UI has some drawbacks compared to the plan. The main screen UI is very ugly, but has desired functionality. Because of my lack of visual skills, I was unable to design a better looking UI. That can be of course fixed easily, once a good design has been made. Other drawback compared to the plan is that I had wanted to present directory choosing using a tree + checkbox widget. Unfortunately there is no standard widget for that and the schedule did not permit creating a new one from scratch.

The implementation uses standard Qt classes and is therefore very simple and readable code. The implementation uses many object oriented techniques. One problem in the implementation is that there is a lot of duplicated code in the wizard and edit window classes. So if a change is done to the software, the code must be changed in two places. I was unable to find a solution to this, due to slight differences in the code and schedule problems.

There were several problems in the implementation of the project. The most severe one was that the project plan was actually worthless in implementation phase. I had planned to implement the project iteratively and incrementally, but because some basic classes needed to be working before anything could be built on top of them, the schedule was impossible to achieve and actually the project ended up being done in a semi waterfall-iterative way.

There was another problem that caused a lot of wasted effort. I had wanted that the software was so elegant, that it could be used with a user priviledges and if it needed root priviledges, then a password dialog would be presented. Implementing that was too hard for my skills and I produced terrible spaghetti code and kludges. So after a week I scrapped the plan and now the security model is a unix standard, which means that if you need root priviledges, run it as a root and if not, then run it as a user.

Weird Qt bugs and missing or incorrect documentation caused some problems, but they were expected.

Integration with the parent project. Distribution was a bit more problematic than expected. Due to very early freeze dates, there were no chance of getting the software in the official repositories for Gutsy release in October. For unofficial repos, that is of course possible once a .deb package is made.

So what would I do in a different way if I had the chance? First and foremost, better planning and design. Of course iterative model means that not much can be planned beforehand, but at least a rough architecture plan and class diagram would have made the project plan much more realistic. I ended up rewriting much of the code during the project. If that could have been avoided by better design and planning, the time could have been used in a much more productive way.

What project opportunities could this project create? The most natural is to implement the drawbacks and missed functionalities listed earlier. After that, it could be possible to add more logic to the software. The software could check if the input values given by the user are feasible and offer corrections. Other than that, more distant goals could be for example desktop integration, where user could right click a directory in file manager and choose "Backup this directory with Kbackupmanager" and a new wizard window would open.

2 comments:

Unknown said...

Moro Janne - backend vaikuttaa hyvältä, toimiva frontend siihen päälle niin mikäs tässä killutellessa.. Pistä pari screenshottia näkyviin..

Anonymous said...

Hello. This post is likeable, and your blog is very interesting, congratulations :-). I will add in my blogroll =). If possible gives a last there on my blog, it is about the Celular, I hope you enjoy. The address is http://telefone-celular-brasil.blogspot.com. A hug.