Friday, October 28, 2016

Project management software and scope creep

Project management is just one of those areas I keep coming back to, from a semantic standpoint. Since it's by definition a tool that every software development project must use (to paraphrase a financial management book I once read, if you have a project, you will manage it - the question is whether you'll manage it well or not), every software developer sooner or later takes a stab at building a project management tool.

As a result, the space is cluttered with three million solutions, all of which do more or less the same thing but expand out to include every aspect of life within an organization. This is scope creep.

Why does it happen? A lack of semantic explicitness.

Case in point - or rather, what's set me off this time: my son is doing a self-study course of AP Macroeconomics. To finish it by the time the AP exam rolls around in May, we have to make a schedule. And as I was doing that by hand with a calendar, of course, I thought: I should be doing this in Perl.

But you know what? CPAN doesn't really have anything that does that. And when I go off to find general project management tools in the open-source space (let's not even talk about the proprietary space!) I find at least a dozen contenders.

They all involve stack lock-in, to a greater or lesser extent, because, well, that's what syntactically specified software does.

And yet we all know roughly what's meant by project management. That is an area rife for a semantic approach. Sadly (or, well, it's not really sad) all my free-time development cycles are taken up by robotics these days. So this might have to stay on the back burner for another few years. But eventually I promise you....

Tuesday, October 18, 2016

Declarative knowledge on the CPAN

I was struck today once again by the realization that CPAN contains a lot of declarative knowledge hidden inside various modules. This time it's Date::Calendar::Profiles, which contains a great deal of information about holidays around the world. A CPAN module is probably not the best place to maintain that stuff, but there it is.