«« jid3rL is Building Nightly When is a Feature "Complete"? »»
blog header image
Tracking the Progress of an Implementation of a Standard

Software applications are often moving targets. Customer priorities change over time, so the feature demands change over time. Maybe you're making a COTS software product and you want to bring it into a new market. There are lots of reasons.

Software libraries implementing standards, however, are not moving targets. They either implement the standard at a given version number or they do not [1]. The standard for a specific version number will never change.

This comes into play for jid3rL, which aims to implement the id3v2 standard for the Java platform. The id3v2 standard was published in the following versions:

2.2 in Mar 1998
2.3 in Feb 1999
2.4 in Nov 2000

So to track the progress of jid3rL I've laid out a matrix of the features in each version of id3v2 and whether or not jid3rL implements them.

[1] If the standard is specific enough. If the standard leaves room for interpretation then whether or not a given software product actually implements the standard can be called into question.

Posted at August 13, 2004 at 11:59 AM EST
Last updated August 13, 2004 at 11:59 AM EST
Comments

Heh. At work, to handle the requirements of a project, I simply used Excel and created a matrix of features. I used 9 columns:

1. Status: {D=Done, F=Feature, G=Grid, D=Duplicate}
2. Document: [the hard copy paper I'm trying to replace]
3. Legacy Form: There is an old app they were using. I'm integrating Legacy app + hard copy = to a new module, inside an existing application.
4. Legacy Field: What the old field was called in the legacy app.
5. Form: [The name of the form\tab with the feature is to be done in]
6. Table: Table in the database to put this feature in
7. Field: Field name to give it.
8. Exists: Perhaps this exists already. No need to reinvent the wheel.
9. Comments: Thinks to check for when implementing this feature. Special cases?

And then I go off and meet with the client and go through every row (feature) in the matrix. I had about 200+ features. For my iteration 1 of my project, I elliminated soooo much duplicate infomation. Their business process had changed and thus there was a lot of garbage fields that no one used and everyone was too scared to delete.

Then I go through this matrix in an iterative manner and bit by bit implement the features.

I prefer this method of contructing software rather than writing design documents. Documents with too many words that are used to contruct the software can sometimes cause different interpretations. Thus this is better....

Just thought I'ld show you what how a crappy programmer such as myself does things :-P

» Posted by: roy at August 13, 2004 01:10 PM

D=Duplicate should be R=Repeat. Oh, the irony.

» Posted by: roy at August 13, 2004 01:11 PM

Spreadsheets are a project manager's best friend. They are more flexible than software (ie. Bugzilla) and are easy for everyone to use and read.

The only problem is that they don't scale well for larger projects. But for smaller ones they are great.

» Posted by: Ryan at August 13, 2004 02:57 PM

Yup. Wouldn't wanna do that for a monster app. I think inadverdantly (sp.?), throughout all my Software and Hardware design, I've always used some sort of matrix to keep track of feature design, and even verification charts.

I did that a lot when I used to make Hardware jigs for testings. Lots of 1's and 0's :-P

» Posted by: roy at August 13, 2004 03:09 PM

One thing I didn't really make clear about spreadsheets above is their lack of infrastructure. You don't need to install custom software (like Bugzilla for example, or a project reporting/analysing/data mining tool), you just need Microsoft/Open Office.

It makes it quite easy to whip up a grid to demonstrate a point by displaying project metrics (semi-)graphically or mathematically.

» Posted by: Ryan at August 14, 2004 01:00 AM
Google
 
Search scope: Web ryanlowe.ca