«« ID3 File Reading and Writing Use Cases Use XML for Metadata Type Description? »»
blog header image
Week 02 Status Report

Last week was dominated by documentation but I did still manage to get the AudioMan build machine set up. One Eclipse project -- org.audioman.durham.core -- has a bit of properties code, is building with Ant and running 9 JUnit unit tests. There's nothing to deploy yet.

Here are the artifacts I worked on in the past week:

Draft AudioMan2 Architecture diagram
ID3 File I/O Use Cases

This week there's more work to do on the build machine:

  • get the builds going nightly, emailing me when they fail
  • look into tools that send emails when people commit to the CVS repository (like CVSspam)
  • generate code coverage reports with EMMA

Sure, I could do this build machine stuff later but why? Some people are so anxious to get into the code that they don't set tools up to help them. I already know these tools and processes work for me so I want them right now.

I added an AudioMan Release Engineering section to the AudioMan website to describe what's going on. I don't want release engineering to be some magical thing working under the covers -- I want it front and center so people can check it out. All of the release engineering code will be open source under the EPL too.

There's one other artifact I was working on last week: sequence diagrams for Durham's core logic. I have hand-drawn drafts that still need another revision to consolidate some common things, then I'll do them up in Visio and post them.

Why do this up front work? Well, it's good to get it all down finally. People are wondering what this Durham thing is supposed to do. I already figured out a lot of the logic when I worked on AudioMan1 so the work is done, it's just locked in my brain. I just have to strip it down into the basics and get it really well tested for the first few iterations of AudioMan2.

Another reason? Just like the ID3 File I/O use cases, Durham's core logic isn't going to change much. Is the metadata stale? OK, update it. The rest is passing bits to the right components. Durham is the basic basic stuff and that's why I wanted to rip it right out of AudioMan1. Then people can use Durham for other things.

The goal is to get these first iterations of AudioMan2 out as quickly as possible but still balancing the quality factor and doing proper release engineering. That means stripping down what AudioMan2 does to a flying gas can. Less to code, less to test, less to release. Then we'll turn the can with wings into a F-117A iteratively, week after week.

Having the patience to get this all set up is probably the hardest part. It would be so easy to get undisciplined and write a bunch of code but as the PM I have to think long term. If AudioMan1 taught me anything, it's that.

Posted at March 07, 2005 at 04:07 AM EST
Last updated March 07, 2005 at 04:07 AM EST
Comments

Just wondering, have you taken a look at maven before?
http://maven.apache.org/

I'm looking into it more myself right now. It appears to be a lot easier "out of the box" to get a project website, unit tests, coverage, etc. done. But, again, it's another tool to learn...

» Posted by: Jim at March 7, 2005 09:23 AM

It could also be more restrictive. I like the flexibility to use any tool I want, and I don't mind doing the leg work to get it going. Let me know what you find out from your research.

» Posted by: Ryan at March 7, 2005 09:27 AM
Google
 
Search scope: Web ryanlowe.ca