Our Product Approach
Our self-regulated team strives for being as flexible as it is possible.
The main goal is to create a perfect mobile app that will bring value to our users, considering those resources that we have.

For these reasons, we use the Lean approach, Kaizen principles, short sprints with retrospectives and other most effective approaches in our work. Our credo - "In the middle of difficulty lies opportunity".
Learn about our Product Design process and how we figure out and deliver product values
Discover how our distributed Development Team delivers the best and the technologies we use
Learn how we are going to our goals achievement using our Team Management approach

Product Design Process

Here's the stages of the Design Process used by our team on the diagram:

Discovery
  • Searched for information about Scandinavian traditions, runes and the meanings of their layouts
  • Competitors analysis for IOS and Android platforms
  • Used Jobs to be Done framework to correctly understand user motivation and identify competitors since the application is aimed at a very wide audience.

Define
At this stage, together with the business analyst, we have designed the information architecture of the application:
  • Created a Mind map for MVP in Miro,
  • For each feature, we worked out the User flow with low-detailed wireframes.

Visual design
The designer made mood boards based on the requirements and desires.
The task was to use natural materials in the design from which the runes were created in ancient times (wood, stone, and animal fur for the background). 6 color options were offered, of which we settled on light and dark themes.

Conceptual design
For the final choice of the color scheme, 2 application concepts were developed. A dark theme was chosen from them. The next step was:
  • Development of a clickable Hi-Fi prototype based on a dark theme,
  • We tested a prototype with real users and got feedback (Customer Development). These feedback allows us to improve the design and make changes to existing controversial issues.

Develop
At this stage of work on the project:
  • Developed a logo in the form of a rune stave,
  • Created final mockups of the application for IOS and Android,
  • Developed the design system,
  • Drawn 43 runes that differ from each other in shape and texture
  • Designed the pictures of runes into sprites, for ease of use by developers.

Support
During the layout, front-end developers needed to adapt the design to the small screen sizes of iOS and Android.
We came to the correct design of the application through active communication.

Used Design Tools

To ideate, evaluate required functionality and create the design of the application,

we used the following apps and services:

Miro
Miro is a platform for remote collaboration using an online whiteboard. We used it for the creation of mind maps, user flows, wireframes and click models of an app. And for comments and discussions of the functional details on the ideation phase as well.

Adobe Photoshop
We used it for the creation of visual content and bitmap artifacts of our app. Having more "modern" tools for apps design does not cover the power of Photoshop.

Figma
Figma is an online service for interface development and prototyping with the ability to organize real-time collaboration. We used it for the creation of the mockups and prototypes, and for management of assets and mockups delivery to the Development team.

Development Process

Please, check our approach to the development process on the diagram:

The details about our approach to the Development

After receiving the requirements, developers decompose tasks into subtasks and distribute work
among the team members.
Git and GitHub are used to work with the code and help us to organize work on different tasks in parallel.

Also, developers actively use the practice of pair programming, which speeds up the development
process and improves teamwork skills greatly.
After the implementation is complete, the developer creates a PullRequest. And other team members
review the proposed code.
Then the code is sent for revision or integrated into the testing branch (merge code is done).
Further, depending on the technology
Server-side new code is automatically pushed from the testing branch to the testing server.
For mobile applications, the developers compile the application and send finished application files to QA engineers.
After successfully test passing, and deciding whether the application is ready, server code is sent to the production server. And mobile applications are published in the apple store and/or google store.
Content Management
The application contains a lot of information that has to be periodically actualized:
  • Update and improve any text description and images accordingly with new given metrics from the production
  • Fix any mistakes and shortcomings as soon as possible
  • Continuously add new content that will be interesting for our users
For these purposes, we created the Admin Panel where we have a possibility to:
  • Update the content on some app screens without having to update via AppStore and Play Market
  • Update the content without participating in Development Team
  • Admin Panel is a web page with secure authorization where the Administrator can perform the above steps.
