Wednesday, February 29, 2012

This week has been really, really difficult.  Trying to get the alpha ready has really been incredibly time consuming.  I think we all thought we were further along than we were.  I'm sure I've written a few thousand lines of code myself, and have gone over well over 10,000 lines.  Our Page.js file has kind of gotten huge.  It's bigger than Dan thought it was going to be, or he would have broken it out.  We still may end up doing that.  I have noticed a lot of code repetition in our project, and; looking back, can see where we could have done a lot of things differently.  Sadly, it's too late now.  I suppose this is stuff we should have caught in the development phase, but we didn't.  So now we're testing!

Testing is tedious.  I realize that it's a necessary part of any program development process, and that doesn't make it any easier.  It's particularly so when you're testing someone else's software and you want to be working on your own.  One of the things I like about doing web programming is that its so instantaneous;  that is, I test all the time when I'm developing a web application, because it's easy to do so.  Just hitting the preview button in your IDE or the refresh button after you've saved some changes will instantly show you what you've done.  With the new browser's bug editing features, it's even easier than it ever has been.  So testing is something that I do constantly during the development process, and having to to it explicitly, just on it's own, is not my favorite.  Even so, it is nice when something you've created gets tested and is found to be working.  It's also nice to get a list of things that don't work and be able to correct them.

I'm hoping that we will be able to correct all the problems that the Camper World group is finding, and before the deadline for the Beta.  This project has turned out to be larger than any of us anticipated, and I still think we can complete it before the semester is out.  Again, it would help to have a fifth person, another programmer, but not having one won't make it impossible, just difficult.  I hope you'll keep our diminished group size in mind when grading.  ;)

Tuesday, February 14, 2012

Team Environments

What is the importance of working in a team environment in a software engineering project?  It's my opinion that teams are extremely important when doing software engineering.  I find, personally, that when I'm working on a project, I tend to get to certain points that are like plateaus.  I hit them, and I just kind of get stuck.  It's very difficult to get past these plateaus on my own.  It's not impossible, but the level of effort required to get past the "block" is generally prohibitive, especially since most projects I work on individually are personal.  I do have some assignments at my job though, currently, and I have hit the plateau on one, and am having a hard time with the other.  I'm working on these projects individually.

I find that when there is a team involved, other team members can quite easily push over a plateau, helping me get back on track.  A lot of times, they have ideas that I've never considered, or a piece of knowledge that I haven't yet gained.

I used to be big into body building, and it's similar there.  If you don't have a partner or at the very least a spotter, you will not be able to push yourself, and you won't be able to progress as rapidly as you would be able to if you had a partner.  Partners can push you and help you to get past plateaus.

I think it's cool that Google employees work in teams, and that they do peer reviews for raises and promotions.  I like that it encourages an atmosphere of support and teamwork.  I like peer reviews, and as we've been doing them in this class, I think they've been good.  I think they might be more effective if we received the results of our peer reviews whether we want to or not, though I know that makes more work for the teacher.

I think software engineering is a team sport.  I believe that it is much easier to complete a project, and much faster to complete a project as a team; even just a two person team can make a huge difference.