Older blog entries for robocoder (starting at number 7)

8 Dec 2002 (updated 9 Dec 2002 at 01:36 UTC) »

As mentioned earlier, I decided to look into an open source, web-based project management tool for my next project. [ Up to this time, I've only been exposed to MS Project -- its obvious selling points being able to model a work breakdown structure (WBS) and display pretty Gantt charts. The downsides: non-existent groupware and incompatible files between different versions of MS Project. ]

I spent close to 20 hrs installing, configuring, troubleshooting, and evaluating Double Choco Latte (DCL version 20020706) and The Ultimate Team Organisation Software (TUTOS version 1.0.20021113). In fact, there were times when I was close to surrendering to insanity and declaring, "MS Project ain't so bad after all!" And while I perservered, I didn't arrive at my intended destination.

In evaluating these packages, I favour the following quality attributes (YMMV):

  • Installability. Faulty installation instructions and undocumented requirements made these installs extremely nontrivial. For example, DCL requires register_globals = On, while TUTOS doesn't care. Is it too much to expect shell scripts (which simplify database configuration) to be both provided and documented?
  • Compatibility. DCL worked well with Mozilla, providing both static and dynamic (Javascript) menus as options. On the other hand, TUTOS's Apache configuration changes appear to prevent Mozilla from invalidating its cache.
  • Adaptability. Both offer some measure of configurability, each to a different extent and direction. DCL favors GUI-based configuration, while TUTOS seems split between a GUI and customizing the php scripts.
  • Usability. DCL deserves praise for KISS -- despite fewer features and documentation (e.g., what's the purpose of "weights"?), I found it relatively intuitive to use. In contrast, navigation in TUTOS was bewildering. Examples: (1) links seem to teleport..appearing at the top on one form and at the bottom of another...using a different label; (2) to delete an entity, you often have to select "modify" and on the next form, select "delete". (i.e., modal behaviour)
  • Functionality. Technically, both met the needs/requirements (i.e., track time and tasks), but DCL's hierarchical approach (task + sequence) was closer to a work breakdown structure than TUTOS. Alas, in both cases, I ran into bugs which I (of course) reported on their respective SourceForge bug tracker pages.

The conclusion? Seeing as I wasn't overwhelmed, and as Bram suggests, a simpler solution appears prudent. Well, I hope this mini-review helps someone. And if not, thanks for reading my rant.

-- Robocoder

p.s. My system configuration: 1.4 GHz Athlon, 1.0 GB RAM, Red Hat Linux 8.0 (Psyche), Apache 2.0.40, PHP 4.2.2, MySQL 3.23.52

While I wait for project approval, I'm going ahead with establishing the project infrastructure. The first piece of technology is for project management, i.e., to track tasks and actual time spent (vs. budgeted/estimated). I've narrowed the OpenSource candidates to (*drumroll*):

[Double Choco Latte] and [The Ultimate Team Organization Software]

Both also track bugs (alas, it seems I won't be using Bugzilla), and neither forces you into any one specific DBMS (i.e., MySQL, PostgreSQL, and various commercial offerings are supported).

I'll post a mini-review after I've evaluated and selected one.

-- Robocoder

5 Dec 2002 (updated 5 Dec 2002 at 15:17 UTC) »

Rewrote a dozen pages and whittled down the page count from 55 to 49 pages. Didn't like the schedule so I scrubbed the requirements, and cut the estimated effort by 30%. It's as ready as it's ever going to be. Now to submit the proposal for approval. *fingers crossed*

cm: Looking forward to seeing those posts. Oh, I agree with your view of the Mozilla project's dev. environment -- I'd like to have that set-up here.

-- Robocoder

4 Dec 2002 (updated 27 Dec 2002 at 21:21 UTC) »

Productivity dropped yesterday due to migraines (likely brought on by a combination of too little sleep and too many hours in front of the computer). Will have to kick it up a notch today to rewrite my proposal. And I definitely need to spend less of my leisure time on WikiWikiWeb writing up anecdotes like WindowDressing code.

In other news, I've refined my thoughts (and semantic analysis) in "What is a bug?". Note: it won't win any awards (except possibly being nominated in the category of "Best Bathroom Reading Material When You're Only Mildly Constipated").

-- Robocoder

3 Dec 2002 (updated 27 Dec 2002 at 21:21 UTC) »

I presented my SQA paper on "Inspections, Walkthroughs, and Reviews" earlier tonight to a small audience composed primarily of testers, test managers, etc. I didn't sense a whole lot of interest, but that's probably my fault -- if true to form, I was likely whipping through my overhead slides and talking at warp speed.

Someone commented (AtLeastTwoReviewers) that "Review is not a very effective way to detect problems". *boggle* I obviously need to add my two cents.

-- Robocoder

"The customer is always right ... except in software development."

Consider when:

Expectations != Specifications = Implementation

In what other industry do you hear the mantra "reset the customer's expectations"? In other words, convince the user/customer to accept the specifications (and thus, the code-to-spec. implementation, and limitations thereof) as what he/she actually wanted/expected/paid for, rather than the developer/vendor changing the specification & implementation to match the customer's expectations (however reasonable or unreasonable that may be). Technically, the latter isn't rework ... it's new work. And isn't new work billable?

Here's a better mantra (loosely) lifted from Beck's "Extreme Programming Explained" [1,2]:

"Don't resist change. Embrace it."
On the other hand, perhaps the Borg were right:
"Resistance is futile. You will be assimilated."

-- Robocoder

2 Dec 2002 (updated 2 Dec 2002 at 00:09 UTC) »

jbucata, badvogato: Thanks for the certs.

bgeiger: I lay awake at night pondering software development; I'm horrified to imagine what I might actually dream about when I do sleep -- God, please don't let it be electric sheep

Satan: You really need to do code walk-throughs and/or software inspections: we found another instance of:

while(1);
in your latest cvs check-ins. Evil.
30 Nov 2002 (updated 27 Dec 2002 at 21:21 UTC) »

We, humans, are notoriously imprecise. Do you always agree with what someone else calls an anomaly, a bug, a defect, a deficiency, an error, an exception, a fault, a problem, or an issue? When was the last time you matter-of-factly said:

  • That's not a bug.
  • That's a "feature".
  • That'll be an enhancement (or change request).
  • We need to reset the customer's expectations.

That a reported problem may meet with any (or all) of these responses, leads us to consider the need for more concise operational definitions. I originally explored that here, and formalized into into an e-paper, "What is a bug?"

And after considerable literature review, analysis, and refinement of my thoughts, I arrived at the following definitions:

bug
any deviation between the customer's expectation, the specification, and/or implementation.
error
any observed event or detected deviation between the specification and the implementation.
defect
a deviation between the specification and the implementation, detected after release to the customer.
Maybe now I can get a normal night's sleep.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!