In the first iteration there were things that helped us and hurt us in our development process. I will go through and explain what things we did right for the first iteration and what things we did wrong for the first iteration. The goal here is for everyone to learn something about how to make their software developing process even more seamless from one stage to the next.
The parts of our process we that worked for us was the iterative development model and the version control system. Using the iterative development process was helpful for the first iteration because it broke the full project up into more manageable parts. We first started with designing what we were going to have to do with this first iterations requirements. After that we wrote test cases we would be able to easily test our code throughout the development process. Then we were able to write our code faster and easier because of the self verify tests that we had written before hand. Also we already had an idea of what your functions needed to do from the test cases we wrote. Another piece of the process that worked well was the use of a version control system was a tool even though we did not use to its fullest for the first iteration, but I can see using it in later iterations. I can see using the revisions as a life saver in later iterations but for the first one there was no need to revert to a previous version. It also helped with transferring the working copy of the code from computer to computer and between the two of us. Next I will discuss the parts of our process that did not work for us.
There we some parts of our process that did not work for us. One problem that my partner and I ran into was when we were writing the test cases in the same file with the Subversion system. We tried to get the work done faster by each of us doing half of the test cases all in the same file. When one of us tried to commit the code it worked fine but when the other person tried to update before committing Subversion could not merge the files even though we only added lines and never deleted lines from the file. So this is just something we will have to take into account next time when we are trying to work on the same file. Working in pairs helped us get through some of these glitches in our development process.
I believe working in pairs was helpful for working on the project. Having another person to work with allows you to split up the amount of work between the two of you so it does not seem overwhelming writing the test cases and code for the project. Another reason working in pairs was helpful was we were able to communicate with each other if either of us had a question about what we were supposed to do for a part of the project. It also allowed us to go to office hours that we might not have been able to make because one of us had another class during some of them. For the next iteration, there are some things that we are going to have to change to make sure we are using every minute to its fullest.
There were some things that we need to change before we start the next iteration. The obvious answer to this question is that we needed to start working on the iteration earlier. It seems that there is no time that is to early to work on any piece of homework but you have to force yourself to start the same night as getting the homework assigned. Another thing that we could change in the next iteration is to write as many test cases as we can and then write ten more because you can never have to many test cases. The more tests cases that you can think of, the stronger your end program will become. Those tests also make you more of a defensive programmer. We did try to write test cases before writing any of the code too.
Even though the amount of testing we did was not sufficient we will continue to use it and improve on it. We will continue to use the idea of writing black-box tests into the rest of the iterations. The reason we will continue writing these tests is because the amount of correct code you are able to write with the test cases that can self verify is significantly higher than working without them. We were able to verify that our code was working without anymore effort than running the test cases every five to ten minutes. Another thing we will continue to do in the future iterations is communicate everyday about what we are getting done and what we are needing to get done for the iteration.
In the end there are only a couple things that you need to take out of all of this. First thing is start when you are able to so you can get all of your questions answered and you can schedule your time accordingly. Second write as many test cases as you can think of before you start working on the code. The last piece of advice make sure you communicate with your partner so you can keep each other up to date on any changes to the development.