Another week at gSchool and I am writing another retrospective about what we have learned this week.
What have you chosen to do differently for this iteration of the project?
We started out on this project by finding as many bugs as we could in the code base and tracking them with GitHub. We decided that having a good idea of what flaws there were in the codebase was the best place to start as only one of our team members had worked this codebase before and that this time we would like to know about all the issues before meeting with our clients (teachers). We also started out with performance as our site had some pages loading at around 300 ms which isn’t too slow but is something to watch and make sure that it doesn’t get much slower.
What are some of the challenges working with yet another existing codebase?
This code is like any other, it has its flaws and quirks that we have had to sort out and try to fix. Ours in particular only had twelve tests that were on the code and all of those were feature tests so they didn’t cover many parts of the code directly. They supposedly covered over fifty percent of the code but that isn’t a number that I would rely on. So one of the things that we have been working on is to add more model and controller tests to the code so that we can refactor it more easily.
What are some of the differences working more closely with a client in developing features?
I prefer working more closely with the client as we can focus on one iteration at a time and make sure that the current feature we are delivering is that best possible version of that feature instead of looking at a huge list of features and just trying to check them off one by one. It leads to a more solid design and much better code that we can deliver to our client.
Do you find you prefer a more agile approach or a waterfall approach? why?
So far I am a big fan of the agile methodology and the impact it is having on our work. Instead of constantly facing a huge list of requirements that we have yet to do we can focus on the task at hand. This leading to much better code for each requirement and a much better feature rather than getting something done and ignoring the little bugs that you know are probably hidden in the system somewhere.
What are areas within the Rails stack do you feel you have strong understanding? What areas do you feel you have weak understanding? How are you leveraging/improving these skills in your current project?
I feel the areas I am best in now are the areas where I made some of the biggest mistakes earlier. For instance I understand controllers and how they are supposed to be built now much better than before because in my last project we had such terrible controllers that we were having trouble using them while building the code. I also feel like I have a better understanding of the codebase in general since we have started taking the time to refactor large parts of the code so how it all fits together is coming together for me.