Saturday, December 02, 2006

Impact of Spring 2.0 on Offshore Delivery Model

Recently, i was developing frame work based on Spring 2.0. I couldn't resist my alacrity of excitement with Spring 2.0 and its impact on current onsite-offshore business model of executing software projects.

If your project is totally independent of all other components in infrastructure (ie, it is not consuming any data from existing system), you will gain code elegance, productivity, testability and manageability directly by using spring. If your project depends on existing infrastructure components, you not only gain above aspects but you will also gain from pluggable, hook based architecture deign with DI/IoC. Intrested in detailed answer?.

Typical Onsite-Offshore Execution Issues

Infrastructure issues. Eventhough onsite DB infrastructure can be replicated at Offshore (with data masking techniques), it is not possible to replicate service components exist in onsite at offshore. For example, many services available at onsite that were created with many years effort, can't be easily ported to offshore infrastructure.

Performance issues. As service components can't be ported to offshore, typically, development at offshore will be done with dummy skeletons. These skeletons will have same method signatures, but with dummy behavior to assist code execution at offshore

Collaboration issues. When development work span across both onsite and offshore, we need to spend more effort on collaboration, than actual development work. If your team is going to be more than 25 people, you can expect nothing but hell !!!.

Team moral. Do you think this is HR issue? Rethink again !!. Most of conflicts among team member arise from finger pointing each other when things didn't work. This is Inverse of Tragedy of commons, ie, these is no one exist to take ownership !!! ( Of course, PL/PM is the responsible from management point of view )

Delivery deadline. Most of fixed price projects suffer from schedule slippage. You may be knowing that the bigest time consuming part of the project development (apart from design) is not developing it, but unit-testing, deployment, integration, integration testing, stress testing. Did any project proposal have taken server deployment time (server configuration of your component, server stop, server start etc) part of schedule? Nope !!!. You may never find any such project !!!. If you are developing web based project, you would have realised how many times you have to strat-debug-remove cache-stop-repeat and time consumed by it.

I have realsied that effect of above factors can be minimized to large extent when we use Spring 2.0 and JDK 1.5, particularly if you are providing solution based on J2EE.

Best of Luck !!!

Posted by selvan at 3:51 PM  

0 comments:

Post a Comment