We at one time did ExtremeProgrammingWithPowerBuilder (see Update, below).
No really, stop laughing. ;-)
First off, who are we?
We are Lockheed Martin Research and Development, a small software development group in Virginia, writing Windows applications under contract for the Government. This has its drawbacks. First off, the code that we're writing is their property and we're not permitted to publish it here. Although, bits, spikes, and methodologies remain our intellectual property, so these we can discuss and display. Secondly, we don't have complete control over the programming environment. Which leads into the next question:
Why PowerBuilder?
PowerBuilder was (unfortunately) THE product chosen by the original development team, who're long gone by the way, for the overall project of some twelve program modules. And since the earlier ones were written in PowerBuilder, changing environments is viewed by management as wasting the previous investment.
We've been playing at XP for about six months, twisting the arms of upper management, building a testing framework, trying to create as many SmallTalk-ish objects, and generally proving that it is possible.
Fast forward to the present: we're nearly through our third iteration and it's been an eXtreme experience!
Things we're currently seeking solutions for:
- automated PowerBuilder GUI testing
- sometimes if you type the obvious WikiName the answer springs out at you...see GuiTesting
- Actually, we checked there first... But, thanks ;-) -LG
- a replacement source control program for ObjectCycle?
- refactoring superclasses without crashing the development environment
In spite of all this, we're actually doing well using XP. Our unit tests
are automated and self-enumerating; we've cut the comment-to-code ratio
way down, only rarely having to put in reminders; and
most of our functions & events have fewer than twelve lines (& the rest are just waiting to be refactored).
Update: (3/16/2001) Due largely to those last two points, above, we have halted our PowerBuilder XP implementation, in favor of one that uses Perl for 98% of the back-end coding. We have retained a bit of the original PowerBuilder, which mainly amounts to GUI controls, a few DataWindows? for formatting of output, & printing. As I replied in an email to one of the wikiophiles:
- There was nothing inherently wrong with doing XP in PowerBuilder, other than PowerBuilder, itself.
- While we found that it is posssible to force PowerBuilder to follow the premise of XP, we spent much of our time creating simple functions, such as, " add_to() & replace_with() " for lists & so forth. Basic methods that should be included in an XP-friendly language (SmallTalk already has a huge pre-existing library to draw from). Granted, the code was tight: we had ONLY the methods needed by the program & it was a great learning experience, developing them. Plus, in its favor, the whole concept of Unit Testing our PB code first, went eXtremely well.
- Since we're doing direct database manipulation thru DataWindows?, Perl seems to be much better suited, as it already has broad support for arrays, lists, & hashes. We've discussed dropping PB as a front-end, in favor of something a bit more Perl-friendly, but its DW's make the layout chore simple, plus the controls look like Windows controls--unlike SmallTalk & PerlTK's. (Maybe if they get that WxWidgets Perl port finished...)
- In the end, we used our earlier PowerBuilder efforts as a giant "spike solution." We've redesigned the new PB/Perl GUI & have purposely removed as much of the code from PB as possible.
- There was no single reason that we dropped the PB-XP, other than usual work-a-day problems faced by hundrend (dozens?) of PowerBuilder developers worldwide on a daily basis. Things like: delusional source control paradigms, nigh-unavoidable Full Regens whenever ancestor methods or base-classes are changed, an inherently unstable development environment (upgraded? to PB-7 last June & it's only recently begun to act stable.), and the list goes on & on.
We've installed a Wiki server for use by the developers, but we don't have a fixed IP (and even if we did, you couldn't look at it... ain't it fun working for the guv'mint!). We do haunt the C2 Wiki pages and can be additionally reached here: mailto:lmdev@esva.net
--LoganGraves?
The classic phrase for government work - "if I showed you, I'd have to kill you." Of course, for most of the government projects I worked on, if I'd shown anyone, they'd have probably died laughing. --JimWeaver