A place for SGML and XML application developers.

March 13, 2007

Entropy and Software Bugs

Filed under: Rants/Musings,Software — cangione @ 9:15 pm

Entropy is defined as “A measure of the disorder of a system.

While entropy got it’s start in thermodynamics, it applies equally well to software development. Specifically late changes to the system design or bug fixing after a release.

Theoretically if you have a small system with only a few developers and you designed your architecture well, the initial version of a system is fairly clean. No nasty patches, no hacks to keep the thing limping along. Yeah right. Either way, the original development team has probably poured their guts also know as energy into the system to create order from disarray (like the socks in your drawer).

As additional releases with new features and patches are applied to the system entropy increases. The system starts to break down. The system requires more and more developer energy just to keep it going as the patches and new features take away from some of the original elegance. What’s the smart developer to do?

I advocate that certain releases of a system introduce no new features, stop attempting to fix bugs and simply get the house in order. Allow modules to be rewritten taking into account all that has been learned since the original release. In short decrease the systems entropy again.

I like the way this is summarized by Frederick Brooks, JR in “The Mythical Man-Month”

..program building is an entropy–decreasing process hence inherently metastable. Program maintenance is an entropy increasing process, and even its most skillful execution only delays the subsidence of the system into unfixable obsolescence.

Charles Angione

March 7, 2007

3D Desktop for XP

Filed under: Software — cangione @ 12:16 pm

Madotate is an awesome windows manipulation tool for XP. The software footprint is less than a meg and it behaves itself very well. The program adds a button to the window bar that allows you to rotate your windows 60 to 90 degrees and make them semi transparent. You can also assign keyboard macros to rotate the currently selected window or windows open on your desktop.

This program has helped convince me that 3D capabilities are a requirement for modern desktops not just a toy.

Desktop Example

Powered by WordPress