After any update performed by the Administrator, this content will be updated imperceptibly for all app users while updating their app pages.

Used Development Technologies

To implement the application, we used the following technology stack:

Server technologies used by our development team

NodeJs
A software platform based on the V8 engine that transforms JavaScript from a highly specialized language into a general-purpose language. Used for working with the database and user authentication.
Also, the advertising distribution system is written on this technology.

Java
General-purpose programming language. Used in the auxiliary module for working with the database.

MongoDB
A document-oriented database management system that does not require a description of the table schema.
Serves as a repository for the user and ad data.

Rest API
The architectural style of the interaction of components of a distributed application in the network. This approach was chosen due to the lack of an explicit binding to the client's technologies, which allows flexible customization of interaction with various client applications.

Heroku
Cloud PaaS platform that supports a number of programming languages.
Test servers and production servers work on this platform.

Github
The largest web service for hosting IT projects and their joint development.
Mobile technologies used by our development team

iOS
Developing an application for the IOS operating system, we used Swift programming language.
The technology stack includes:
  • Auto Layout — dynamically calculating the size and position of all views in a hierarchy based on constraints. This constraint-based design approach allows you to create user interfaces that dynamically respond to both internal and external changes.
  • REST API — to differentiate client-server needs, user identification, data storage and interaction with advertising services. We have implemented this protocol-oriented approach.
  • SwiftGen — a framework that allows automatical code generating for accessing application resources, and optimizes the work of checking the relevance of resources.

Android
Developing an application for Android operating system, we used Kotlin programming language.
The application is built according to the MVVM architectural pattern.
Used technology stack includes:
  • Constraint Layout — for creating a screen layout that allows you to create a single layout that correctly displays the application interface on a huge number of devices with different resolutions and screen ratios.
  • ViewModel, LiveData and Navigation components — the components from Android Jetpack for organizing convenient navigation and data transfer within the app according to the MVVM pattern.
  • Room database — a library from Android Jetpack for convenient and correct working with SQLite database, which is used to store various data inside the application.
  • Retrofit 2 — REST API client for organizing communication and data exchange with the backend of our app.

Team Management Process

We're striving to use a perfect approach to team management — a self-governing team, as it could be in the real world. A team with clearly defined roles and areas of responsibility.

The team works as a whole organism and the success of our product depends on the contribution of each participant.

Therefore, only such factors as transparency of team interaction which are the key to achieving the assigned tasks:
  • Exchange of information
  • Flexibility

Also, for better interaction between team members and KPI improvement, we work on an adapted Scrum, which includes the following ceremonies:
  • Daily status meeting
  • Grooming meeting (when it's necessary)
  • Weekly demo

We have excluded other ceremonies to save time (many team members are simultaneously working on the project on a leftover basis). Sprint planning is also unnecessary since the developers themselves determine which tasks they will take in the weekly sprint.
Also, we do not have sharp deadlines for tasks, since we are a startup that allows developers to work with psychological comfort.

We have 3 mentors in the team — in Design, Development and Testing which help the team solving some challenges on the project tasks, process, or team interaction.

Team Management and Communication Tools

Organizing the teamwork, we are using following tools:

Clockify
To accept the time spent in the ceremony and complete the tasks, each team member requires this time in Clockify. This allows you to understand the loaded team member every day and react accordingly (switch to another task, connect another developer for help, etc.).

Trello
We use Trello board to track the current state of the project and included tasks.
Each team member requires their own phase of the board task development process, which makes the development process transparent.

Telegram & MS Teams
We use Telegram & MS Teams chats for the operative team conversations. It helpful for us with functional chats for the different parts of the team to discuss specific goals, ideas and issues.

Google Workspace
We use Google services for team video calls, аnd for the creation & sharing of project documentation as well.

MS Teams
MS Teams was selected by our team for video calls.

Interested to learn more about the Runar App project or Team?

Or do you need us like a Team for your project?