Creating Content That Counts
About 300 hours of video are being uploaded onto YouTube every minute, but how many of them have informational or aesthetic value? I would suggest not many. The majority of users do not bother to shoot and edit their videos properly, especially when it comes to mobile videos. Although there are many video editors available in Android and iOS app stores, ranging from simple ones to quite advanced ones, most content creators just want one button: “make it pretty.” And the very place you can find this magic button is the Magisto app.
How does it work? After shooting photos and videos with your smartphone, you simply select the style you want for your video (e.g., romantic, travel, extreme sports) and the theme music (from the app or personal library). Then the application optimizes the video and sends it to the cloud, where all the magic happens. Magisto analyzes content, selects significant objects and the most interesting moments, assembles them into a single video, adds special effects and background music to the beat of the events, and exports a finished clip. It takes just a few minutes and requires minimal user interaction.
Today, the service has about 80 million users worldwide. In addition to the web version, Magisto has both iOS and Android apps. The latter has received the Best Android Apps Awards twice (in 2013 and 2015), as well as the title of CES App of the Year 2015. Also, Magisto for Android is included in both the Google Play Editors’ Choice and Google Play Top Developer lists.
Few people know that Ukrainian engineers from GlobalLogic developed the Android version from start to finish — and continue to work on it now!
The Beginning of Our Collaboration
Our collaboration with Magisto began in early 2012, when the company was a small Israeli startup. At that time, no one could imagine that a 5-week-old proof-of-concept would turn into something serious. The challenge was determining whether it was possible to create a fast and reliable video transcoding app that would be suitable for any one of a zillion of Android devices.
In the days of Android 2.1, Google did not provide an API for working with video on a low level. It took at least 3-6 minutes for the existing solutions to convert 1 minute of original video. This was unacceptably long. So in 5 weeks, we developed an application for processing and compressing videos. The first public version of Magisto for Android was introduced in just 2.5 months.
Since the customer did not have experience working with Android, GlobalLogic took complete ownership of developing the Android version of Magisto while the customer developed the iOS version. The workflow at a startup is very quick, so we had to perform a specific amount of work in a specific period of time. This was not always easy, as the time to implement the same feature in iOS and in Android could vary significantly.
Just imagine: we make a minor release every two weeks and a major release every four weeks. This is a very fast pace, and each member of the team bears high responsibility for the result. We have been collaborating with Magisto for almost 5 years in such a way, and it is the longest-running Android project in our Lviv office.
For the first 2-3 years, we were developing only basic functionality, as the project grew very quickly. Initially, we were drafting six-month product development roadmaps with the product owner. But every month or so, such plans became irrelevant, so we changed to monthly planning.
What Do We Do Now?
Now when the basic functionality of the product is ready, we have shifted our focus a little. Currently, we make changes that are hardly visible to the user but that significantly influence their level of satisfaction.
For example, when you change the size of the window during video play (i.e., when you go to full-screen mode) or rotate a screen on your smartphone, the standard Android API tools do not always work correctly. The picture is twitching because of the loss of a few frames, and the user gets annoyed. Most likely the users did not notice and never realized that this problem was solved, but, according to our statistics, their level of satisfaction has increased. It is interesting that we have corrected this bug earlier than even YouTube app or Instagram did! At the same time, we continue to develop the main product and add new features to it.
Here’s another story: when low-level video editing API first appeared in Android 4.1, each manufacturer of smartphones began to use it in their own way. As a result, video quality on various devices was different. Moreover, a lot of bugs appeared in the course of video processing. We had to come up with a specific solution that would take into account the features of videos made with particular devices.
Eventually, we identified the devices with common video problems and prepared a set of ready-made “patches” to solve them. Furthermore, our team introduced a system that automatically checked the quality of an incoming video and pictures made by Magisto. Depending on the problems with the clip (i.e., missed facts, distortions or artifacts, wrong colors, etc.), the system applies specific algorithms to remove the bugs on a certain device.
If the selected solution delivered good results across a certain number of cases, a kit of “patches” was included in the software construction for a particular device. Thus, we did not have to reinvent the wheel each time while processing the video, and we were able to implement hardware video acceleration for a large number of devices.
Looking for New Opportunities
At the moment, the market is heavily glutted with custom video editors, so Magisto is seeking new niches. That’s how “Magisto for Business” appeared. Generally speaking, this is an enhanced functionality of Magisto, which enables business users to quickly and cheaply create interesting videos of high quality.
Potential customers of this service include fitness clubs and trainers, small retailers, goods manufacturers, real estate agents, etc. who need to create promotional videos or presentations online. Basically, this service is for anyone who would like to create an attractive advertisement for their products or services but do not have the time to do it themselves or the resources to hire a professional production company.
The main task here in terms of development is to create advanced functionality for business users (e.g., adding voiceovers, logos, or text to the video) while maintaining a user-friendly interface.
Since we perform full-cycle development for the Android version of Magisto, our team consists of specialists who are able to work on every aspect of the application. We decide how to design, test, and release new features in the product within a specified period. As with any startup, each team member carries significant responsibilities. However, unlike projects that follow a traditional pattern of developing a feature, testing it, and returning it for bug fixing, we have to move very quickly in order to release new features every few weeks.
When someone submits a feature, it means that it has already been tested and is fully functional. Thus, the programmer has to think about the tests and the analytics along with the code. Not all the processes are clearly defined, meaning the programmer is completely responsible for deciding how to accomplish a particular task. Permanent resource limitations demand their intelligent use: automation of CI, tests, etc. There is no other way. QA specialists are always 100% loaded. Therefore, a developer should clearly understand the scope of things to be checked.
Besides, the team must be able to communicate with the manager and the product owner properly. A person who is not deeply into Android features may sometimes find it difficult to believe that while development of a certain iOS feature takes only a couple of days, its development for Android takes about a week.
Although our project is very dynamic, it does not mean rush jobs or overtime. As far as I recall, we never had to work on weekends. Usually we spend 8.5 hours in the office, keeping work-life-balance healthy. This, of course, is not the only advantage of our project.
What is much more important about this project is that it has helped our people grow in the technical field very quickly. Team members understand that a single mistake today will prevent 50 million users from buying something tomorrow. Although the occasional mistake is inevitable, we help our team members learn from their mistakes and stay motivated to avoid them in the future. This project puts a major emphasis on personal responsibility, which is valuable quality to have in both a startup and one’s own personal life.
A True Partnership
Although it is usually assumed that big companies such as GlobalLogic hinder rather than help startups, I can personally say that our collaboration with Magisto proves the opposite to be true. Our relationship with Magisto is based on a true partnership that is beneficial to everyone. We help Magisto develop its product dynamically, while Magisto helps us build our technical expertise, gain valuable experience, and attract new customers.
Oleksandr Odukha is a Senior Project Manager at GlobalLogic’s Lviv Product engineering Solutions center.