Oct 1, 2008 at 8:41 PM
We spent a lot of time Tuesday discussing the choices of development environment and even dicussed different design methods within each respective environment.  Rather than flood ourselves these sorts of talks (which I am more guilty of initiating than any) this early in the game, I feel we should step back a bit - like I'm sure you all are already thinking - and start formally hammering out some feature requirements.

I guess we could call our process a modified version of the "planning game" we "played" for RNCalc. We'll definitely be going over the project specifications in great detail and extracting individual features.  This is also a good time for brainstorming features that would go along great with the requirements of the project. The difference in this stage of planning is that we aren't going to commit to implementing all of the features yet. We aren't going to assign a timeframe for the features at this point, either.   

Once we get all of our requirements, hopes, and dreams on paper (or whiteboard), we can then start grouping them into areas like "Required for Project", "Required to Keep Us Happy", "Makes Requried Feature Easier to Use", "Would Be Cool", etc. We can then move things that we deem as must-haves into user stories (or however we decide to arrange them) and start planning for our first milestone.

I realize this is starting to sound like we're creating a big upfront design, but we actually aren't. We're fleshing out the project requirements document so we can get our user stories in the right order.

A big reason this will be helpful is that once we get a better idea of all the features we need/would like to include, we can come back and make a more educated decision about which of the hundreds of ways to do each individual thing we'll use in .NET.  By no means will we sit and discuss these possibilites for each individual feature. We'll make most decisions along these lines as we come to them.  However, there are certain things like data storage and template/view structure that are essential to everything else and need to be decided on early. 

Finally, we then be able to discuss timeframes.  I don't see us assigning definite timeframes to individual features for at least a couple of weeks or so. Once we figure out features for the first release and the basic frameworks we'll be using to create it, we'll each need a few days to read up on all this new stuff we're working with before we come back and discuss how long it will take us to learn the tech and implement the feature.

But I'm getting ahead of myself. We'll get to that point soon. I'd like for us to start working on the first half, especially if we have time on Thursday in class. Otherwise, we can continue the converation in this thread. As it matures, I'll start moving important parts out to a wiki page.