Thursday, April 23, 2009

Compiler Project Review

I am currently in a Translation of Programming Languages class. The primary focus of the class is on building a compiler. My class, all six of us, decided to be one single team. We then decided to create our own language which we would compile to Java bytecode. We have been severely behind schedule the entire semester. Recently, I have been thinking about some of the reasons why.

I believe the largest problem was our use of the waterfall lifecycle model. It was not our intention, but we fell into it nonetheless. This caused us to attempt to develop components from start to finish without error on the first try. Not a good idea. The other problem is we have six people on the team. There are not enough different pieces to each component for all six people to be working on one component. An agile pursuit would have suited us far better. Towards the end of the semester as we have started to make progress, I have seen us shift a little more to such tendencies. The nice part about it is it gives us more parts to work on. This allows us to divide the team up rather than clustering on one component and getting in each other's ways.

The second largest problem we are having is lack of documented project management. Everyone is kind of off working on their own random thing and we randomly bring it together in the svn. However, there is no rhyme or reason to what different people are working on. We have a wiki for documenting decisions, plans, et cetera, but we have not made proper use of it. It probably would have been a better decision to use some sort of project management software to accompany the wiki. One example of the software I am referring to is Trac. This would have let us keep better track of our different requirements and bugs. From there, we could have potentially had a better idea of who would be working on what.

We have had a few other problems along the way such as our use of Subversion for version control. That being said, these other problems have been minor in comparison to the two problems I discussed above or they have been a consequence of those problems. Moral of the story: Software Engineering and Project Management is important!

Labels: ,

2 Comments:

Anonymous Anonymous said...

<('.')> Kirby agrees

April 23, 2009 at 10:27 PM  
Anonymous steve said...

Systematic approach towards any project gives good results ! So software Engineering & Project management is always advisable.

April 23, 2009 at 11:18 PM  

Post a Comment

Subscribe to Post Comments [Atom]

<< Home