Building the Mido Play Mobile Lottery App.

Background

Mido Play is a technology company based in San Francisco, California building a “Lottery as a Service” cloud platform and seed funded by SherpaVentures and other Angel Investors. Mido has several internal software development resources, and prior to working with CodeStringers had several independent contractor developers in Eastern Europe.

Greg Ovalle, CEO, Mido Play

Greg Ovalle

Chief Executive Officer

“The CodeStringers team easily rivals the quality of any Silicon Valley software engineering organization. Working with CodeStringers, our software quality improved, our development velocity increased, and our financial runway extended.”

Mido Play’s Product

Mido was building a Lottery as a Service (LaaS) platform that includes mobile client and server software. The product is being brought to market as both a consumer-direct service as well as a platform that third-party service providers  –  primarily government agencies  –  use to digitize their lottery services. The product includes both iOS and Android client applications as well as cloud-based database, API and messaging services.

Mido Play’s Needs

Upon commencing the relationship with CodeStringers, Mido Play had been developing their product for more than 18 months and was working towards their first production release for live customers. The server functionality was 80 percent complete, iOS application functionality was 90 percent complete, and development of the Android and web applications had been recently initiated.

Mido Play, like most technology startups, wanted to increase the pace of their product development while reducing their cost. And, like most startups, the idea of working with an outsourcing partner was appealing financially but daunting operationally. Their goal was to augment their development organization with contracted resources who would act as a seamless extension of their team. Finding the right partner was paramount to establishing product-market fit, growing their user base and obtaining their series A financing. The client had specific needs in several areas of their organization.

Mido_Samsung_Galaxy_S6

#1 – Port iOS Application to Android

Mido Play’s iOS team had a year-long headstart when the company decided to add an Android applica- tion. They started by hiring several independent contractors in Eastern Europe but quickly found that a collection of individuals is not a team and that those developers did not take ownership for the product such that quality sufferred.

Additionally, the app was initially architected without a persistent data storage framework. In laymen’s terms, this means that when the app is shut down, all data is deleted from the application and, each time the application is used, data must be downloaded from the server to the device again. This architecture creates latency; overuses data; decreases battery life; and prevents functioning without connectivity. Mido Play’s objectives were to:

  1. Develop the Android application to feature parity with iOS prior to commercial launch.
  2. Architect the application for high performance and ensure that the app design and code quality created. extensibility for future feature
  3. Increase the quality of the application to achieve a launch-ready.

#2 – Increase Product Quality

Mido Play engaged CodeStringers to take holistic responsibility for quality assurance and control, includ- ing manual testing and test automation. CodeStringers built a team, including a surrogate Quality Assur- ance Manager, for Mido Play, assigning one engineer each to the iOS, Android and Web development teams to participate as a Scrum Team Member, and one engineer to work on test automation. Mido Play’s objectives were to:

  1. Establish a quality assurance function within the company and integrate quality control processes and standards into their Agile development process;
  2. Evaluate the quality of the iOS application to determine the remaining number of sprints to fix de- fects in additional to finishing remaining minimum viable features in the backlog;
  3. Automate test cases to reduce required time per development sprint for regression

#3 – Improve Product Planning and Agile Execution

Mido Play was moving quickly and, like most startups, was under-resourced. The impact was that the product owner and scrum master roles were being performed by already-overcommitted executives. This had a number of manifestations including estimating stories based only on developer tasks (no quality tasks), absence of story definitions of done, story definitions stating “see the requirements document”, and product backlogs that included only the next sprint’s stories such that the team had no visibility into their milestone/release burndown. Mido Play’s objectives were:

  1. Improve scrum execution including release and sprint planning, story definition and estimation and integration of quality assurance into development teams and;
  2. Implement a new issue and agile management tool (Jira) and operationalize a new workflow.

What CodeStringers Delivered

