Case Study: Outsourcing a Mobile API Design

datezr logoProject Brief

A product team approached LaunchAny to help them design a REST-based mobile API to support a consumer-based mobile application. The team had previous experience in managing outsourced development teams, but wanted assistance in selecting a modern technology stack and an API design that would last for several major versions of their platform.

Project Goals

  1. Design a REST-based API that could support a consumer-focused mobile application and a web-based administration interface
  2. Define the software architecture, including technology platform and high-level database schema
  3. Document the API design that would be used to accelerate the integration between the mobile app and API developers
  4. Detail the technical specification to drive the RFC process and assist the implementation team with details regarding a matching engine that would power the mobile application
  5. Provide estimates for public cloud hosting, opportunities for cost savings by initially deploying the API to a Platform-as-a-Service, and when a PaaS may no longer be suitable due to high traffic volume

Preparation and Discovery

At the start of the engagement, the product manager had defined the scope of the product, engaged a team to wireframe the highest priority screens for the mobile app, and prioritized functional requirements. During this time of scoping and prioritization, the product manager took steps to ensure that the various aspects of marketing, sales, and their unique selling proposition (USP) were wrapped into the product.

The Approach

Once the project was ready for the API design stage, these artifacts were handed off for API modeling, design, and architectural decisions. The following approach was used:

  1. Model the mobile API using the mobile app and web-based administration interface wireframes. API modeling is a high-level way to capture the business domain requirements, prior to API design
  2. Generate a high-level API design for use by the API implementation team, strategies around the use of REST-based standards (e.g. proper use of HTTP verbs, response codes, and versioning strategies)
  3. Select the technology platform, including programming language, frameworks, and datastores that would meet the needs of the project and the skills of the implementation team (in this case, JRuby + Rails + MongoDB)
  4. Document the high-level database design, with proposed structures within the MongoDB collections and relationships between them
  5. Document the matching engine design and additional data store to support it
  6. Generate code snippets to demonstrate implementation details surrounding third-party object mapping libraries and JSON-based unmarshaling/marshaling of API payloads
  7. Capture deployment and security strategies
  8. Define the team sizing requirements and skills necessary to successfully implement and launch the API and web-based admin interface
  9. Provide a high-level schedule with key milestones to ensure proper coordination between mobile and API developers
  10. Recommend a source control branching and tagging strategy to optimize parallel development efforts

The Deliverable

The following is the outline of the final document (click to zoom):

dcp-api-design-table-of-contents-pt1

Below is an email we received from the product manager after the engagement with LaunchAny was completed:

It was a pleasure working with LaunchAny on the architecture of our platform. They helped us to define the product, its MVP and also helped us speed up the hiring process. We were able to hire a Lead Software Engineer right away. We were able to communicate the project requirements and get the best bids because our RFP was very professionally done, thanks to James. As a part of the architecture document we received the estimates, the milestones of various pieces of the platform, integration points, the team size, the skill sets of the developers. We were actually surprised how much talent there is for the tech stack they picked for us. The documentation was professionally written and accounted for all the aspects of the technical architecture. The process was very easy and straight forward, the timing worked well. We are very pleased and ready to develop.”

— T. Hughes, CEO and Founder

To learn more about our API design and implementation services, visit our services page or contact us today.