An ongoing 3+ yrs R&D partnership program with a large corporation with the goal to improve the yield of their field data collection

We’re proud to provide research & development services in the mobile and data processing segment for one of our partners. With 3+ years and over 20 000 person-hours on the program, this cooperation is one of our most significant engagements yet.

Client

An undisclosed large, global corporation.

Problem

Our client has an internal process to gather large amounts of data in the field. Any improvements in their employee’s focus and productivity in the field contribute a bit to the quality of the data gathered.

The client wanted to partner with a company that combines two unique strengths – an ability to provide research & development work and UX and mobile development skills. The question was a broad – and bold – one.

What can we do with affordable mobile technology to help them?

As research and development is not your typical run-of-the-mill project for a custom software development company, we needed brains for this and assembled a mobile team under the guidance of Iwo Herka, our Principal Software Engineer in Makimo.

Our modus operandi was to work directly with users to design, prototype, test, and refine features quickly in tight feedback loops. This way, we were able to sift through many ideas to find the best ones.

Iwo Herka, Principal Software Engineer

We’ve moved on to see what we can deliver to improve field data collection.

What we did

The approach we chose was to break down the big questions into testable hypotheses – and then prepare proofs of concept on them, validating as fast as possible whether we should progress further with the chosen solution.

The chosen platform was Android, as it offers more variety in device choice, which was better suited to the company’s needs.

From all of the hypotheses we came up with in partnership, we’ve delivered two larger mobile applications and a toolkit of smaller applications that support the data gathering pipeline and integrate these two applications well into it.

One of the large applications focuses on optimization of the processes the company already uses and is heavily focused on UX that was built by Justyna Papiernik and then improved iteratively with the field employees. It’s being used in production environments which is a big success of the cooperation between us.

The other application empowered the employees to expand their current capabilities, and it’s operational for a year now, with feedback coming each and every few months to improve the application even more.

Crafting those apps was a miracle of embracing corporate strategies, capturing what is unsaid in work, translating it, and rebuilding in the language of a user interface, often pushing the limits of the human-computer interactions as we know them. 

Justyna Papiernik, head of UX

Timeline

We began our cooperation in 2019, validating our first hypotheses within the first few months.

For the period of 2020-2022, we’ve built two larger applications and extensively tested them before entering production.

The team is satisfied with our tempo and ability to self-organize work within the project and the ability to report well on the work being done.

The project has surpassed 20 000 hours of work.

Technology stack

  • Android
    • Kotlin
    • RxJava2/3
    • Dagger 2 (dependency injection provider)
    • Android Room
    • Resilience4j
    • stateless4j
    • Google Firebase
    • Retrofit
    • Client’s proprietary APIs
  • Elixir
    • Cowboy/Plug (HTTP server)
  • JavaScript
    • Vue.js
  • Python
    • Flask

Big effort has been put into the following areas:

  • fault tolerance – with such approaches as adapting the application’s architecture to become resilient with regard to any external factors; extensive testing and environment mocking; reducing development time by introducing feedback loops whether possible;
  • usability – as the applications we’ve built would be used in field conditions and shouldn’t distract anyone;
  • low technical debt – as the applications are complex, yet they require to be operant for the years to come, we’ve kept the technical debt on low values during the whole development process;

A tool that helped a lot in the development of fault-tolerant software was the use of state machines, which we used to define possible states, transitions between them, and output events. Without FSM, it would be very difficult to handle many different states and edge cases and to observe if they are correct.

Elżbieta Hofman, Android Developer

One of the biggest architectural challenges was to make a scalable, loose-coupled system that could accommodate change while the project was growing rapidly at the same time. We achieved that goal, and it allowed us to produce a system that is more customer friendly and easier to be tested and maintained.

Mateusz Łuczak, Android Developer

Our unique contribution

In Makimo, our unique contribution always comes from the combination of a few factors.

In this case study, it was:

  • augmenting the internal engineering team with relevant UX & mobile skills to build a synergy with their backend teams;
  • understanding, then delivering  – a key promise in when doing research & development work;
  • building applications with resiliency in mind – because adoption of such a software depends on it being a reliable partner of the user.

This unique blend was enough to keep our cooperation through the years.

Heroes of the story

Iwo Herka · Justyna Papiernik · Elżbieta Hofman · Mateusz Łuczak · Kamil Supera · Daria Grochowska · Bartłomiej Żak · Mateusz Papiernik · Michał Moroz · Wojciech Mielczarek · Dmitrii Chernikov · Kamil Kucharski · Marcin Struś · Aleksander Krawiel

Interested in doing research and development (R&D) with us?

Drop us a line

Co-founder and CIO of Makimo, deeply fascinated with philosophy, humans, technology and the future.

As the Principal Software Engineer at Makimo, Iwo Herka thrives in the rich terrain of Elixir and functional programming. He employs a scientific approach to demystify its complexities, chronicling his findings in in-depth articles, insightful talks, and informative videos. When he steps away from the pulsating world of code, Iwo can be found trekking nature's trails or engrossed in a good book. For Iwo, programming isn't merely a job — it's a daily adventure he passionately embarks on.