Mido Play initially engaged CodeStringers for three months to add five development and quality assurance resources (three developers and two QA) as an extension of their internal development team. Based on CodeStringers delivery in the first two months of the engagement, Mido Play extended the relationship for 12 months. Moreover, initially Mido Play engaged CodeStringers purely to augment resources for internally managed teams. Since that time, Code- Stringers has assumed full responsibility for Android development and Quality Assurance and Mido Play is now growing their R&D organization with CodeStringers personnel as seamless extension of their staff.

    Darryl Weatherspoon, VP of Engineering, Mido Play

    Darryl Weatherspoon

    Vice President of Engineering

    “Tangibly, CodeStringers provided Mido Play with a team of software development, quality assurance, requirements analysis, and project management personnel at a lower cost than internal resources. Intangibly, CodeStringers acted as a seamless extension of our company and provided deep agile development methodology expertise that improved our entire organization’s productivity and efficiency. CodeStringers raised the bar for our company holistically.”

    CodeStringers provided Mido Play with both dedicated teams for Android development and Quality Assurance and resource augmentation for iOS and backend development. In all, resources from CodeStringers doubled Mido’s company size and quadroupled the size of the product development organization.

    The CodeStringers team had full responsibility for Android client development and full responsibility for quality assurance, including both automation and manual testing. Additionally, CodeStringers provided iOS developers to augment a team of staff developers, plus a requirements analyst to assist the product owner with user story definition, use case clarification, and other requirements related tasks. We also provided a project manager/scrum master for Android development.

    Within the first three months of the engagement, our Quality Assurance team implemented a test case management sys- tem to replace spreadsheets, a test automation framework and automation tools, expanded the list of test cases by 350 percent and added step-by-step instructions and expected results for all test cases (only summaries existed previously).

    We had dedicated testers assigned to each development project as well as a dedicated QA automation engineer who is automating test cases at a rate of approximately seven percent of total test cases per sprint.

    The Android team reviewed the code base developed by the outsourcing team that preceded CodeStringers and realized that the application was developed without persistent data storage and backend service synchronization and, thus, was acting as a thin client application connecting to a server, impeding both usability and risking mid-transaction data loss in the event of a connectivity distruption. Additional the quality of the code beneath the presentation layer of the application was poorly designed. The team spent two sprints refactoring code and implementing a persistent data storage and sync framework, and then began developing the features to bring the Android application to a level of feature parity with the iOS version.

    Upon completing a full regression test of the iOS application, the team identified a backlog of defects that resulted from the lack of a definition of done when stories were developed. The iOS team then executed dedicated sprints to improve the level of quality of the existing feature set before developing additional stories.

    As a value-add to the R&D resources we provide, CodeStringers also provides bundled consulting to help Mido Play improve their Scrum development process. As a result, Mido Play now employs consistent three week sprints across all projects, completes estimations based on a firm definition-of-done which includes both developer and QA subtasks for each story, and is producing higher quality products more efficiently. CodeStringers has also assisted Mido Play’s product team with developing a release plan for their alpha, beta and commercial releases to ensure that all teams are executing against a common and realistic set of measureable product objectives.

    The Android team reviewed the code base developed by the outsourcing team that preceded CodeStringers and realized that the application was developed without persistent data storage and backend service synchronization and, thus, was acting as a thin client application connecting to a server, impeding both usability and risking mid-transaction data loss in the event of a connectivity distruption. Additional the quality of the code beneath the presentation layer of the application was poorly designed. The team spent two sprints refactoring code and implementing a persistent data storage and sync framework, and then began developing the features to bring the Android application to a level of feature parity with the iOS version.

    Upon completing a full regression test of the iOS application, the team identified a backlog of defects that resulted from the lack of a definition of done when stories were developed. The iOS team then executed dedicated sprints to improve the level of quality of the existing feature set before developing additional stories.

    As a value-add to the R&D resources we provide, CodeStringers also provides bundled consulting to help Mido Play improve their Scrum development process. As a result, Mido Play now employs consistent three week sprints across all projects, completes estimations based on a firm definition-of-done which includes both developer and QA subtasks for each story, and is producing higher quality products more efficiently. CodeStringers has also assisted Mido Play’s product team with developing a release plan for their alpha, beta and commercial releases to ensure that all teams are executing against a common and realistic set of measureable product objectives.