One of the nice things about working that the Enterprise client-who-cannot-be-named is that they take software engineering seriously. Really seriously. Code is developed in our development environment (where I can do as I please), promoted (by one of the promotions team) to the UAT (User Acceptance Testing) environment, where I have normal user rights, and once UAT is signed off, the template is then promoted to the Production Environment. We're using Teamstudio Ciao! as a change control mechanism (essential for other members of the team - a handful of people making changes to the same templates).
And of course, given that its a modern, progressive enterprise customer, we get to work where we please. In the office, from home and so forth. Even in the office, we use virtualisation technology to connect to our dedicated PC buried somewhere in a virtualisation environment. I have not the foggiest where my actual machine is, and amazingly, I dont really care. One of the test machines I used till last week was in Germany, and we regularly use another in the other side of Europe. Such is the bank networks, we dont really notice unless we're chucking around 10-gigabyte data chunks.
The nice thing (or rather, one of the many nice things) is that I'm working with developers who use other tools and languages to build applications. And so, as all developers do, we chat at the water cooler about stuff, learning from each other. It certainly beats being chained to a desk, mercilessly whipped and churning out code - interesting or not - in isolation. The VB guys and C# guys tend to use the MS Visual Sourcesafe tooling for their code repositories - I must investigate that further for the bits that we have.
So toolingwise, I suspect we might end up using Teamstudios rather excellent Build Manager - something that allows the promotions team to get the latest template from Ciao! and apply it against different environments. Cool as.
Should that not go though (and even for this enterprise customer, getting them to spend money is hard) a backup plan calls for something to create new templates from Dev Code (which is easy) and then apply them against other databases. Now the code to do a design refresh is well known, but does involve calling the Notes C-API. The good news is that the very calls are in the 'ls2capi' C-API wrapper example code which you can downfrom from hadsl.com (along with many many presentations I've done over the years). I just feel that in this day and age - some 15 or so years after I started using Notes in anger, I'd have rather hoped we had slightly better coverage of all possible calls to the C-API interface from Lotusscript. Hopefuly, once Brent Peters has got DXL round tripping working better in 8.5.1 (something I'm salivating over!) we can see some more of these system-management API's pop up.
Which ones would you like to see ?