|
EPAM is the leading outsourcing development organization in Central and Eastern Europe, developing millions of lines of enterprise java code across hundreds of different project. At EPAM, we identified an illness, which we internally call "jar-cancer". Even if an application is well modularized and well designed, and each module is designed using deployment diagrams and rigid development practices before being placed into the selected jar file, during the coding phase software engineers often tend to cross call between theoretically independent modules. We believe this is not a problem unique to EPAM.
It is a latent process, similar to cancer metastasize. And unfortunately it is rare that it becomes visible during the build process, and rarely is it visible in a simple deployment scenario, where every module is deployed on the same application server. It is usually discovered in close to real or actual real deployment scenarios, when these modules should work together in a distributed fashion, running on different application server instances or across different boxes, which is far too late in the process.
At this point, the symptoms are: the enterprise application has already lost it's flexibility; modules cannot be easily replaced; application server hot deploy mechanisms stop working. The development process loses its agility, as the modify-compile-deploy-test roundtrip time grows, while we are constantly forced to re-deploy modules which are not changing.
Before using Structure101 we were fighting with this illness almost blindly using refactoring; strange deployment scenarios; and analyzing exception stack traces and compiler output. For us we see Structure101 as an X-Ray device , using it regularly in the development and build process, we can identify these dangerous module-cross calls ahead of time by helping us to quickly find solutions on how to remove the cross calls from effected modules. With the result that our projects are easier to extend and maintain going forward. Everyone wins, EPAM, our customer and their end users.
 Structure101 Jar View
|