Thursday, August 13, 2009

Push vs. pull in information

(Okay, it's not Frivolous Friday. But the Crazy Idea Factory in my head is a going concern, seven days a week. So here's another one.)

One of my co-workers, bless him, is good about documenting his work. This includes leaving comments in the source code itself (to describe what it does), as well as summarizing his changes each time he checks his work into the source code repository (a kind of digital vault that keeps copies of your work on file in case you--or someone else--borks it and you need to undo that). That alone entitles a programmer to a certain amount of moral superiority, at least in my highly biased little world.

However, the problem with keeping your fellow coders (who may be tripped up by your changes and/or trip you up with theirs) appraised of your doings is that they have to keep a constant eye on the change-log to know what's going on. Similarly, you must do the same for their work. And, even then, the change-logs only apply to source code; it does not apply to changes made to the database. (And don't get me started on the bane that is file permissions!)

Granted, the office has a homebrew mechanism that kicks out a cookie-cutter email when a change is promoted to certain systems, but it's more than a little kludgey. What would, IMO, be truly useful is the ability to subscribe to a service that pings all the folders/files/repositories/databases/etc. to which you subscribe, and--unobtrusively as possible--notifies you of changes.

What it boils down to is the difference between "pull" and "push." in terms of the way we (the programmers) interact with the information being generated by other programmers' work. In the "pull" paradigm, it is incumbent upon me to completely stop what I'm currently doing to keep abreast of changes. The "push" paradigm would automatically keep me supplied with a summary of those changes as part of the flow of information I already process in day-to-day work. If the interface is designed correctly, it can be done discreetly, perhaps similarly to the "toast" that appears in the lower right corner of your computer screen when you receive an email via the Thunderbird or Outlook programs.

Perhaps something like this already exists and I'm merely ignorant of it. In fact, I would be surprised if something has not already been written, particularly given that open-source software is so often written by multiple programmers working in multiple time zones on their own schedules. And open source programmers have this knack of scratching their own itches rather than waiting for some brand-name company to scratch it for them.

I'd dearly love to scratch this itch myself, because it's persistently annoying--not to mention that I was bitten by this species of "bug" yet again this morning. Alas, there are at least three projects standing between me taking care of it...not to mention the coding that I do for a living. So if anyone's in the market for a crazy idea to run with, consider it out in the public domain.


Fly, little crazy idea! Be free!