Notebook



August 10 2006

In continuing to review the good and bad aspect of our last product cycle I ran across a discussion on the Coding Horror website called What is "Modern Software Development". The topic of the discussion is about identifying an essential checklist for good software development. There were existing lists from Joel Spolsky and Steve McConnell as well as new suggestions. It inspired me to compile an essential checklist for our development team. I used items from the original lists and added some of the suggestions from the discussion. Here is the list with how I feel we currently stack up.

1. Do you use source control?
Yes. All our source and documentation is in source control and backed up nightly, offsite. We use Subversion and TortoiseSVN.

2. Can you make a build in one step?
Yes. Each of our projects have build scripts so they can be built and packaged with single commands.

3. Do you conduct code reviews on a regular basis?
No. We have a small team of experienced programmers who all sit around a big desk in our dev room. This makes communication much easier, but it's still no excuse for being more formal about code reviews. This needs to happen.

4. Do you have a common code repository?
No. This is not so crucial for our small team, but as we grow it will be important. We find ourselves constantly asking "Hey Steve, where did you implement that XXX portion of code" so we can copy it in another place.

5. Do you have a bug database?
Yes. We use Bugzilla for recording bugs.

6. Do you fix bugs before writing new code?
No. We do fix bugs and supporting our customers is a top priority, but during a product cycle bugs are usually the last thing that are done and also the most likely to get short-changed.

7. Do you have an up-to-date schedule?
No. Scheduling is kinda done at the watercooler. This needs to be more formalized and done across the entire product team.

8. Do you have detailed activity lists?
No. We should be able to extract detailed activity lists from our specs. Currently this is not possible because our specs are not as detailed as they should be. I think these are important because it is a good litmus test for our spec process.

9. Do you have unit tests?
No.

10. Do you conduct regular usability testing?
No.

Whew. After going thru all that it appears we have a long way to go. It's not totally as bad as it seems. If there was a slight bit of doubt in answering the question, I listed No. Some of the items we do to a certain degree but I felt we need to address it better. Hopefully in the upcoming months we can improve on these items now that they are identified.

« HotKeys | Windows Live Writer Beta »
Name
E-mail
Home page

Comment (HTML not allowed)  

Enter the code shown (prevents robots):

Search


Article Tags




Past Articles


Ads



Other Links