Here is one story I want to share on Outsourced product development.
It was one of the first products that we developed for our customer since we incorporated our company.
The idea of the product was way ahead of the time
The prospective buyer of the product were different Internet Service provider companies
The need of the time then was – Most wireless applications such as Getting ringtone for your mobile, getting live Cricket score on your mobile – which have very simple business logic;
However, writing them was still complex because they need to handle multiple wireless and wire line protocols, be extremely stable and be available 24X7.
Since the business logic in these applications was fairly simple, these Wireless specific requirements should be handled outside these applications in a mobile applications operating system.
Once we got the brief requirements, we started designing the system.
The main requirement from the business point of view was
1. Scalability – we should be able to handle the load dynamically without affecting the performance of the system
2. Throughput – We should be able to process thousands of messages in a minute
Designing such system was a challenge, we explored different messaging systems/techniques available then
Then we zeroed down to Java Messaging Service (JMS)
The work started. Our team was working intensely on it.
When the basic framework was ready, we wanted to evaluate if we were conforming to the basic requirements – scalability and Throughput
Our team developed clients which could pump in numerous messages from different machines.
So we had several machines involved stress testing the framework.
We could also bring up processes from our framework from different machines to load balance the same.
It all worked.
Finally we could successfully build the robust system and deliver to the customer
But I still get goosebumps when I remember about the scalable and robust design that was built and of course the passion with which the whole team was working
Kudos to everyone involved in the same.