Bill''''''Cast is an ElectronicBillPresentmentAndPayment product. It uses AtgDynamo to provide its "presentation server", and various java objects running over an ORB for business logic. Bill''''''Cast is a pain to use. However it is a pain for an interesting reason. All the CORBA business objects are created at startup by the "integration server" based on a bunch of ExtensibleMarkupLanguage files. There is XML to define object-relational mappings, XML to define user actions, XML to tie actions to database queries. A lot of it is not very well defined XML, it becomes very verbose since everything is done with elements, even boolean properties, rather than attributes. So the files tend to be very long and difficult to read. This is one source of difficulty. Another is rather more subtle. There is the view that what you are doing when you write these files isn't programming. "It's not programming, it's just configuration" was one line on the training course. Even "it's not programming, it's just typing". But it is programming. It's DeclarativeProgramming. Avolent haven't realised this, though, so the lessons learned during the long history of declarative programming have not been applied. The "environment" is non-existent. There is an edit-compile cycle. Declarative programming is meant to be faster, easier and to produce higher quality (for certain problems). In this case, because it hasn't been recognised as such, it ends up being harder, because the programming model is subverted. This is significant, since what people are doing with Bill''''Cast is building part of the next generation of legacy applications. They may well turn out to be the next generation of unmaintainable legacy applications.