Being All Professional And Stuff
I spent some time updating my LinkedIn profile today. It's social networking for workaholics, but I suppose I have to admit that's what I am. When I think about what I'm going to do when I get a spare minute on the weekend, it's usually along the lines of experimenting with some technology -- which can then be applied to a problem I have at work. I love to tinker, to fiddle, and to poke, and the universe of things to play with is vast -- but my primary filter is whether I can use it at work the next week.
So I've spent some time with xlwt, which gives me a pure-python way to write out Excel-format spreadsheets. This is great stuff -- I've got a report right now which spits out CSV format, and when the users pop it open in Excel the default filter misinterprets some of the data, losing precision. This will let me give it to them in the proper format without the issue.
My other new favorite Python module is suds, which is a pure-python implementation of a SOAP library for web service clients. Point it at a WSDL, and you end up with a runtime-generated client for that web service, with a factory for WSDL-defined types and a simple, RPC-like API for the web service. I've been using it to pull down data from a SharePoint Web Service...that plus xlwt and I have a way to arbitrarily mashup Sharepoint data into nicely-formatted Excel sheets. If all works well, I should be able to generate my project management reports automatically, saving me hours of copy-paste-format operations in Excel.
Why do we use Excel for this crap? Well, as I've discovered, it's the one tool that's almost universally installed in finance companies. MS Project is second, but it's highly distrusted (and rightly so -- given the pace of our requirement/plan changes, I'd spend more time refactoring my project due to adjustments than I would actually doing the tasks on teh list!). Open source software? Forget it -- my manager teased me openly for trying to do these things in TaskJuggler ( though, I still think that package could work with a little data-gathering infrastructure ).
What I really want is project-management software that actually allows me to manage the project based on triggered inputs -- i.e. if each step of a project can automatically 'poke' an event into the system, and the system adjusts the final status/tasklist/etc. based on the events, then I can get a clear management report which allows me to think in terms of what things I need to change which then gives more events, which trickle back in to show me the result of the decisions.
Since it'd be event-based, it could keep complete revision history on events as well -- pointing back to the particular event which triggered the change in the plan/deliverable date/result/expectations.
That'd be sweet.
But I'm rambling.
