The nature of my project involves making many changes as I am producing the application. Therefore, I decided to choose agile development for this application. This means I am not doing any heavy documentation and my design stage does not have to look like the final product. This is because I have limited time and all of the heavy documenting is not needed since I am working alone. This gives me greater flexibility in making any changes for example changing the requirements etc. If I have chosen waterfall development, I couldn’t flexibly switch between different development stages. Doing waterfall was impossible in my case because I couldn’t design diagrams that would look like the final product due to the fact that during this project I was learning many new skills which I wasn’t sure would work as planned in design stage. I decided to do sprint cycles. That means every two weeks I would review what has been done and what needs to be prioritised, determine if the current pace needs to be improved or not. I am able to demonstrate my application meeting most of the requirements because of prioritization of tasks. I learned about this approach from Toyota website and other online resources that specifically apply it to computing. …show more content…
I used Kanban to insure there is a steady flow of tasks. Kanban is a type of time management system developed in Japan for the computing industry. So I would split my table into 4 categories: backlog, in progress, testing, completed. There is a wip limit on 3 of those categories so that you have to finish some of the tasks before starting working on new tasks for example in progress has wip limit of 2 this suggests I cannot work on more then 2 tasks at a time. This wip limit helps work flowing and save time by eliminating task switching. For this approach I have used board in my room and I used stick notes to represent different processes. I believe this philosophy helped me to save valuable time and replaced the gantt chart which was initially produced. Reusability of components is a very important process of agile development approach. So I decided to in cooperate it in my project. I have reused the paint component that allowed me to draw a signature. Then I had to integrate this component with my classes and make some alterations e.g. change the looks of gui, save the image in local file and change image format. Reusability is a very powerful method that can help to greatly speed up development and in industry it can save a lot of money. The reason for having GIT is to keep track of changes you made to the application, this way you can see how long you spent time on each functionality. Another reason is that you can reverse a change to a previous commit you made. For example, your code doesn’t want to compile you don’t know how to solve it all you have to do in that case is to load previous version. When creating GIT you need to specify the path for the repository in other words a local disc space where you