App Development
Process

Keep it simple and
focus on what matters.

- CONFUCIUS PROBABLY

Why Process?

Because possibilities are endless, but resources - limited. We need to use our brains and hearts to discover what matters most about your idea, get excited about it. To be effective, we cut it down into small pieces, and focus on one piece at a time.
What kind of software development process is best?
Creative & Iterative. Find out more

Visla’s 3D Process

STEP BY STEP

Discover

Design

Develop

Discover

1
Idea

Our process starts with learning about your business history and your idea. You need to tell us what excites you about your project, and why it is needed on the market. It really helps if all the team members involved understand what’s unique about your idea and why it works.

Goal: Get excited about the idea

2
Competition Analysis

Competition makes us all better. But do you know your competitors well? Let’s have a look what they do well, what could be improved, and what could be the point of difference with your service. We can do this step together, but if you completed this step all by yourself, we will be eager to learn from your findings. This will help us to refine the idea, and prepare our team better.

Goal: Learn from the competition

3
Road Map

Discovery should end with a plan of action for your project. Even if you just simply need a clearly defined set of functions, it’d be still helpful to know your thoughts on how the project should be launched, and what are the small and big goals.

Goal: List of milestones

Design

1
User Research

Interview your potential users and customers to confirm their needs first-hand. Even quick, but open-minded research can reveal very surprising information.

Goal: Discover what users need

2
Interaction Design

An interaction flow diagram describes what happens in your app. It’s essential to have this kind of diagram before any development is started, to make sure all people involved agree on the scope of the work. Changing the diagram is easy. Changing working software code is harder. As long as your idea is not 100% rock solid, we should keep working on refining the diagram.

Goals of the interaction design:

  • To make sure our understanding is 100% in line with your understand.
  • To provoke thoughts, and have you chance to introduce all necessary changes before the design and development is started.
  • To have things “on paper” the whole team can easily refer to.

3
Wireframe design

A rough design of how the app looks, but without too much detail. Also without styling yet. By looking at wireframes you will be able to quickly “see” your app. Changes at this stage are very encouraged.

4
Prototype and Usability Research

This is where the fun starts. Your users are presented with a click-through prototype and asked to perform various tasks. By gathering their feedback and observing their behaviour, we have a great chance to identify weak and strong spots of the app before any code is written.

We cannot overemphasize how crucial this step is. While being still at relatively early stage both calendar and budget-wise, we already collect very meaningful feedback, on what your users are drawn to, and if there are any usability issues or bottlenecks.

Any serious user experience concern recognized at this stage should be seen as success, because it means saving future development time.

Goal: To give your users voice before software development is started (you will be surprised how much meaningful feedback you get this way)

5
User Interface (UI) Design

One of the essential deliverables of the app design process are the graphical user interface visualisations. At Visla, we take great pride in delivering the user interface, not only functional, but also beautiful.

Our UI design is detailed and leaves not much space for developer’s imagination. And this is was developers love, as they can focus on what they’re really good at: coding.

6
Style Guides

Software developers receive a set of style guides for all UI elements in the app, so they didn’t have to improvise on what the author meant while making sure your app looks professional and consistent.

7
Design-to-Development Handoff

To synchronize designers and developers and avoid miscommunications, we use specialized collaboration tools, such as Zeplin, where developers can quickly understand the details of the design specifications and guidelines, and even generate front-end code-snippets.

Development

The app developments starts once the UX design is ready.

We develop software using well known Scrum framework, which relies on daily 15-minute meetings (dailies) and bi-weekly planning meetings (sprints). The goal of each sprint is to define what’s to be done. The essence of the process is that long-term goals are transformed into short-term, quickly achievable goals. This makes it much easier to control the progress and avoid time vortexes.

The progress of the app development is tracked in project management tools such as Trello, or Asana. They offer fast access to current status of various tasks in a form of user friendly and lightweight Scrum board.

1
Preferred Tech Stack

We use top modern technologies for web and mobile development. To keep our minds fresh we investigate new frameworks and languages every year.

Yet, as much as we love new things, we also have lot of trust in good old “if it ain't broke don't fix it” approach. If your current system runs on old-school tools, we won’t be necessarily advocating for turning it upside down just for the sake of being modern. In the end these are all just means to an end, and not objects on the worship (although some of us would probably disagree.)

Below you can find our typical tech stack for new projects:

Front-end

Web Apps

Mobile Apps

Back-end
Database
Servers

Cloud

Bare Metal

2
Object-Oriented Programming

We develop code according to object-oriented programming principles. It provides a clear modular structure of the application, and brings its implementation to a higher level of abstraction.

Object-oriented approach requires slight tech design effort, but pays off heavily. Well implemented, object oriented architecture is easier to maintain and faster to develop. It enforces higher code integrity of the system, and in the longer run lowers the total cost of ownership.

3
Model-View-Controller

We use strict MVC and MVVM design patterns to stay away from risk of ending up with spaghetti code. Data, interface, and logic is clearly separated from each other, what makes the code easy to maintain and enhance in the future.

4
Source Code

You can always access the code we develop for you in the Git repository. We use version control tools such as Github, Bitbucket or Gitlab. The code is typically separated into few branches such as last stable branch, development branch, and branches for particular features or change requests.

5
Model-View-Controller

We use strict MVC and MVVM design patterns to stay away from risk of ending up with spaghetti code. Data, interface, and logic is clearly separated from each other, what makes the code easy to maintain and enhance in the future.

Unit Tests

The internal tests of the smallest units of the system, such as particular classes, functions and procedures. Each method in addition to its code is equipped with extra automated tests, so as every time anything in the code is changed, the tests are run to detect if it’s still in line with its specification.

Acceptance Tests

Manual human tests to verify if the app meets agreed requirements. These tests are run at various stages, typically: alpha and beta testing.

Stress Tests

Tests performed in unfavorable conditions, such as bad internet connection, CPU or memory overload, power issues.

Performance Tests

Tests to determine maximum performance of the system, e.g. in terms of maximum concurrent users or devices, maximum possible data transfer, or minimum time to perform a task.

6
Software Deployment / Releases

We automate the process of software release, so whenever alpha or beta version is committed to the repository it is also automatically deployed on testing server, so your team could see new version immediately.

7
Servers

We deploy the software to the cloud-based infrastructure such as Amazon AWS or Leaseweb. We can also work with any server house of your choice. In case of corporate world, we often work with secure servers behind the VPN.

8
Security

If your project requires heightened security measures, it won’t be news to us. We’ve been working for international airlines and banks, where data security and data sensitivity plays extremely important role.

9
Data back-ups

No need to remember about the back-ups. If you choose to use Amazon AWS services for your server infrastructure, software images of your virtual machines will be automatically snapshot (Amazon EC2), and database will be backed up on the fly (Amazon RDS).

10
Maintenance & Support

We understand all well the good support is part of the greater whole. In all app development projects we offer convenient maintenance and support service, where Visla team is responsible for making sure your app runs seamlessly at all times. In case of any issues our team is available and supportive.

*

Theory and practice are the same in theory, but different in practice.

Please see the above steps as merely an inspiration, certainly not as the absolutely best practice for every single case. It’s good to know the rules, but it’s also good to know when to break them. In all projects, we at Visla aim to approach your projects in a non-dogmatic, open-minded way.

TALK TO ONE OF THE CO-FOUNDERS

Need an app?