Wednesday, December 14, 2011

I've Got Issues

It's crunch time (finals) so I'm in a rush, and I want to summarize as quickly as possible my experience with issue-driven project management, what did and didn't work.  My group implemented all the functionalities specified in the assignment...  Well, almost all of them.  At the moment, the monitor-goal class isn't working correctly.  Hopefully our teammate pulls through before the deadline.  Anyhow, let's gloss over that, shall we?  Overall, the quality of the software is much better than it would be if none of us had taken a software engineering class.  At the end of the semester, we now have a slew of SE tools to help us build better software: automated quality assurance, testing strategies, continuous integration, and on and on goes the list.

I had been eager to work on software with a team, and this foray into IDPM was a first for me.  Having people work on the same code base is helpful, as you can refer to them if you get stuck, and it makes coding a bit less of a lonely process.  Keeping the focus on issues broke the task down to a manageable size, making group work possible.  This is where we got to dig in to the third of Prof. Johnson's Three Prime Directives of software engineering.  Simply put, good software engineering practices prevent the third of the prime directives from being a nightmare.  If not for that, and the fact that we were reviewing software made by peers of ours from the very same software engineering class, the system could have been very difficult to understand.  Now I am beginning to wonder what it would be like under different conditions, but I digress. 

Because the project was small, we were easily able to determine where we needed to put our efforts without blocking other members of the groups from being able to move ahead with their work.  Having the state of the project visible and being able to track issues is something that would be useful even without a team, and I plan to experiment with it on solo projects down the road.  Once my group got started, we followed the formula pretty well, such that no task was to take much longer than two days, each was specified by an issue, and each issue was assigned an owner.  We didn't get together every 1-2 days, as the guidelines suggested, but this wasn't necessary for us to keep our project on track, perhaps because it wasn't a very large project.  "This system requires frequent face-to-face meetings to be effective," say the slides, but instead we met informally as needed via Skype, and this proved to be a not-too-bad substitute for IRL meetings.

It's been a really tough semester.  While I'm glad it's about to be over, I'm also glad to have learned so much along the way.  Please come to the party when finals are pau, and stay tuned to this blog for future reports from yours truly.

No comments:

Post a Comment