
Case StudiesSoftware outsourcing has been gaining momentum since the early of 21st century for the primary reason of cost reduction and productivity increasing. No company is perfect in all the areas of operations. Software outsourcing would provide organizations that additional edge, which was missing earlier.
Business Requirements
Build an eCommerce web site, where gift card buyers and sellers can exchange their information. The client required the site easy to be scaled up, expanded, and maintained.
Solutions
In order to staisfy the client's requirements, we designed the web site based on SOA, and used Agile development process:
- Project team included:
- One project manager, who was also the architect and senior developer
- One developer and one junior developer
- One GUI designer
- The first iteration of the project is to design the structure, database schema, functional specifications and agile plan in an overall sense.
- After each iteration, we discussed with the client if the plan and tasks for the next iteration need to be modified.
- Delivered the designs of UI and functions, and code or program as soon as possible, so any changes to the project happened as early as possible.
Development Process
After studying the Business Requirements Document received from the client, we rougly estimated the resources needed for the project in order to finish the project on time, and cost of the project based on the houly rate for the resources. Once client satisfied with the estimation, we designed the architecture, functional specifications, and a more detailed Agile plan for the project. After the client signed off, we started the development and client payed us based on the resources that we put into the project every four weeks:
- Communication with client:
- Weekly reports and plans were sent to the client via email.
- Weekly conference calls with the client on Sunday evening or Monday morning (US ETS) to discuss the issues, works and plans.
- If necessary, there were phone calls and emails passed back and forth between us and the client.
- Delivery package included:
- Source codes with full comments
- Database scripts: tables and stored procedures
- Application design and database schema in Visio and word documentations
- Functional specifications, user manuals, project plan, weekly reports, weekly plans, and all related documentations
- Test cases, test codes, test data files, etc.
Business Requirements
Client company needs a long term commitment to provide software outsourcing services on webcrawlers or bots development and maintenance, and data quality assurance.
Solutions
In order to staisfy the client's requirements, :
- Project team included:
- One project manager, who was also the architect and senior developer
- One developer and one junior developer
- One data QA, who was also the tester and technical writers
- Manage to keep the team stable.
- A backup developer is always standby, and all developers know how to do the daily data QA. So if anyone in the team got sick or on vacation, we have a backup resource to take the work.
Development Process
After studying the functional specifications received from the client for each small projects, we designed the schema and workflow for each project. After being approved by the client, we then designed the project plan by implementing the RUP:
- Communication with client:
- Daily summaries and weekly reports were sent to the client via email.
- Weekly conference calls with the client on Wednesday morning (US ETS) to discuss the issues, works and plans.
- If necessary, there were phone calls and emails passed back and forth between us and the client.
- Use the client's online issue and bug management system to collaborate with the client's team.
- Delivery package included:
- Source codes with full comments
- Database scripts: tables and stored procedures
- Application design and database schema in Visio and word documentations
- User manuals, deployment instructions, and weekly reports
- Test data files
Business Requirements
Client company needs an application, which gathers competitive pricing information on a timely basis. The dependable solution gathers the information from disparate Price Comparison Engines (PCEs) and ecommerce web sites, normalize it into consistent format, and make it available in a readable format. Within the solution, the user will specify the PCE and Web sites they wish to track. There will be only one database and all queries from all clients will be stored here. This will allow the application to minimize impact on the sites it is scraping and allowing all to share in the aggregate data without the client knowing this since they will only see the data from their perspective.
Solutions
In order to fulfill the client's requirements, we designed an application with the following functionalities:
- Import and export products, which are interested for pricing comparisons on disparate PCEs and eCommerce sites, using XML files. Users can also update, enable, and disable the products on the comparison list.
- Import and export PCEs and eCommerce web sites, where the prices of the products will be gathered. Users can set the PCE or ecommerce web site to be enabled or disabled for pricing information gathering.
- Schedule the application when to gather the pricing information of the products on different PCEs and eCommerce web sites. For example, pricing information of products is crawled from site A twice a day at 7am and 7pm, respectively, and from site B once a week on Monday 10am.
- Discover the URLs of the products, where pricing information can be crawled, on each PCE and eCommerce web sites. Broken URLs can be re-discovered.
- Harvest the pricing information of the products from disparate PCEs and eCommerce web sites by using the discovered URLs on timely basis.
- Save data to MS SQL server.
Development Process
After studying the Marketing Requirements Document (MRD) received from the client, we designed the functional specifications for the project. Once the client signed off the functional specifications, we made our offer for the project, which were approved by the client. Then we designed the project plan by implementing the RUP:
- Project duration was 9 weeks, which were divided into 5 iterations. The first four iterations were two weeks long each.
- Project team included:
- One business analyst based in U.S.
- One project manager, who was also the architect and senior developer
- Two junior developers, who were also the testers and technical writers
- Communication with client:
- There was a live demo/presentation for the client every other iteration and after final delivery by using GoToMeeting.
- Weekly reports and plans were sent to the client on Monday via email.
- There were conference calls with the client twice a week on Tuesday and Thursday, respectively.
- If necessary, there were phone calls and emails passed back and forth between us and the client.
- Delivery package included:
- Source codes with full comments
- Source code documentations generated by using NDoc
- Database scripts: tables and stored procedures
- Application design and database schema in Visio and word documentations
- Functional specifications, user manuals, project plan, weekly reports, weekly plans, and all related documentations
- Test cases, test codes, test data files, etc.
Business Requirements
The client needs a multiple carrier shipping software solution for businesses of any sizes. The solution calculates the domestic and international shipping rates for envelopes, parcels and LTL shipments based on the following major U.S. based carriers: USPS, UPS, FedEx, DHL, Manna, and Yellow. Therefore, users can access all carriers within the same interface. The solution has to be hosted on a single server and accessible to internet users. The shipping rates, which are retrieved from carriers via Shipping Rate APIs provided by the carriers, are cached to the local database for the following queries, unless the cached data is marked stale. Further more, if the user chose one of the carriers for shipping, he/she can print the shipment label retrieved from the carrier's label printing API.
Solutions
According to the client's requirements, we designed a Service Oriented Architecture (SOA) based solution system, which has the following features:
- A web based GUI for users to access the system interface:
- User can select the carrier(s) to calculate the shipping rates for the shipment.
- User can input the physical information of the shipment, such as weight, dimensions, and type of the shipment (envelope or parcel).
- User can input the shipping information, such as origin and destination zip codes and states or countries, etc.
- User can chose to print the shipment label from a selected carrier.
- Display the query results.
- The system interface - a web service:
- Receive the user queries in XML strings.
- Forward the shipping rate queries to the specified carrier's shipping adapters.
- Combines the response XML strings, which are received from the specified carrier's shipping adapters.
- Send responses back to the web based GUI.
- For each carrier, we built a carrier's shipping adapter - a web service:
- Receive the shipping rate queries.
- Translate the shipping rate queries to the format accepted by the carrier's API.
- Send the transformed queries to the carrier's official APIs.
- Retrieve and parse the carrier's API responses, and cache the response to database.
- Send the responses in a specified format back to the system interface.
Development Process
The client hired the project team as its own development team for the project development. The project manager and business analyst was from the client. Here we provided a project lead to be the interface between the project manager and developers. The project was designed to follow the XP software development process:
- Project duration was 8 weeks, which were divided into 8 iterations - one week long each.
- Project team included:
- One project manager, who was also the business analyst, from the client side
- One project lead, who was also the architect and senior developer
- Two junior developers
- One tester, who was also the technical writer
- Communication with client:
- There was a live demo/presentation for the client every other iteration and after final delivery by using GoToMeeting.
- Weekly reports and plans were sent to the client on Monday via email.
- There were conference calls with the client twice a week on Tuesday and Thursday, respectively.
- If necessary, there were phone calls and emails passed back and forth between us and the client.
- Delivery package included:
- Source codes with full comments
- Source code documentations generated by using NDoc
- Database scripts: tables and stored procedures
- Application design and database schema in Visio and word documentations
- Functional specifications, user manuals, weekly reports, weekly plans, and all related documentations
- Test cases, test codes, test data files, etc.
- Set up the multi-carriers shipping interface system on client's server via VPN and remote desktop
Business Requirements
From the specified retail web sites, the web crawlers gather the specified information on a timely basis. The web crawler must be robust, which means it can be resumed and the data can be recovered if it failed. The web crawler must be optimized to hit the target web site as less as possible for each crawling, and evenly distribute hits on each web site over any time window.
Solutions
The client provided us its own framework based on which we built the web crawlers. We designed the activity and database schema for each web crawler. Regular expressions (regex) were developed to parse the data from the web pages.
Development Process
After studying the functional specifications received from the client, we estimated and submitted the project's cost for client's approval. Then we designed the activity diagrams and database schema for client to sign off.
- Project duration was 2 weeks: the first week was designing and developing phase; the second week was debugging and refactoring phase.
- Project team included:
- One project lead, who was also senior developer
- One junior developer, who was also the tester and the technical writer
- Communication with client:
- Weekly reports and plans were sent to the client on Monday via email.
- There were conference calls with the client once a week on Tuesday.
- If necessary, there were phone calls and emails passed back and forth between us and the client.
- Delivery package included:
- Source codes with full comments
- Configuration files for the project
- Database scripts: tables, stored procedures, and initial data
- Application design and database schema in Visio and word documentations
- Test cases, test codes, test data files, etc.
Business Requirements
The client proposed an Instance Messenger (IM) Tool project to improve community capabilities in their existing products and interfaces (web + client). By doing so to improve the member's stickiness, their life time and improve user experience. The client prepared the MRD, which included the requirements for the IM tool. They wanted different opinions from another development team, proofreading their MRD regarding to techniques, designing the software test plan and test cases.
Development Process
After studying the MRD received from the client, we estimated and submitted the QA cost for client's approval. We proofread the MRD and corrected the errors. The MRD was passed back and forth between us. We designed the software test plan and the functional test cases by using the client's template. On the client side, they have the project manager and the QA manager to be the interface. On our end, we have a senior developer and a QA to work on the project. Communications between us was mainly via Skype and emails. The delivery package included the modified MRD, software test plan, and the functional test cases.
Business Requirements
The client is ourselves. We need a company website to advertise ourselves, demonstrate our capabilities and abilities, and serve the open source communities.
Solutions
We designed our website to have the following features:
- Website runs on in Linux server environment + Apache 2.0 + Glassfish + PostgreSQL + PHP (LAGPP).
- Use Iptables as the firewall: seal ports, monitor and log traffic, detect intrusions, and block suspicious ips.
- Use Apache 2.0 log file to monitor and log user activities, detect hostile behaviors, and block suspicious ips.
- Use the Glassfish as the application server to host the web services developed in Java.
- Load balancing, high availability, and scalability are considered during the development.
- Use the model-view-control design for the website.
- The source code - XHTML, CSS, JavaScript - are compressed in order to minimize the traffic.
- Use as many AJAX and JavaScript as possible to improve the client end performance and user friendly.
- The website works the same if you don't have your JavaScript enabled in your browser.
Development Process
- Project duration was 4 weeks using the Scrum software development processes.
- Project team included:
- One project manager, who was also the architect and the senior developer
- Two junior developers
- One tester, who was also the technical writer









Tell me more...