Mobilized Asset
Management Solutions

Mobile responsive Web Apps

Client Profile

A large corporation who wanted to give back to the open source community so they tested the process of using an outsourced provider to seed a valuable open source project, so that they could leverage the learnings of community interaction to improve their internal processes for using open source technology in a sensible and responsible manner. MobileVault was delivered for a budget of only $50,000 but the corporation derived $1+ Million of value from the learnings that could be applied to other open source project workstreams within the company.

1 Problem Flask
The Problem

The client had developed a cross-platform software for desktops and servers, but was observing significant use of mobile devices by end users, so client wanted to explore the feasibility of building an MDM-lite solution for its customer base of SMBs.

2
The Challenge

The major challenges while building MobileVault were remotely being able to manage millions of devices from the cloud. So, we had to chose the lightest of web servers possible and build on top of it, managing devices of various makes, OEMs, different operating systems and their versions and doing it securely.

Slider-background
3 solution
The Solution

After launching Release 1 of the product, client was able to approach a few SMB customers to beta trial the product and understand pricing/feature related commercial challenges. Based on the learnings from the market, the client decided to adopt an open source monetization model for the product. The client discovered a virtual team of developers who forked the code for a novel use case, and was able to team up with them to continue monetization.

CodeMyMobile served as the technology partner for a cyber-security start-up based in New York City. Their goal was to develop open source products that could be used for secure system administration of servers, workstations and mobile devices.

  R&D Budget $16,000 per month

  Project Duration 7 Months

  Resources 1 Engineer each for Business Analysis, Server, UI, iOS App, Android App, QA, DevOps & Project Management

  Methodology We use scrum, one of the most popular agile frameworks in a software development process.

With scrum, the product is built in a series of fixed-length iterations called sprints that give teams a framework for shipping software on a regular cadence. Milestones–i.e., the end of a sprint–come frequently, bringing with them a feeling of tangible progress with each cycle that focuses and energizes everyone. ("Continuous inspiration" for the win!) Short iterations also reinforce the importance of good estimation and fast feedback from tests–both recurring struggles in waterfall projects.

To start with, A product backlog is created which is a prioritized list of work for the development team that is derived from the roadmap and its requirements. The most important items are shown at the top of the product backlog so the team knows what to deliver first. The development team doesn't work through the backlog at the product owner's pace and the product owner isn't pushing work to the development team. Instead, the development team pulls work from the product backlog as there is capacity for it, by iteration in small units of time called sprints.

A well-prioritized agile backlog not only makes release and iteration planning easier, it broadcasts all the things your team intends to spend time on—including internal work that the customer will never notice. This helps set expectations with stakeholders and other teams, especially when they bring additional work to you, and makes engineering time a fixed asset.

Scrum calls for four ceremonies that bring structure to each sprint:

• Sprint planning: A team planning meeting that determines what to complete in the coming sprint.

• Daily stand-up: Also known as a daily scrum, a 15-minute mini-meeting for the software team to sync.

• Sprint demo: A sharing meeting where the team shows what they've shipped in that sprint.

• Sprint retrospective: A review of what did and didn't go well with actions to make the next sprint better.

During a sprint, visual artifacts like task boards and burndown charts, visible to the team and spectators alike, are powerful motivators. They drive a spirit of "we're doing this!" Having the opportunity to show off new work at the sprint demo is equally motivating, and the consistent, incremental feedback the team gets from stakeholders at each demo creates a powerful way to develop products. We used Atlassian’s JIRA which is the most used Agile tool worldwide to implement our scrum process.

In JIRA Software, you view sprints on a board and assign issues from the product backlog to sprints. You can search for issues in upcoming sprints using JQL (Sprint field). You can view the Sprint field on each individual issue as well, to see the sprint that an issue is part of. There are provisions for tagging issues in a sprint using epics and tags, defining versions and managing releases, getting feedback from stakeholders after each release, tracking code commits, code reviews and mergers, making sure all builds are passing and so on.

JIRA makes our lives easier as it has all the features and tools to implement a successful SCRUM process in a smooth way.

  Design Tools Used - Adobe Photoshop, Sketch, Adobe Illustrator
Prototyping - Balsamic Mockups

A design process varies by the type of project, clients needs, team skill-level and experience, and other factors, as designers we keep our hands on to a handful of tools. These tools provide us a base for planning and brainstorming, help us communicate our ideas clearly, overcome technical hurdles to create stunning designs, and even simplify our interactions with developers. From advanced new design software tools to the traditional techniques, these are the tools our team has mastered on.

Image

We use a combination of flowcharting tools, marvel, sketch, photoshop, mindmapping and other UI pencil,icon and stencil kits.

UI of MobileVault was kept minimal to suit day to day work and more mobile-focused design. Enterprise applications require a higher level of involvement and knowledge of the system on the part of the user. They don’t just stumble upon the application, do their work and bounce off. They use it as a tool to perform critical business tasks in their daily work. In the end, they cannot easily discontinue using the application and switch to another if they don’t like how it’s working. Our design team made sure MobileVault was user-friendly and reflected the purpose of the application in an intuitive and smart way.

  Developement MobileVault was developed to remotely manage millions of devices from the cloud. So, we had to chose the lightest of web servers possible and build on top of it. Our stack on the server as follows:

Server - Tornado Web Server, Nginx, Gunicorn, Redis, Rethinkdb
Platform - AWS EC2 Instances, Load Balancers, VPCs, S3, Route 53, CloudFront

On the client side of things, we started with Apple’s Enterprise development programme to get access to various APIs, certificates required to manage remote iOS devices that had our policies installed via an iOS app that we built.

On Android, we first started by signing up for Samsung’s proprietary APIs and SDKs required to manage remote Samsung devices. Later, we extended it to manage all Android devices irrespective of their OEMs.

On the Web, we used BackboneJS, jQuery and undersocreJS to develop the portal for admins where they could manage their organization and the mobile devices of their employees/team members.

  Quality Assurance Separating development and testing functions can help lower risk and improve system quality. With the high costs associated with MobileVault implementation, it was critical to utilize an unbiased quality assurance (QA) and testing team to ensure that the system works as expected. Our team utilizes best practices spanning process improvement, Test Driven Development - TDD, Adherence to Best practices on Web, Mobile and Design.

Our QA and testing experts build independent quality assurance blueprints that fit into our client’s overall project schedule, while providing an unbiased means of measuring the system’s functionality at every sprint, configuration and interoperability with other systems if required.

  Deployment We used AWS EC2 instances, RDS for Databases, S3 for images of images, load balancers and AMIS for balancing traffic, autoscaling and for Blue Green Deployment, Route53 for DNS Management, CloudWatch and so on.

  DevOps We used AWS EC2 instances, RDS for Databases, S3 for images of images, load balancers and AMIS for balancing traffic, autoscaling and for Blue Green Deployment, Route53 for DNS Management, CloudWatch and so on.

  Maintenance & Upgrades As developers we know, there is much more to an application than turning it on and letting users enjoy it. You wouldn't purchase a new home without expecting to invest in maintenance jobs like painting, cleaning, mowing, etc. The same should be true for applications. You may want the latest, flashiest app features, but is that application maintainable over the long term? Our team offered custom designed maintenance plans for all clients. We made sure we covered for countless updates on Android new versions, iOS SDK updates, Server seucrity updates, lots of improvements and fixes. We are the prescient development partners and help our clients plan ahead.